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/_process_buy.js
javascript · 267 lines
1/**#command2name: /process_buy3answer: 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 = /process_buy (ORIGINAL)19// =========================================================20 21try {22 if (!params || typeof params !== "string") return;23 24 let data = params.split(" ");25 let rawType = data[0] ? data[0].toLowerCase().trim() : "";26 let actionState = data[1] ? data[1].toLowerCase().trim() : "";27 28 let queryId = request.id || (request.callback_query && request.callback_query.id);29 let userId = user.telegramid.toString().trim(); 30 let chatID = chat.chatid;31 32 let rawResellers = Bot.getProperty("resellers_list");33 let resellers = [];34 35 if (rawResellers) {36 if (Array.isArray(rawResellers)) {37 resellers = rawResellers;38 } else if (typeof rawResellers === "string") {39 try { resellers = JSON.parse(rawResellers); } catch(e) { resellers = rawResellers.split(","); }40 } else if (typeof rawResellers === "object") {41 resellers = rawResellers.resellers || rawResellers.list || rawResellers.users || Object.values(rawResellers);42 }43 }44 if (!Array.isArray(resellers)) { resellers = []; }45 46 let isReseller = resellers.map(function(id) {47 return id ? id.toString().toLowerCase().trim() : "";48 }).includes(userId) || (userId === String(Bot.getProperty("owner_id") || "7127818616")) || (Bot.getProperty("is_reseller_" + userId) === true);49 50 let finalCost = 0;51 let stockData = [];52 let displayTypeName = "";53 let isDynamicCategory = false;54 let isGeneralCategory = false;55 let selectedCat = null;56 57 let fbCategories = Bot.getProperty("fb_categories", []);58 if (!Array.isArray(fbCategories)) { fbCategories = []; }59 60 if (rawType.startsWith("fb_")) {61 isDynamicCategory = true;62 let targetCatId = rawType.replace("fb_", "").trim();63 64 for (let i = 0; i < fbCategories.length; i++) {65 if (fbCategories[i].id === targetCatId) {66 selectedCat = fbCategories[i];67 break;68 }69 }70 71 if (!selectedCat) {72 if (queryId) Api.answerCallbackQuery({ callback_query_id: queryId, text: "❌ Category deleted!", show_alert: true });73 return;74 }75 76 if (isReseller && selectedCat.reseller_price !== undefined && selectedCat.reseller_price !== "") {77 finalCost = Number(selectedCat.reseller_price);78 } else {79 finalCost = Number(selectedCat.price || 0);80 }81 stockData = selectedCat.stock_list || [];82 displayTypeName = selectedCat.name;83 } else if (rawType == "fb" || rawType == "google") {84 let priceRes = parseFloat(Bot.getProperty("price_res_" + rawType) || 0);85 let priceNorm = parseFloat(Bot.getProperty("price_norm_" + rawType) || 0);86 finalCost = isReseller ? priceRes : priceNorm;87 stockData = Bot.getProperty("ff_stock_" + rawType) || [];88 displayTypeName = rawType.toUpperCase();89 } else {90 var categories = Bot.getProperty("ff_categories") || {};91 if (!categories[rawType]) {92 if (queryId) Api.answerCallbackQuery({ callback_query_id: String(queryId), text: "❌ Invalid Product!", show_alert: true });93 return;94 }95 isGeneralCategory = true;96 selectedCat = categories[rawType];97 98 if (isReseller) {99 if (selectedCat.reseller_price !== undefined && selectedCat.reseller_price !== "" && selectedCat.reseller_price !== null && Number(selectedCat.reseller_price) > 0) {100 finalCost = Number(selectedCat.reseller_price);101 } else if (selectedCat.price !== undefined && selectedCat.price !== "" && selectedCat.price !== null) {102 finalCost = Number(selectedCat.price); 103 } else {104 finalCost = Number(selectedCat.normal_price || 0);105 }106 } else {107 finalCost = Number(selectedCat.normal_price || selectedCat.price || 0);108 }109 110 let fallbackStock = Bot.getProperty("ff_stock_" + rawType) || [];111 stockData = (selectedCat.stock_list && selectedCat.stock_list.length > 0) ? selectedCat.stock_list : fallbackStock;112 displayTypeName = selectedCat.name;113 }114 115 if (!stockData || stockData.length === 0) {116 if (queryId) {117 Api.answerCallbackQuery({118 callback_query_id: String(queryId),119 text: "❌ Stock is empty! Cannot process purchase.",120 show_alert: true121 });122 } else {123 Api.sendMessage({ chat_id: chatID, text: "❌ Out of stock items cannot be processed." });124 }125 return;126 }127 128 var userRes = Libs.ResourcesLib.userRes("balance");129 var bonusBal = Bot.getProperty("balance" + userId) || 0;130 var unifiedTotalBalance = Number(userRes.value()) + Number(bonusBal);131 132 if (unifiedTotalBalance < finalCost) {133 var needToPay = finalCost - unifiedTotalBalance;134 135 User.setProperty("buy_price", finalCost, "number");136 User.setProperty("buy_needpay", needToPay, "number");137 User.setProperty("buy_prod_name", displayTypeName, "string");138 139 if (queryId) {140 Api.answerCallbackQuery({ 141 callback_query_id: String(queryId), 142 text: "⚠️ Balance low! Generating QR for ₹" + needToPay + "...", 143 show_alert: true 144 });145 }146 147 // 🔒 v8: pehle yahan default UPI ID (hardcoded) use hoti thi — ab admin ne apni UPI + keys set ki hon tabhi QR banta hai.148 if (!(Bot.getProperty("paytm_upi") || Bot.getProperty("payment_upi_id") || "paytm.s1tk6od@pty") || !(Bot.getProperty("paytm_merchant_id") || "SDfRhW21109811758334") || !(Bot.getProperty("paytm_merchant_key") || "SDfRhW21109811758334")) {149 Api.sendMessage({ chat_id: chatID, text: "⚠️ UPI (Paytm) payment abhi configure nahi hai. Kripya FamPay se pay karo ya admin se contact karo." });150 return;151 }152 var targetUrl = "https://paytm.anujbots.xyz/qr.php?upi=" + encodeURIComponent(Bot.getProperty("paytm_upi") || Bot.getProperty("payment_upi_id") || "paytm.s1tk6od@pty") + "&amount=" + encodeURIComponent(needToPay) + "&merchantid=" + encodeURIComponent(Bot.getProperty("paytm_merchant_id") || "SDfRhW21109811758334") + "&merchantkey=" + encodeURIComponent(Bot.getProperty("paytm_merchant_key") || "SDfRhW21109811758334");153 154 Api.sendMessage({155 chat_id: chatID,156 text: "<b>📉 Requesting QR from server...\n<code>" + targetUrl + "</code></b>",157 parse_mode: "HTML"158 });159 160 HTTP.get({161 url: targetUrl,162 success: "/onBuyQR"163 });164 return;165 }166 167 if (bonusBal >= finalCost) {168 Bot.setProperty("balance" + userId, bonusBal - finalCost, "number");169 } else {170 var remainingDeduction = finalCost - bonusBal;171 Bot.setProperty("balance" + userId, 0, "number");172 userRes.remove(remainingDeduction);173 }174 175 var accountExtracted = stockData.shift();176 177 if (isDynamicCategory && selectedCat) {178 selectedCat.stock_list = stockData;179 Bot.setProperty("fb_categories", fbCategories, "json");180 } else if (isGeneralCategory && selectedCat) {181 selectedCat.stock_list = stockData;182 var categories = Bot.getProperty("ff_categories") || {};183 categories[rawType] = selectedCat;184 Bot.setProperty("ff_categories", categories, "json");185 Bot.setProperty("ff_stock_" + rawType, stockData, "json");186 } else {187 Bot.setProperty("ff_stock_" + rawType, stockData, "json");188 }189 190 var fullRawString = String(accountExtracted || "").trim();191 var emailData = fullRawString;192 var passwordData = "No Password Found";193 194 if (fullRawString.indexOf("|") !== -1) {195 var lastPipeIndex = fullRawString.lastIndexOf("|");196 var firstPart = fullRawString.substring(0, lastPipeIndex).trim();197 var secondPart = fullRawString.substring(lastPipeIndex + 1).trim();198 199 if (firstPart.indexOf(" ") !== -1) {200 var spaceParts = firstPart.split(" ");201 emailData = spaceParts[spaceParts.length - 1].trim();202 } else {203 emailData = firstPart;204 }205 passwordData = secondPart;206 }207 208 let purchasedKeys = User.getProperty("my_purchased_keys") || [];209 if (!Array.isArray(purchasedKeys)) { purchasedKeys = []; }210 211 let currentDate = new Date().toLocaleDateString('en-IN', { timeZone: 'Asia/Kolkata' });212 purchasedKeys.push({213 productName: displayTypeName,214 cost: finalCost.toString(),215 key: emailData + (passwordData !== "No Password Found" ? " | " + passwordData : ""),216 days: "Permanent", 217 date: currentDate218 });219 User.setProperty("my_purchased_keys", purchasedKeys, "json");220 221 var deliveryText = 222 "┏━━━━━━━━━━━━━━━━━━━━━━━━┓\n" +223 "┃ ❤️🔥 <b>PURCHASE SUCCESSFUL!</b> ❤️🔥 ┃\n" +224 "┗━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n" +225 "📦 <b>Item:</b> <code>" + displayTypeName + "</code>\n" +226 "💰 <b>Paid:</b> <code>₹" + finalCost + "</code> " + (isReseller ? "<b>(Reseller)</b>" : "") + "\n" +227 "━━━━━━━━━━━━━━━━━━━━━━━━━━\n" +228 "👤 <b>ACCOUNT DETAILS:</b>\n\n" +229 "🚀 <b>Email:</b> <code>" + emailData + "</code>\n" +230 "🔒 <b>Password:</b> <code>" + passwordData + "</code>\n" +231 "━━━━━━━━━━━━━━━━━━━━━━━━━━\n" +232 "⚠️ <i>Copy details instantly.</i>";233 234 Api.sendMessage({235 chat_id: chatID,236 text: deliveryText,237 parse_mode: "HTML"238 });239 240 if (queryId) {241 Api.answerCallbackQuery({242 callback_query_id: String(queryId),243 text: "✅ Released Successfully!",244 show_alert: false245 });246 }247 248 var adminLogChannel = String(Bot.getProperty("owner_id") || "7127818616"); 249 var adminNotificationMsg = 250 "<blockquote>⚠️ <b>NEW ORDER ALERT</b>" + (isReseller ? " [RESELLER]" : "") + "</blockquote>\n" +251 "👤 <b>User:</b> <a href='tg://user?id=" + userId + "'>" + user.first_name + "</a> (<code>" + userId + "</code>)\n" +252 "📦 <b>Item:</b> <code>" + displayTypeName + "</code>\n" +253 "💰 <b>Revenue:</b> <code>₹" + finalCost + "</code>\n" +254 "⚡ <b>Stock Left:</b> <code>" + stockData.length + " units</code>\n\n" +255 "🖥 <b>ACCOUNT DETAILS:</b>\n" +256 "➔ <b>Email:</b> <code>" + emailData + "</code>\n" +257 "➔ <b>Password:</b> <code>" + passwordData + "</code>";258 259 Api.sendMessage({260 chat_id: adminLogChannel,261 text: adminNotificationMsg,262 parse_mode: "HTML"263 });264 265} catch(e) {266 Bot.sendMessage("Critical Execution Failure Module Error: " + e.message);267}