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/_press.js
javascript · 223 lines
1/**#command2name: /press3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12// Command Name: /press (Premium Calculator Keypad Handler)13// ✅ FIXED: "Back" button pehle "/dmenu" call kar raha tha jo bot me exist hi nahi karta14// (dead button — click karne par kuch nahi hota tha). Ab "/back" (real menu command) use hota hai.15// ✅ Number buttons ab addfund screen jaisi hi blue "primary" styling ke saath hain (pehle plain/colorless the).16 17try {18 // Purana set default check: Agar user ne naya deposit shuru kiya hai toh default 0 rahe19 let current_amount = User.getProperty("deposit_amount");20 if (!current_amount) {21 current_amount = "0";22 }23 24 let pressed = params ? params.trim() : "";25 let queryId = request ? (request.id || (request.callback_query && request.callback_query.id)) : null;26 27 // 💎 Premium Emoji Set (same IDs as /addfund — keeps the screen visually identical, no flicker)28 let e_money = "<tg-emoji emoji-id='6312263493051489212'>💰</tg-emoji>";29 let e_clear = "<tg-emoji emoji-id='5348224471050238603'>✏</tg-emoji>";30 let e_confirm = "<tg-emoji emoji-id='5348191451341668809'>✅</tg-emoji>";31 let e_back = "<tg-emoji emoji-id='5893163582194978381'>⬅️</tg-emoji>";32 let e_hour = "<tg-emoji emoji-id='6100657257605763582'>✔️</tg-emoji>";33 let e_check = "<tg-emoji emoji-id='6311870645277825763'>✔️</tg-emoji>";34 let e_gear = "<tg-emoji emoji-id='5348292765325212780'>⚙</tg-emoji>";35 36 // --- CONFIRM BUTTON CLICK ---37 if (pressed == "confirm") {38 if (parseInt(current_amount) <= 0 || current_amount == "" || current_amount == "0") {39 if (queryId) {40 Api.answerCallbackQuery({41 callback_query_id: queryId,42 text: "👀 PLEASE ENTER A VALID AMOUNT!",43 show_alert: true44 });45 }46 return;47 }48 49 // ✅ FIXED: "Choose Payment Method" wali screen hata di — Confirm dabate50 // hi seedha UPI QR generate ho jaata hai (koi extra step nahi).51 // ✅ FIXED (2): pehle yahan se /addbal_upi ko Bot.run() se call kiya52 // jaata tha, jo button-click context me reliably params pass nahi kar53 // raha tha (isliye "Invalid amount!" aata tha chahe amount sahi ho) —54 // ab QR-generation logic seedha yahin (inline) chalta hai.55 let finalAmount = String(parseInt(current_amount));56 57 // Amount reset to 0 so next time it starts fresh58 User.setProperty("deposit_amount", "0", "string");59 60 if (queryId) {61 Api.answerCallbackQuery({ callback_query_id: queryId });62 }63 64 let confirmUserId = user.telegramid;65 let confirmUpiId = Bot.getProperty("payment_upi_id") || "ayushrds@nyes";66 67 if ((Bot.getProperty("upi_payment_mode") || "auto") === "manual") {68 // ✋ MANUAL MODE — apna QR (Fampay ke bina)69 let pOrderId = "MANUAL" + String(Date.now());70 try { Bot.setProperty("qr_order_amount_" + pOrderId, finalAmount, "string"); } catch (e) {}71 72 let pUpiUri = "upi://pay?pa=" + encodeURIComponent(confirmUpiId) +73 "&pn=" + encodeURIComponent(Bot.getProperty("bot_name") || "GOLDEN MODS STORE") +74 "&am=" + encodeURIComponent(finalAmount) +75 "&cu=INR";76 let pLogoUrl = Bot.getProperty("bot_logo_url");77 let pQrImage = "https://quickchart.io/qr?text=" + encodeURIComponent(pUpiUri) + "&size=400&margin=2" +78 (pLogoUrl ? "¢erImageUrl=" + encodeURIComponent(pLogoUrl) + "¢erImageSizeRatio=0.22" : "");79 80 let pBotDisplayName = Bot.getProperty("bot_name") || "GOLDEN SELLING STORE";81 let pGatewayMsg =82 "<blockquote>🛍️ <b>" + pBotDisplayName + " — UPI QR ACTIVE</b> 💳</blockquote>\n" +83 "➤ ───────────────────\n" +84 "<tg-emoji emoji-id='5260399854500191689'>🏪</tg-emoji> <b>Merchant Name:</b> " + pBotDisplayName + "\n\n" +85 "💰 <b>Scan & pay exactly</b> ₹<code>" + finalAmount + "</code>\n\n" +86 "👉 <i>Tap <b>Verify Payment</b> below after completing payment.</i>\n" +87 "➤ ───────────────────\n" +88 "<blockquote>⏳ <b>Session expires in 5 minutes.</b></blockquote>";89 90 let pInlineButtons = [91 [{ text: "✅ VERIFY PAYMENT", callback_data: "/check " + pOrderId, style: "success", icon_custom_emoji_id: "5330237710655306682" }],92 [{ text: "Cancel Order", callback_data: "/cancel_topup " + pOrderId, style: "danger" }]93 ];94 95 try { Api.deleteMessage({ chat_id: chat.chatid, message_id: request.message.message_id }); } catch (e) {}96 let pSentMsg = Api.sendPhoto({97 chat_id: chat.chatid,98 photo: pQrImage,99 caption: pGatewayMsg,100 parse_mode: "HTML",101 reply_markup: JSON.stringify({ inline_keyboard: pInlineButtons })102 });103 104 try {105 let pQrMsgId = (pSentMsg && pSentMsg.result && pSentMsg.result.message_id) ? pSentMsg.result.message_id : (pSentMsg && pSentMsg.message_id ? pSentMsg.message_id : null);106 if (pQrMsgId) {107 Bot.setProperty("qr_msg_id_" + confirmUserId, pQrMsgId, "string");108 User.setProperty("qr_msg_id_" + confirmUserId, pQrMsgId, "string");109 }110 Bot.setProperty("qr_order_id_" + confirmUserId, pOrderId, "string");111 User.setProperty("qr_order_id_" + confirmUserId, pOrderId, "string");112 User.setProperty("pending_order_id", pOrderId, "string");113 Bot.setProperty("qr_watch_order_" + confirmUserId, pOrderId, "string");114 User.setProperty("qr_watch_order_" + confirmUserId, pOrderId, "string");115 Bot.setProperty("qr_created_ts_" + confirmUserId, String(Date.now()), "string");116 } catch (e) {}117 try { HTTP.get({url:"https://httpbin.org/delay/300?manual_press="+encodeURIComponent(pOrderId),success:"/onQRExpire",error:"/onQRExpire"}); } catch(e) {}118 119 return;120 }121 122 // ✅ AUTO MODE — Fampay QR123 User.setProperty("deposit_amount", finalAmount, "string");124 125 let pGeneratingText =126 "<blockquote>⚙ <b>Generating QR Code for ₹" + finalAmount + "...</b>\n" +127 "<i>Please wait a moment</i></blockquote>";128 129 Api.editMessageText({130 chat_id: chat.chatid,131 message_id: request.message.message_id,132 text: pGeneratingText,133 parse_mode: "HTML"134 });135 136 try {137 Bot.setProperty("gen_msg_id_" + confirmUserId, request.message.message_id, "string");138 User.setProperty("gen_msg_id_" + confirmUserId, request.message.message_id, "string");139 } catch (e) {}140 141 HTTP.get({142 url: "https://fampay.anujbots.xyz/qr.php?upi=" + encodeURIComponent(confirmUpiId) + "&amount=" + encodeURIComponent(finalAmount),143 success: "/onQR",144 error: "/onApiError"145 });146 147 return;148 }149 150 // --- KEYPAD INPUT LOGIC ---151 if (pressed == "clear") {152 if (current_amount.length > 1) {153 current_amount = current_amount.slice(0, -1);154 } else {155 current_amount = "0";156 }157 } else if (pressed !== "") {158 if (current_amount == "0") {159 current_amount = pressed;160 } else {161 if ((current_amount + pressed).length <= 6) {162 current_amount = current_amount + pressed;163 }164 }165 }166 167 // Save current keypad amount state168 User.setProperty("deposit_amount", current_amount, "string");169 170 if (queryId) {171 Api.answerCallbackQuery({ callback_query_id: queryId });172 }173 174 // 🎨 Keypad Buttons — same premium colored styling as /addfund175 let inlineKeyboardPayload = [176 [177 { text: "1", callback_data: "/press 1", style: "success", icon_custom_emoji_id: "6267068789146260253" },178 { text: "2", callback_data: "/press 2", style: "success", icon_custom_emoji_id: "6267068789146260253" },179 { text: "3", callback_data: "/press 3", style: "success", icon_custom_emoji_id: "6267068789146260253" }180 ],181 [182 { text: "4", callback_data: "/press 4", style: "success", icon_custom_emoji_id: "6267068789146260253" },183 { text: "5", callback_data: "/press 5", style: "success", icon_custom_emoji_id: "6267068789146260253" },184 { text: "6", callback_data: "/press 6", style: "success", icon_custom_emoji_id: "6267068789146260253" }185 ],186 [187 { text: "7", callback_data: "/press 7", style: "success", icon_custom_emoji_id: "6267068789146260253" },188 { text: "8", callback_data: "/press 8", style: "success", icon_custom_emoji_id: "6267068789146260253" },189 { text: "9", callback_data: "/press 9", style: "success", icon_custom_emoji_id: "6267068789146260253" }190 ],191 [192 { text: "🧹 Clear", callback_data: "/press clear", style: "danger", icon_custom_emoji_id: "5348224471050238603" },193 { text: "0", callback_data: "/press 0", style: "success", icon_custom_emoji_id: "6267068789146260253" },194 { text: "✅ Confirm", callback_data: "/press confirm", style: "success" }195 ],196 [197 // ✅ FIXED: "/dmenu" -> "/back" (dead command replaced with the real menu handler)198 { text: "𝑩𝒂𝒄𝒌", callback_data: "/back", style: "danger" }199 ]200 ];201 202 let keypadMsg =203 "<blockquote>" + e_money + " <b>ADD BALANCE — ENTER AMOUNT</b> " + e_money + "</blockquote>\n" +204 "━━━━━━━━━━━━━━━━━━━━━\n\n" +205 "💰 <b>Deposit Amount</b>\n" +206 "<blockquote><code>₹ " + Number(current_amount).toFixed(2) + "</code></blockquote>\n\n" +207 "━━━━━━━━━━━━━━━━━━━━━\n" +208 e_check + " <i>Instant Auto-Credit</i>\n" +209 "<tg-emoji emoji-id='6215386799133433653'>🔒</tg-emoji> <i>100% Secure UPI Payment</i>\n" +210 e_hour + " <i>Verified in Seconds</i>\n\n" +211 "<tg-emoji emoji-id='6100170496077204999'>👑</tg-emoji> <i>Enter your amount using the keypad below.</i>";212 213 Api.editMessageText({214 chat_id: chat.chatid,215 message_id: request.message.message_id,216 text: keypadMsg,217 parse_mode: "HTML",218 reply_markup: JSON.stringify({ inline_keyboard: inlineKeyboardPayload })219 });220 221} catch (err) {222 Bot.sendMessage("⚠️ System Error in Keypad: " + err.message);223}