amanjha18v/AMAN_SHOPS_BOTPublic · Bot Template
AIAMAN SHOP STORE appears to be a Telegram automation bot. Commands include /*, /addbal, /addbal_all, /addbal_binance, /addbal_binance_approve, /addbal_binance_paid, /addbal_upi, /addcat_id. Observed in code: messaging, http, libs, keyboards, payments.
Utilityutility
132 commands0 envUpdated 7h agoCreated Sep 4, 2026
commands/_process_buy.js
javascript · 257 lines
1/**#command2name: /process_buy3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12// =========================================================13// 🛒 COMMAND = /process_buy (ORIGINAL)14// =========================================================15 16try {17 if (!params || typeof params !== "string") return;18 19 let data = params.split(" ");20 let rawType = data[0] ? data[0].toLowerCase().trim() : "";21 let actionState = data[1] ? data[1].toLowerCase().trim() : "";22 23 let queryId = request.id || (request.callback_query && request.callback_query.id);24 let userId = user.telegramid.toString().trim(); 25 let chatID = chat.chatid;26 27 let rawResellers = Bot.getProperty("resellers_list");28 let resellers = [];29 30 if (rawResellers) {31 if (Array.isArray(rawResellers)) {32 resellers = rawResellers;33 } else if (typeof rawResellers === "string") {34 try { resellers = JSON.parse(rawResellers); } catch(e) { resellers = rawResellers.split(","); }35 } else if (typeof rawResellers === "object") {36 resellers = rawResellers.resellers || rawResellers.list || rawResellers.users || Object.values(rawResellers);37 }38 }39 if (!Array.isArray(resellers)) { resellers = []; }40 41 let isReseller = resellers.map(function(id) {42 return id ? id.toString().toLowerCase().trim() : "";43 }).includes(userId) || (userId === "5191323229");44 45 let finalCost = 0;46 let stockData = [];47 let displayTypeName = "";48 let isDynamicCategory = false;49 let isGeneralCategory = false;50 let selectedCat = null;51 52 let fbCategories = Bot.getProperty("fb_categories", []);53 if (!Array.isArray(fbCategories)) { fbCategories = []; }54 55 if (rawType.startsWith("fb_")) {56 isDynamicCategory = true;57 let targetCatId = rawType.replace("fb_", "").trim();58 59 for (let i = 0; i < fbCategories.length; i++) {60 if (fbCategories[i].id === targetCatId) {61 selectedCat = fbCategories[i];62 break;63 }64 }65 66 if (!selectedCat) {67 if (queryId) Api.answerCallbackQuery({ callback_query_id: queryId, text: "❌ Category deleted!", show_alert: true });68 return;69 }70 71 if (isReseller && selectedCat.reseller_price !== undefined && selectedCat.reseller_price !== "") {72 finalCost = Number(selectedCat.reseller_price);73 } else {74 finalCost = Number(selectedCat.price || 0);75 }76 stockData = selectedCat.stock_list || [];77 displayTypeName = selectedCat.name;78 } else if (rawType == "fb" || rawType == "google") {79 let priceRes = parseFloat(Bot.getProperty("price_res_" + rawType) || 0);80 let priceNorm = parseFloat(Bot.getProperty("price_norm_" + rawType) || 0);81 finalCost = isReseller ? priceRes : priceNorm;82 stockData = Bot.getProperty("ff_stock_" + rawType) || [];83 displayTypeName = rawType.toUpperCase();84 } else {85 var categories = Bot.getProperty("ff_categories") || {};86 if (!categories[rawType]) {87 if (queryId) Api.answerCallbackQuery({ callback_query_id: String(queryId), text: "❌ Invalid Product!", show_alert: true });88 return;89 }90 isGeneralCategory = true;91 selectedCat = categories[rawType];92 93 if (isReseller) {94 if (selectedCat.reseller_price !== undefined && selectedCat.reseller_price !== "" && selectedCat.reseller_price !== null && Number(selectedCat.reseller_price) > 0) {95 finalCost = Number(selectedCat.reseller_price);96 } else if (selectedCat.price !== undefined && selectedCat.price !== "" && selectedCat.price !== null) {97 finalCost = Number(selectedCat.price); 98 } else {99 finalCost = Number(selectedCat.normal_price || 0);100 }101 } else {102 finalCost = Number(selectedCat.normal_price || selectedCat.price || 0);103 }104 105 let fallbackStock = Bot.getProperty("ff_stock_" + rawType) || [];106 stockData = (selectedCat.stock_list && selectedCat.stock_list.length > 0) ? selectedCat.stock_list : fallbackStock;107 displayTypeName = selectedCat.name;108 }109 110 if (!stockData || stockData.length === 0) {111 if (queryId) {112 Api.answerCallbackQuery({113 callback_query_id: String(queryId),114 text: "❌ Stock is empty! Cannot process purchase.",115 show_alert: true116 });117 } else {118 Api.sendMessage({ chat_id: chatID, text: "❌ Out of stock items cannot be processed." });119 }120 return;121 }122 123 var userRes = Libs.ResourcesLib.userRes("balance");124 var bonusBal = Bot.getProperty("balance" + userId) || 0;125 var unifiedTotalBalance = Number(userRes.value()) + Number(bonusBal);126 127 if (unifiedTotalBalance < finalCost) {128 var needToPay = finalCost - unifiedTotalBalance;129 130 User.setProperty("buy_price", finalCost, "number");131 User.setProperty("buy_needpay", needToPay, "number");132 User.setProperty("buy_prod_name", displayTypeName, "string");133 134 if (queryId) {135 Api.answerCallbackQuery({ 136 callback_query_id: String(queryId), 137 text: "⚠️ Balance low! Generating QR for ₹" + needToPay + "...", 138 show_alert: true 139 });140 }141 142 var targetUrl = "https://fampay.anujbots.xyz/qr.php?upi=" + encodeURIComponent(Bot.getProperty("payment_upi_id") || "galureang@fam") + "&amount=" + needToPay;143 144 Api.sendMessage({145 chat_id: chatID,146 text: "<b>📉 Requesting QR from server...\n<code>" + targetUrl + "</code></b>",147 parse_mode: "HTML"148 });149 150 HTTP.get({151 url: targetUrl,152 success: "/onBuyQR"153 });154 return;155 }156 157 if (bonusBal >= finalCost) {158 Bot.setProperty("balance" + userId, bonusBal - finalCost, "number");159 } else {160 var remainingDeduction = finalCost - bonusBal;161 Bot.setProperty("balance" + userId, 0, "number");162 userRes.remove(remainingDeduction);163 }164 165 var accountExtracted = stockData.shift();166 167 if (isDynamicCategory && selectedCat) {168 selectedCat.stock_list = stockData;169 Bot.setProperty("fb_categories", fbCategories, "json");170 } else if (isGeneralCategory && selectedCat) {171 selectedCat.stock_list = stockData;172 var categories = Bot.getProperty("ff_categories") || {};173 categories[rawType] = selectedCat;174 Bot.setProperty("ff_categories", categories, "json");175 Bot.setProperty("ff_stock_" + rawType, stockData, "json");176 } else {177 Bot.setProperty("ff_stock_" + rawType, stockData, "json");178 }179 180 var fullRawString = String(accountExtracted || "").trim();181 var emailData = fullRawString;182 var passwordData = "No Password Found";183 184 if (fullRawString.indexOf("|") !== -1) {185 var lastPipeIndex = fullRawString.lastIndexOf("|");186 var firstPart = fullRawString.substring(0, lastPipeIndex).trim();187 var secondPart = fullRawString.substring(lastPipeIndex + 1).trim();188 189 if (firstPart.indexOf(" ") !== -1) {190 var spaceParts = firstPart.split(" ");191 emailData = spaceParts[spaceParts.length - 1].trim();192 } else {193 emailData = firstPart;194 }195 passwordData = secondPart;196 }197 198 let purchasedKeys = User.getProperty("my_purchased_keys") || [];199 if (!Array.isArray(purchasedKeys)) { purchasedKeys = []; }200 201 let currentDate = new Date().toLocaleDateString('en-IN', { timeZone: 'Asia/Kolkata' });202 purchasedKeys.push({203 productName: displayTypeName,204 cost: finalCost.toString(),205 key: emailData + (passwordData !== "No Password Found" ? " | " + passwordData : ""),206 days: "Permanent", 207 date: currentDate208 });209 User.setProperty("my_purchased_keys", purchasedKeys, "json");210 211 var deliveryText = 212 "┏━━━━━━━━━━━━━━━━━━━━━━━━┓\n" +213 "┃ ❤️🔥 <b>PURCHASE SUCCESSFUL!</b> ❤️🔥 ┃\n" +214 "┗━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n" +215 "📦 <b>Item:</b> <code>" + displayTypeName + "</code>\n" +216 "💰 <b>Paid:</b> <code>₹" + finalCost + "</code> " + (isReseller ? "<b>(Reseller)</b>" : "") + "\n" +217 "━━━━━━━━━━━━━━━━━━━━━━━━━━\n" +218 "👤 <b>ACCOUNT DETAILS:</b>\n\n" +219 "🚀 <b>Email:</b> <code>" + emailData + "</code>\n" +220 "🔒 <b>Password:</b> <code>" + passwordData + "</code>\n" +221 "━━━━━━━━━━━━━━━━━━━━━━━━━━\n" +222 "⚠️ <i>Copy details instantly.</i>";223 224 Api.sendMessage({225 chat_id: chatID,226 text: deliveryText,227 parse_mode: "HTML"228 });229 230 if (queryId) {231 Api.answerCallbackQuery({232 callback_query_id: String(queryId),233 text: "✅ Released Successfully!",234 show_alert: false235 });236 }237 238 var adminLogChannel = "5191323229"; 239 var adminNotificationMsg = 240 "<blockquote>⚠️ <b>NEW ORDER ALERT</b>" + (isReseller ? " [RESELLER]" : "") + "</blockquote>\n" +241 "👤 <b>User:</b> <a href='tg://user?id=" + userId + "'>" + user.first_name + "</a> (<code>" + userId + "</code>)\n" +242 "📦 <b>Item:</b> <code>" + displayTypeName + "</code>\n" +243 "💰 <b>Revenue:</b> <code>₹" + finalCost + "</code>\n" +244 "⚡ <b>Stock Left:</b> <code>" + stockData.length + " units</code>\n\n" +245 "🖥 <b>ACCOUNT DETAILS:</b>\n" +246 "➔ <b>Email:</b> <code>" + emailData + "</code>\n" +247 "➔ <b>Password:</b> <code>" + passwordData + "</code>";248 249 Api.sendMessage({250 chat_id: adminLogChannel,251 text: adminNotificationMsg,252 parse_mode: "HTML"253 });254 255} catch(e) {256 Bot.sendMessage("Critical Execution Failure Module Error: " + e.message);257}