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/_addbal_binance_approve.js
javascript · 91 lines
1/**#command2name: /addbal_binance_approve3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12// =========================================================13// ✅ ADMIN — "Approve & Credit" button on a Binance submission forward.14// Same crediting logic as /addbal, triggered with one tap instead of typing.15// =========================================================16 17try {18 var adminId = Bot.getProperty("owner_id") || "8477746023";19 var isCoAdmin0 = Bot.getProperty("co_admin_" + String(chat.chatid));20 if (String(chat.chatid) !== adminId && !isCoAdmin0) {21 Bot.sendMessage("❌ You are not authorized to use this.");22 return;23 }24 25 var callbackId = request ? (request.id || (request.callback_query && request.callback_query.id)) : null;26 var parts = params ? String(params).trim().split(" ") : [];27 var targetId = parts[0];28 var amount = parseFloat(parts[1]);29 30 if (!targetId || isNaN(amount) || amount <= 0) {31 if (callbackId) {32 Api.answerCallbackQuery({ callback_query_id: String(callbackId), text: "❌ Invalid data.", show_alert: true });33 }34 return;35 }36 37 try {38 try { Libs.ResourcesLib.anotherUserRes("balance", targetId).add(amount); } catch (resErr) {}39 40 // Canonical wallet is Libs.ResourcesLib balance; do not duplicate it in balance<userId>.41 42 if (request && request.message && request.message.message_id) {43 try {44 Api.editMessageCaption({45 chat_id: chat.chatid,46 message_id: request.message.message_id,47 caption: (request.message.caption || "") + "\n\n<blockquote>✅ <b>APPROVED & CREDITED</b></blockquote>",48 parse_mode: "HTML"49 });50 } catch (e) {}51 }52 53 try {54 Api.sendMessage({55 chat_id: targetId,56 text: "<blockquote>" +57 "<tg-emoji emoji-id='6192822213486321961'>🗣</tg-emoji> Admin Approved: ₹" + amount + "\n" +58 "<tg-emoji emoji-id='6266967801580231067'>💎</tg-emoji> Balance Credited!\n" +59 "<tg-emoji emoji-id='5866053971960929280'>🛒</tg-emoji> /start TO SHOP NOW" +60 "</blockquote>",61 parse_mode: "HTML"62 });63 } catch (notifyErr) {}64 65 // 🔔 Automatic fund-added notification to configured group/channel.66 try {67 var fundGroupId = Bot.getProperty("fund_group_id") || Bot.getProperty("sale_channel_id");68 if (fundGroupId) {69 var liveBal = Number(Libs.ResourcesLib.anotherUserRes("balance", targetId).value() || 0);70 Api.sendMessage({71 chat_id: fundGroupId,72 text: "<blockquote><tg-emoji emoji-id='6194922667242429131'>🎉</tg-emoji> <b>NEW FUND ADDED</b> <tg-emoji emoji-id='6266967801580231067'>💎</tg-emoji></blockquote>\n\n" +73 "<tg-emoji emoji-id='6145572393499762737'>👤</tg-emoji> <b>User ID:</b> <code>" + targetId + "</code>\n" +74 "<tg-emoji emoji-id='6267068789146260253'>💰</tg-emoji> <b>Amount:</b> ₹<code>" + amount.toFixed(2) + "</code>\n" +75 "<tg-emoji emoji-id='6064138396228392033'>💳</tg-emoji> <b>New Balance:</b> ₹<code>" + liveBal.toFixed(2) + "</code>\n" +76 "<tg-emoji emoji-id='6215386799133433653'>✅</tg-emoji> <b>Status:</b> Binance Approved",77 parse_mode: "HTML"78 });79 }80 } catch (groupErr) {}81 82 if (callbackId) {83 Api.answerCallbackQuery({ callback_query_id: String(callbackId), text: "✅ Credited ₹" + amount + " to " + targetId });84 }85 } catch (addbalErr) {86 Bot.sendMessage("⚠️ Error: " + addbalErr.message);87 }88 89} catch (err) {90 Bot.sendMessage("⚠️ System Error: " + err.message);91}