tarunpoonia905/OfcDevShopBotPublic · Bot Template
AIDEV SHOP appears to be a Telegram automation bot. Commands include /confirm_delete_stock, /addstock_id, /extkey_menu, /partner_api, /apidelete, /buy_hack_cat, /admin_manage_products, /check_buy. Observed in code: messaging, keyboards, payments, libs, web, http, games.
Utilityutility
228 commands0 envUpdated 12d agoCreated Oct 18, 2026
commands/_onVerifyResult.js
javascript · 170 lines
1/**#command2name: /onVerifyResult3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12/*#SIZE_V1*/try{(function(){var z=Bot.getProperty("ui_btn_size");var mx=z==="large"?1:(z==="medium"?2:0);if(!mx||Api.__sz)return;var NAV=/^[◀▶⬅➡«»‹›⏪⏩]|\d+\s*\/\s*\d+|prev|next|page/i;var T=function(m){try{var o=typeof m==="string"?JSON.parse(m):m;if(!o||!o.inline_keyboard)return m;var out=[],cnt=0;o.inline_keyboard.forEach(function(row){var nav=row.some(function(b){return NAV.test(String(b.text||"").trim());});if(row.length<=mx||nav){out.push(row);cnt+=row.length;return;}for(var i=0;i<row.length;i+=mx){var c=row.slice(i,i+mx);out.push(c);cnt+=c.length;}});if(cnt>100||out.length>100)return m;o.inline_keyboard=out;return typeof m==="string"?JSON.stringify(o):o;}catch(e){return m;}};["sendMessage","editMessageText","editMessageCaption","editMessageReplyMarkup","sendPhoto","sendVideo","sendAnimation","sendDocument"].forEach(function(n){var f=Api[n];if(typeof f!=="function")return;Api[n]=function(p){try{if(p&&p.reply_markup)p.reply_markup=T(p.reply_markup);}catch(e){}return f.apply(Api,arguments);};});Api.__sz=true;})();}catch(__szE){}13/*#ANIM_V1*/try{(function(){var M={party:"5046509860389126442",fire:"5104841245755180586",heart:"5159385139981059251",like:"5107584321108051014"};var a=Bot.getProperty("ui_anim");if(!a||!M[a]||Api.__an)return;var E=M[a];var OK=/PURCHASE SUCCESSFUL|PAYMENT SUCCESSFUL|Payment verified|CONGRATULATIONS/i;var priv=function(p){return p&&p.chat_id&&String(p.chat_id).charAt(0)!=="-";};["sendMessage","sendPhoto","sendVideo","sendAnimation"].forEach(function(n){var f=Api[n];if(typeof f!=="function")return;Api[n]=function(p){try{if(priv(p)&&!p.message_effect_id&&OK.test(String(p.text||p.caption||"")))p.message_effect_id=E;}catch(e){}return f.apply(Api,arguments);};});var fe=Api.editMessageText;if(typeof fe==="function"){Api.editMessageText=function(p){var r=fe.apply(Api,arguments);try{if(priv(p)&&OK.test(String(p.text||"")))Api.sendMessage({chat_id:p.chat_id,text:"🎉",message_effect_id:E});}catch(e){}return r;};}Api.__an=true;})();}catch(__anE){}14/*#PREMIUM_UI_V1*/try{(function(){if(Bot.getProperty("ui_premium")!==true||Api.__pm)return;var R=function(t,c){var s=(String(t||"")+" "+String(c||"")).toLowerCase();if(/back|cancel|close|delete|remove|clear|reject|stop|ban|exit/.test(s))return"danger";if(/pay|buy|confirm|verify|paid|add|deposit|shop|claim|yes|receive|wallet|download|update/.test(s))return"success";return"primary";};var T=function(m){try{var o=typeof m==="string"?JSON.parse(m):m;if(!o||!o.inline_keyboard)return m;o.inline_keyboard.forEach(function(row){row.forEach(function(b){if(b.copy_text||b.url||b.callback_data||b.web_app){b.style=R(b.text,b.callback_data||b.url);if(!b.icon_custom_emoji_id&&b.text&&!/^[\u2600-\u27BF\uD83C-\uD83E]/.test(String(b.text).trim())&&!/^[✦✨💎]/.test(b.text))b.text="✦ "+b.text;}});});return typeof m==="string"?JSON.stringify(o):o;}catch(e){return m;}};["sendMessage","editMessageText","editMessageCaption","editMessageReplyMarkup","sendPhoto","sendVideo","sendAnimation","sendDocument"].forEach(function(n){var f=Api[n];if(typeof f!=="function")return;Api[n]=function(p){try{if(p&&p.reply_markup)p.reply_markup=T(p.reply_markup);}catch(e){}return f.apply(Api,arguments);};});Api.__pm=true;})();}catch(__pmE){}15 16 17// =========================================================18// 🚀 COMMAND = /onVerifyResult19// STATUS: ERROR-FREE DATA VALIDATION PIPELINE20// =========================================================21 22try {23 if (!content) {24 Bot.sendMessage("⚠️ Server response was blank. Please contact admin if payment was deducted.");25 return;26 }27 28 var res = (typeof content === "object") ? content : null;29 if (!res) {30 try { res = JSON.parse(content); } catch (e) { res = null; }31 }32 33 // Aapke response scheme ke mutabik status handle matrix34 var paymentVerified = (res && (res.status === "success" || res.status === "PAID" || res.success === true));35 var live_amount = res && res.data && res.data.amount ? res.data.amount : (User.getProperty("deposit_amount") || "0");36 var order_id = params ? params.trim() : "UNKNOWN";37 38 // ✅ BUG FIX: pehle yaha QR message delete/clear karne ka koi code hi nahi tha,39 // isi wajah se balance add hone ke baad bhi purana QR code chat me pada reh40 // jaata tha. Ab /onCheck.js jaisa hi vanish + state-clear logic add kiya gaya41 // hai taaki verify hote hi QR turant hat jaaye.42 var verifyUserId = (typeof user !== "undefined" && user) ? user.telegramid : null;43 var verifyChatId = (typeof chat !== "undefined" && chat) ? chat.chatid : null;44 45 function vanishQrOnVerify(uid, fallbackChatId) {46 try {47 var qrMsgId = Bot.getProperty("qr_msg_id_" + uid) ||48 User.getProperty("qr_msg_id_" + uid) ||49 User.getProperty("last_qr_message_id_" + uid);50 if (qrMsgId && fallbackChatId) {51 try { Api.deleteMessage({ chat_id: fallbackChatId, message_id: qrMsgId }); } catch (e) {}52 }53 } catch (e) {}54 }55 56 function clearQrStateOnVerify(uid) {57 if (!uid) return;58 Bot.setProperty("qr_msg_id_" + uid, null, "string");59 User.setProperty("qr_msg_id_" + uid, null, "string");60 User.setProperty("last_qr_message_id_" + uid, null, "string");61 Bot.setProperty("qr_order_id_" + uid, null, "string");62 User.setProperty("qr_order_id_" + uid, null, "string");63 Bot.setProperty("qr_watch_order_" + uid, null, "string");64 User.setProperty("qr_watch_order_" + uid, null, "string");65 Bot.setProperty("verifying_lock_" + uid, false, "boolean");66 User.setProperty("verifying_lock_" + uid, false, "boolean");67 User.setProperty("pending_order_id", null);68 }69 70 if (paymentVerified == true) {71 72 // Payment verify hote hi sabse pehle QR ko vanish karo (product delivery ho73 // ya sirf wallet balance add — dono cases me QR hatna chahiye)74 vanishQrOnVerify(verifyUserId, verifyChatId);75 clearQrStateOnVerify(verifyUserId);76 77 var prodIdx = User.getProperty("last_selected_prod_idx");78 var planIdx = User.getProperty("last_selected_plan_idx");79 var productList = Bot.getProperty("stored_products") || [];80 81 var product = (prodIdx !== undefined && prodIdx !== null) ? productList[Number(prodIdx)] : null;82 var plan = (product && planIdx !== undefined && planIdx !== null) ? product.plans[Number(planIdx)] : null;83 84 if (product && plan) {85 // 🟢 CASE A: DIRECT KEY EXTRACTION86 var stockList = Bot.getProperty("stock_" + product.name.trim() + "_" + plan.days.trim() + "_Day") || Bot.getProperty("stock_" + prodIdx + "_" + planIdx) || [];87 88 if (stockList.length > 0) {89 var deliveredKey = stockList.shift();90 91 Bot.setProperty("stock_" + product.name.trim() + "_" + plan.days.trim() + "_Day", stockList, "json");92 Bot.setProperty("stock_" + prodIdx + "_" + planIdx, stockList, "json");93 94 var userKeysHistory = User.getProperty("my_purchased_keys") || [];95 userKeysHistory.push({ product: product.name, days: plan.days, price: live_amount, key: deliveredKey, date: new Date().toLocaleDateString() });96 User.setProperty("my_purchased_keys", userKeysHistory, "json");97 98 var gatewaySuccessText = "┏━━━━━━━━━━━━━━━━━━━━━━━━ Club ┓\n" +99 "┃ <tg-emoji emoji-id='5350447674971660988'>✅</tg-emoji> <b>PAYMENT SUCCESSFUL</b> <tg-emoji emoji-id='5352825278672412291'>👆</tg-emoji> ┃\n" +100 "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n" +101 "<blockquote>" +102 "<tg-emoji emoji-id='6147767796097884213'>📦</tg-emoji> <b>Product Name:</b> <code>" + product.name + "</code>\n" +103 "<tg-emoji emoji-id='6145391828779672333'>💰</tg-emoji> <b>Validity:</b> <code>" + plan.days + " Days</code>\n" +104 "<tg-emoji emoji-id='6284816251143331422'>🗝</tg-emoji> <b>Your Key:</b> <code>" + deliveredKey + "</code>\n\n" +105 "━━━━━━━━━━━━━━━━━━━━━\n" +106 "✨ <i>Payment auto-verified! Enjoy your premium product.</i>" +107 "</blockquote>";108 109 Bot.sendMessage(gatewaySuccessText, { parse_mode: "HTML" });110 111 // Admin Log112 var adminMsg = "<blockquote>" +113 "🔔 <b>QR PAYMENT DIRECT DELIVERY</b> ✔️\n\n" +114 "👤 <b>Buyer:</b> " + user.first_name + " (<code>" + user.telegramid + "</code>)\n" +115 "📦 <b>Product:</b> " + product.name + "\n" +116 "🔑 <b>Key:</b> <code>" + deliveredKey + "</code>" +117 "</blockquote>";118 119 // ✅ FIXED: pehle yaha ek hardcoded chat_id (kisi aur bot ka120 // reference ID) tha, jiski wajah se admin log tumhare admin ko kabhi milta121 // hi nahi tha. Ab yeh owner_id property se aata hai (same jo /start me set hai).122 var logAdminId = Bot.getProperty("owner_id") || "7127818616";123 Api.sendMessage({ chat_id: logAdminId, text: adminMsg, parse_mode: "HTML" });124 125 User.setProperty("last_selected_prod_idx", null);126 User.setProperty("last_selected_plan_idx", null);127 return;128 } else {129 Bot.sendMessage("⚠️ Payment received, but item went Out of Stock! Contact Admin with Order ID: <code>" + order_id + "</code>");130 return;131 }132 } else {133 // 🟡 CASE B: RE-ALIGNED BALANCE FALLBACK134 Libs.ResourcesLib.userRes("balance").add(Number(live_amount));135 136 // 🔔 Admin notification for wallet balance top-up137 var walletLogAdminId = Bot.getProperty("owner_id") || "7127818616";138 var walletAdminMsg = "<blockquote>" +139 "🔔 <b>WALLET BALANCE ADDED</b> ✔️\n\n" +140 "👤 <b>User:</b> " + user.first_name + " (<code>" + user.telegramid + "</code>)\n" +141 "💰 <b>Amount Added:</b> ₹" + Number(live_amount).toFixed(2) + "\n" +142 "🆔 <b>Order ID:</b> <code>" + order_id + "</code>" +143 "</blockquote>";144 try {145 Api.sendMessage({ chat_id: walletLogAdminId, text: walletAdminMsg, parse_mode: "HTML" });146 } catch (e) {}147 148 var walletSuccessText = "┏━━━━━━━━━━━━━━━━━━━━━━━━ Club ┓\n" +149 "┃ <tg-emoji emoji-id='6194922667242429131'>🎉</tg-emoji> <b>PAYMENT SUCCESSFUL</b> <tg-emoji emoji-id='6192822213486321961'>✨</tg-emoji> ┃\n" +150 "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n" +151 "<blockquote>" +152 "<tg-emoji emoji-id='6194911182499881916'>🗣</tg-emoji> <b>Amount Added:</b> ₹<code>" + Number(live_amount).toFixed(2) + "</code>\n\n" +153 "ℹ️ <i>Click the button below to browse products.</i>" +154 "</blockquote>";155 156 var shopButtons = [[{ text: "🛒 Shop Now", callback_data: "/back", style: "success", icon_custom_emoji_id: "6194922667242429131" }]];157 158 Api.sendMessage({159 chat_id: chat.chatid,160 text: walletSuccessText,161 parse_mode: "HTML",162 reply_markup: JSON.stringify({ inline_keyboard: shopButtons })163 });164 }165 } else {166 Bot.sendMessage("❌ <b>Payment not found yet.</b> Please complete the transaction first and make sure you have paid the exact amount.", { parse_mode: "HTML" });167 }168} catch (err) {169 Bot.sendMessage("⚠️ Process Error: " + err.message);170}