ayushyadav7970824760/goldensellingstore_botPublic · Bot Template

AIThis Telegram store bot lets customers browse digital products and plans, apply coupons, add funds via UPI, and receive purchased keys. It includes a full admin panel for managing products, reordering items, setting reseller prices, viewing and removing key stock, configuring UPI payment details and update links, and checking user balances. Co-admins and resellers are supported, and support tickets are forwarded to the admin.

Commercedigital_storeadmin_panelupi_paymentsresellercouponskey_stock
ProfileTelegram
146 commands0 envUpdated 2d agoCreated Sep 5, 2026
Back to folder

commands/_rembal.js

javascript · 92 lines

Raw
1/**#command2name: /rembal3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12// ✅ FIXED (v3): dynamic owner_id + co-admin check (same fix as /addbal).13let admin_id = Bot.getProperty("owner_id") || "8477746023";14let requesterId = String(user.telegramid);15let isCoAdmin = Bot.getProperty("co_admin_" + requesterId);16 17if (requesterId === admin_id || isCoAdmin) {18 19    // ✅ FIXED: instantly ack the button press so it doesn't feel stuck/slow.20    if (request && request.id) {21        try {22            HTTP.post({23                url: "https://api.telegram.org/bot" + bot.token + "/answerCallbackQuery",24                body: { callback_query_id: request.id }25            });26        } catch (ackErr) {}27    }28 29    let params = (typeof message !== "undefined" && message) ? message.split(" ") : [];30    let data = params[1];31 32    // ✅ FIXED: same button-click bug as /addbal — ab prompt aata hai.33    if (!data || !data.includes("|")) {34        // ✅ FIXED: purane atke hue admin steps clear karo pehle35        var __allAdminSteps2 = ["addbal_step","addbalall_step","rembal_step","checkbal_step",36        "set_download_link_step","set_payment_upi_step","set_payment_binance_step",37        "set_dailygift_price_step","set_refer_earn_step","set_how_link_step",38        "set_proof_link_step","set_support_link_step","give_key_step",39        "set_sale_channel_step","set_menu_emoji_step","set_welcome_message_step",40        "add_product_step"];41        for (var __si2 = 0; __si2 < __allAdminSteps2.length; __si2++) { User.setProperty(__allAdminSteps2[__si2], null, "string"); }42        User.setProperty("rembal_step", "waiting_input", "string");43        Bot.sendMessage(44            "<tg-emoji emoji-id='5409048419211682843'>💵</tg-emoji> <b>Remove Balance</b>\n\n" +45            "<i>User ID aur amount is format me reply karein:</i>\n<code>user_id|amount</code>\n\n" +46            "<i>Example:</i> <code>8477746023|50</code>",47            {parse_mode: "HTML"}48        );49        return;50    }51 52    let splitData = data.split("|");53    let targetUserId = splitData[0].trim();54    let amountToRemove = parseFloat(splitData[1].trim());55 56    if (!targetUserId || isNaN(amountToRemove) || amountToRemove <= 0) {57        Bot.sendMessage("❌ *Invalid Format! Use:* `user_id|amount`", {parse_mode: "Markdown"});58        return;59    }60 61    try {62        // Balance remove/deduct karna63        let targetUserBalance = Libs.ResourcesLib.anotherUserRes("balance", targetUserId);64        targetUserBalance.remove(amountToRemove);65 66        // Admin notification67        Bot.sendMessage("✅ Success! Removed " + amountToRemove + " from user " + targetUserId, {parse_mode: "HTML"});68 69        // New 3 Premium Emojis in Quote Style70        let notificationText =71            "<blockquote>" +72            "<tg-emoji emoji-id='5893163582194978381'>❌</tg-emoji> Admin Remove: " + amountToRemove + "\n" +73            "<tg-emoji emoji-id='6071272104978814192'>😞</tg-emoji> Check your balance now\n" +74            "<tg-emoji emoji-id='5257963315258204021'>ℹ️</tg-emoji> Use /balance To Check" +75            "</blockquote>";76 77        // ✅ FIXED: raw HTTP.post ki jagah Api.sendMessage — zyada reliable delivery.78        try {79            Api.sendMessage({80                chat_id: targetUserId,81                text: notificationText,82                parse_mode: "HTML"83            });84        } catch (notifyErr) {}85 86    } catch (err) {87        Bot.sendMessage("⚠️ *Error:* " + err.message, {parse_mode: "Markdown"});88    }89 90} else {91    Bot.sendMessage("❌ You are not authorized to use this command.");92}