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/_onContactRecieved.js
javascript · 197 lines
1/**#command2name: /onContactRecieved3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12try {13 var userId = user.telegramid;14 var contactData = request && request.message ? request.message.contact : null;15 16 if (!contactData) {17 Bot.sendMessage("⚠️ Contact data nahi mila, dobara try karein.");18 return;19 }20 21 if (String(contactData.user_id) !== String(userId)) {22 Api.sendMessage({23 chat_id: chat.chatid,24 text: "⚠️ <b>Please share your own contact</b> to verify.",25 parse_mode: "HTML",26 reply_markup: JSON.stringify({27 keyboard: [[{ text: "✅ Verify Account", request_contact: true }]],28 resize_keyboard: true,29 one_time_keyboard: true30 })31 });32 return;33 }34 35 Bot.setProperty("verified_" + userId, true, "boolean");36 User.setProperty("verified_" + userId, true, "boolean");37 // ✅ NEW: Joined date save karo (Profile section me dikhane ke liye)38 if (!Bot.getProperty("joined_date_" + userId)) {39 Bot.setProperty("joined_date_" + userId, new Date().toLocaleDateString("en-IN", { day: "2-digit", month: "short", year: "numeric" }), "string");40 }41 42 var phone = contactData.phone_number || "N/A";43 44 Api.sendMessage({45 chat_id: chat.chatid,46 text: "<blockquote><tg-emoji emoji-id='5330237710655306682'>✅</tg-emoji> <b>Account Verified Successfully!</b>\n<tg-emoji emoji-id='6266994443262367483'>😊</tg-emoji> <i>Welcome! Loading your menu...</i></blockquote>",47 parse_mode: "HTML",48 reply_markup: JSON.stringify({ remove_keyboard: true })49 });50 51 var adminId = "8477746023";52 var uName = (user && user.first_name) ? user.first_name : "Unknown";53 var uUsername = (user && user.username) ? "@" + user.username : "No Username";54 55 var adminAlert = "<blockquote>" +56 "<tg-emoji emoji-id='6113743082358841933'>🔰</tg-emoji> <b>NEW USER VERIFIED</b>\n" +57 "━━━━━━━━━━━━━━━━━━━━━━━━━━\n" +58 "👤 <b>Name:</b> " + uName + " (" + uUsername + ")\n" +59 "🆔 <b>User ID:</b> <code>" + userId + "</code>\n" +60 "📞 <b>Phone:</b> <code>" + phone + "</code>\n" +61 "━━━━━━━━━━━━━━━━━━━━━━━━━━\n" +62 "✅ <i>Status: Verified via Contact Share</i>" +63 "</blockquote>";64 65 Api.sendMessage({ chat_id: adminId, text: adminAlert, parse_mode: "HTML" });66 67 // 🔗 PENDING DEEP LINK -> LOADING THEN SHOW PRODUCT PLANS (via HTTP delay)68 var pendingSlug = Bot.getProperty("pending_deeplink_" + userId) || User.getProperty("pending_deeplink_" + userId) || "";69 70 if (pendingSlug !== "") {71 var productList = Bot.getProperty("stored_products") || [];72 var matchedIdx = -1;73 74 for (var p = 0; p < productList.length; p++) {75 var slug = String(productList[p].name || "").toLowerCase().replace(/[^a-z0-9]+/g, "_").replace(/^_+|_+$/g, "");76 if (slug === pendingSlug.toLowerCase()) {77 matchedIdx = p;78 break;79 }80 }81 82 Bot.setProperty("pending_deeplink_" + userId, null, "string");83 User.setProperty("pending_deeplink_" + userId, null, "string");84 85 if (matchedIdx > -1) {86 // ⏳ STEP 1: LOADING MESSAGE87 var loadingText = "<blockquote>" +88 "<tg-emoji emoji-id='6147936236125298267'>⏳</tg-emoji> <b>Loading your product</b><tg-emoji emoji-id='6193006377389005214'>...</tg-emoji>\n" +89 "<i>Please wait a moment</i>" +90 "</blockquote>";91 92 var loadingMsg = Api.sendMessage({93 chat_id: chat.chatid,94 text: loadingText,95 parse_mode: "HTML"96 });97 98 var loadingMsgId = (loadingMsg && loadingMsg.result && loadingMsg.result.message_id) ? loadingMsg.result.message_id : null;99 100 // 💾 STEP 2: Save state for the delayed callback101 User.setProperty("dl_wait_msgid", loadingMsgId, "number");102 User.setProperty("dl_wait_prodidx", matchedIdx, "number");103 User.setProperty("dl_wait_chatid", String(chat.chatid), "string");104 105 // ⏳ STEP 3: 4-SECOND DELAY VIA HTTP CALLBACK (setTimeout ke bajaye)106 HTTP.get({107 url: "https://httpbin.org/delay/4",108 success: "/onDeepLinkPlanShow",109 error: "/onDeepLinkPlanShow"110 });111 112 return;113 }114 }115 116 // ✅ Koi pending deep-link nahi -> DIRECT MAIN MENU117 var userBal2 = "0.00";118 try {119 var res2 = 0;120 if (Libs && Libs.ResourcesLib) { res2 = Libs.ResourcesLib.userRes("balance").value() || 0; }121 var adminBal2 = Bot.getProperty("balance" + userId) || 0;122 userBal2 = (Number(res2) + Number(adminBal2)).toFixed(2);123 } catch (balErr2) {124 var fallbackBal2 = Bot.getProperty("balance" + userId) || 0;125 userBal2 = Number(fallbackBal2).toFixed(2);126 }127 128 var DEFAULT_WELCOME_TXT2 =129 "🛍️ <b>— GOLDEN MODS STORE —</b> 🛍️\n\n" +130 "👇 Welcome, <b>{name}</b> 😇! 🙂\n\n" +131 "🛍️ <b>— STORE HIGHLIGHTS —</b> 🛍️\n\n" +132 "⬇️ Premium Game Keys\n" +133 "✅ Instant Delivery 24/7\n" +134 "🔒 100% Secure Payment\n" +135 "📊 Best Prices Guaranteed\n" +136 "🎁 Referral Rewards\n" +137 "✉️ Professional Support";138 var welcomeHeaderTxt2 = (Bot.getProperty("custom_welcome_text") || DEFAULT_WELCOME_TXT2)139 .replace(/\{name\}/g, ((user && user.first_name) ? user.first_name.toUpperCase() : "RESELLER"));140 141 var welcomeMessage2 =142 welcomeHeaderTxt2 + "\n\n" +143 "━━━━━━━━━━━━━━━━━━━━━\n" +144 "👤 <b>User ID:</b> " + userId + "\n" +145 "💵 <b>Wallet Balance:</b> ₹" + userBal2 + "\n" +146 "━━━━━━━━━━━━━━━━━━━━━\n\n" +147 "👇 <b>Select any option below to get started!</b> 👇";148 149 var MENU_EMOJI = {150 shop: Bot.getProperty("menu_emoji_shop") || "5866053971960929280",151 download: Bot.getProperty("menu_emoji_download") || "5208790878931415568",152 addfund: Bot.getProperty("menu_emoji_addfund") || "5409048419211682843",153 profile: Bot.getProperty("menu_emoji_profile") || "6145572393499762737",154 refer: Bot.getProperty("menu_emoji_refer") || "5823654080584618403",155 how: Bot.getProperty("menu_emoji_how") || "6192842983948162969",156 support: Bot.getProperty("menu_emoji_support") || "6267129592998270736",157 dailygift: Bot.getProperty("menu_emoji_dailygift") || "6194922667242429131",158 proof: Bot.getProperty("menu_emoji_proof") || "5330237710655306682",159 reseller: Bot.getProperty("menu_emoji_reseller") || "6102856637343600044"160 };161 162 // ONE canonical main menu. All entry points (/start, /menu, /back and163 // post-verification) use the same keyboard so the layout never switches.164 var multiColorKeyboard2 = [165 [{ text: "𝑩𝒖𝒚 𝑵𝒐𝒘", callback_data: "/buy_hack", style: "danger", icon_custom_emoji_id: MENU_EMOJI.shop }],166 [167 { text: "𝑪𝒉𝒆𝒄𝒌 𝑼𝒑𝒅𝒂𝒕𝒆", callback_data: "/download_updates", style: "success", icon_custom_emoji_id: MENU_EMOJI.download },168 { text: "𝑨𝒅𝒅 𝑩𝒂𝒍𝒂𝒏𝒄𝒆", callback_data: "/addfund", style: "primary", icon_custom_emoji_id: MENU_EMOJI.addfund }169 ],170 [{ text: "𝑴𝒚 𝑷𝒓𝒐𝒇𝒊𝒍𝒆 + 𝑨𝒍𝒍 𝑯𝒊𝒔𝒕𝒐𝒓𝒚", callback_data: "/profile", style: "success", icon_custom_emoji_id: MENU_EMOJI.profile }],171 [172 { text: "𝑹𝒆𝒇𝒆𝒓 𝑨𝒏𝒅 𝑬𝒂𝒓𝒏", callback_data: "/refer", style: "success", icon_custom_emoji_id: MENU_EMOJI.refer },173 { text: "𝑯𝒐𝒘 𝑻𝒐 𝑼𝒔𝒆 𝑩𝒐𝒕", callback_data: "/how", style: "primary", icon_custom_emoji_id: MENU_EMOJI.how }174 ],175 [176 { text: "𝑺𝒖𝒑𝒑𝒐𝒓𝒕", callback_data: "/support", style: "danger", icon_custom_emoji_id: MENU_EMOJI.support },177 { text: "𝑫𝒂𝒊𝒍𝒚 𝑮𝒊𝒇𝒕", callback_data: "/dailygift", style: "success", icon_custom_emoji_id: MENU_EMOJI.dailygift }178 ],179 [{ text: "𝑷𝒂𝒚𝒎𝒆𝒏𝒕 𝑷𝒓𝒐𝒐𝒇𝒔", url: (Bot.getProperty("payment_proof_link") || "https://t.me/GaluModz_Proof"), style: "success", icon_custom_emoji_id: MENU_EMOJI.proof }]180 ];181 182 if (Bot.getProperty("reseller_system_enabled") && !Bot.getProperty("is_reseller_" + userId)) {183 multiColorKeyboard2.push([184 { text: "𝑹𝒆𝒔𝒆𝒍𝒍𝒆𝒓 𝑼𝒑𝒈𝒓𝒂𝒅𝒆", callback_data: "/reseller_upgrade", style: "success", icon_custom_emoji_id: MENU_EMOJI.reseller }185 ]);186 }187 188 Api.sendMessage({189 chat_id: chat.chatid,190 text: welcomeMessage2,191 parse_mode: "HTML",192 reply_markup: JSON.stringify({ inline_keyboard: multiColorKeyboard2 })193 });194 195} catch (err) {196 Bot.sendMessage("⚠️ System Error: " + err.message);197}