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
146 commands0 envUpdated 2d agoCreated Sep 5, 2026
commands/_rembal.js
javascript · 92 lines
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}