ashoksarande3/ASHOK_HACK_STORE_BOTPublic ยท Bot Template

AIThis bot operates as a commercial storefront for selling Free Fire game hacks and cheats via UPI QR code payments. It features a dynamic pricing system with separate normal and reseller prices, product plans with flexible durations (days, hours, minutes), and a reseller program requiring a one-time upgrade fee. The bot handles payment verification through QR code generation and expiry tracking, user verification via Telegram contact sharing, and admin tools for stock management, plan creation, and ownership transfer. It includes a balance system, maintenance mode, and Telegram Stars payment fallback. The codebase uses TeleBotHost's TBL JavaScript APIs (Bot, Api, HTTP, db properties, Libs) for all logic.

Commercefreefiregame-hacksupi-paymentsqr-codesreseller-systemdynamic-pricing
ProfileTelegram
102 commands0 envUpdated 16d agoCreated Aug 22, 2026
Back to folder

commands/_select_id_product.js

javascript ยท 163 lines

Raw
1/**#command2name: /select_id_product3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12try {13  // ๐Ÿ”ฅ CALLBACK DATA CLEARING & PARAM EXTRACTION PIPELINE14  var rawParams = "";15  if (typeof params !== "undefined" && params) {16    rawParams = String(params).trim();17  }18 19  // Fallback check agar dynamic params system bypass ho gaya ho20  if (!rawParams && typeof request !== "undefined" && request) {21    var callbackQuery = request.callback_query || request;22    if (callbackQuery && callbackQuery.data) {23      var dataStr = String(callbackQuery.data).trim();24      var parts = dataStr.split(" ");25      if (parts.length > 1) {26        rawParams = parts.slice(1).join(" ").trim();27      } else {28        rawParams = dataStr;29      }30    }31    32    // Clear loading spinner instantly33    let queryId = request.id || (request.callback_query && request.callback_query.id);34    if (queryId) {35      try { Api.answerCallbackQuery({ callback_query_id: queryId }); } catch (qErr){}36    }37  }38 39  // Safe Chat ID fallback40  var targetChatId = (chat && chat.chatid) ? chat.chatid : ((chat && chat.id) ? chat.id : (user ? user.telegramid : null));41 42  if (!targetChatId) return; // Silent guard if no context exists43 44  // ๐Ÿ›ก๏ธ SECURITY & EMPTY PARAM CHECK FIX45  if (!rawParams || rawParams.indexOf("/") === 0) { 46    Api.sendMessage({47      chat_id: targetChatId,48      text: "<tg-emoji emoji-id='5244837092042750681'>โš ๏ธ</tg-emoji> <b>Session Expired or Invalid Selection.</b>\n\nKripya main menu se phir se product select karein.",49      parse_mode: "HTML"50    });51    return;52  }53 54  var categories = Bot.getProperty("ff_categories") || {};55 56  if (!categories[rawParams]) {57    Api.sendMessage({58      chat_id: targetChatId,59      text: "โŒ <b>Product nahi mila ya remove ho chuka hai!</b>\nSelected Slug: <code>" + rawParams + "</code>",60      parse_mode: "HTML"61    });62    return;63  }64 65  var item = categories[rawParams];66  var stockList = Bot.getProperty("ff_stock_" + rawParams) || [];67 68  if (!Array.isArray(stockList)) stockList = [];69 70  // Safe user role derivation71  var userId = (user && user.telegramid) ? user.telegramid : targetChatId;72  var isReseller = Bot.getProperty("is_reseller_" + userId);73  var hasResellerAccess = (isReseller === true || String(isReseller).toLowerCase() === "true");74 75  var price = hasResellerAccess76    ? (item.reseller_price !== undefined && item.reseller_price !== null ? item.reseller_price : (item.normal_price || 0))77    : (item.normal_price || 0);78 79  // ๐Ÿ’Ž MULTIPLE PREMIUM EMOJIS INTEGRATION & BOLD LAYOUT (NEW EMOJIS MIXED)80  var text =81    "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“\n" +82    "โ”ƒ <tg-emoji emoji-id='6267140231632262769'>โค๏ธโ€๐Ÿ”ฅ</tg-emoji> <b>ALL DETAILS</b> <tg-emoji emoji-id='6267140231632262769'>โค๏ธโ€๐Ÿ”ฅ</tg-emoji> โ”ƒ\n" +83    "โ”—โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”›\n\n" +84    "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\n" +85    "<tg-emoji emoji-id='5244837092042750681'>โœจ</tg-emoji> <b>PRODUCT DETAILS:</b>\n\n" +86    "<tg-emoji emoji-id='6267129592998270736'>๐Ÿ“ฃ</tg-emoji> <b>Product Name :</b> <code>" + item.name + "</code>\n\n" +87    "<tg-emoji emoji-id='6062310436672377598'>๐Ÿช</tg-emoji> <b>Current Stocks :</b> <code>" + stockList.length + " accounts</code>\n\n" +88    "<tg-emoji emoji-id='6266995104687330978'>๐Ÿ“ˆ</tg-emoji> <b>Price:</b> <code>โ‚น" + price + "</code>\n\n" +89    "<tg-emoji emoji-id='4967656361073574498'>๐Ÿ‘‘</tg-emoji> <b>Account Type :</b> <b>" + (hasResellerAccess ? "Reseller" : "User") + "</b>\n" +90    "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\n\n" +91    "<tg-emoji emoji-id='6057728771719435723'>โšก</tg-emoji> <i>Kripya confirmation ke liye niche diye gaye button par click karein.</i>";92 93  // Dynamic Button Configuration94  var purchaseButtonText = "Confirm Purchase";95  var purchaseButtonStyle = "success"; 96  var purchaseEmojiId = "6062310436672377598"; 97 98  if (stockList.length === 0) {99    purchaseButtonText = "โŒ Out of Stock";100    purchaseButtonStyle = "danger"; 101    purchaseEmojiId = "5197288647275071607"; 102  }103 104  var buttons = {105    inline_keyboard: [106      [107        {108          text: purchaseButtonText,109          callback_data: stockList.length > 0 ? "/execute_id_buy " + rawParams : "/ff_id_menu",110          style: purchaseButtonStyle,111          icon_custom_emoji_id: purchaseEmojiId112        }113      ],114      [115        {116          text: "Back to Menu",117          callback_data: "/ff_id_menu",118          style: "danger",119          icon_custom_emoji_id: "5893163582194978381"120        }121      ]122    ]123  };124 125  var targetMessageId = (typeof request !== "undefined" && request && request.message) ? request.message.message_id : null;126 127  // Render logic handling128  if (targetMessageId) {129    try {130      Api.editMessageText({131        chat_id: targetChatId,132        message_id: targetMessageId,133        text: text,134        parse_mode: "HTML",135        reply_markup: JSON.stringify(buttons)136      });137    } catch (err) {138      Api.sendMessage({139        chat_id: targetChatId,140        text: text,141        parse_mode: "HTML",142        reply_markup: JSON.stringify(buttons)143      });144    }145  } else {146    Api.sendMessage({147      chat_id: targetChatId,148      text: text,149      parse_mode: "HTML",150      reply_markup: JSON.stringify(buttons)151    });152  }153 154} catch (e) {155  var errorChatId = (chat && chat.chatid) ? chat.chatid : ((user && user.telegramid) ? user.telegramid : "8660373585");156  try {157    Api.sendMessage({158      chat_id: errorChatId,159      text: "โŒ <b>Checkout Error:</b>\n<code>" + e.message + "</code>",160      parse_mode: "HTML"161    });162  } catch(fatal){}163}