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
ProfileTelegram
132 commands0 envUpdated 6h agoCreated Sep 4, 2026
Back to folder

commands/_process_buy.js

javascript · 257 lines

Raw
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}