tarunpoonia905/OfcDevShopBotPublic · Bot Template

ProfileTelegram

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
Back to folder

commands/_onVerifyResult.js

javascript · 170 lines

Raw
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}
commands/_onVerifyResult.js · tarunpoonia905/OfcDevShopBot · TeleDevs