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/_onBuyQR.js

javascript · 123 lines

Raw
1/**#command2name: /onBuyQR3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12try {13  if (!content) { 14    Api.sendMessage({ 15      chat_id: chat.chatid, 16      text: "❌ Error: No response from payment server. Please try again later.", 17      parse_mode: "HTML" 18    }); 19    return; 20  }21 22  var res;23  try {24    res = (typeof content === "object") ? content : JSON.parse(content);25  } catch (parseErr) {26    Api.sendMessage({27      chat_id: chat.chatid,28      text: "❌ <b>QR Parse Failed</b>\n<code>" + String(content).substring(0, 500) + "</code>",29      parse_mode: "HTML"30    });31    return;32  }33 34  if (!res || res.status !== "success" || !res.data) {35    Api.sendMessage({36      chat_id: chat.chatid,37      text: "<tg-emoji emoji-id='6219547832169273793'>❌</tg-emoji><b>QR Generation Failed</b>\n<code>" + JSON.stringify(res).substring(0, 500) + "</code>",38      parse_mode: "HTML"39    });40    return;41  }42 43  var order_id = res.data.order_id || res.data.orderid;44  var qr = res.data.qr_url || res.data.qrurl;45  var expire = res.data.expires_at_ist || res.data.expiresatist || "5 Minutes";46  var userId = user.telegramid;47 48  var price = Number(User.getProperty("buy_price") || 0);49  var userBal = Number(Libs.ResourcesLib.userRes("balance").value() || 0);50  var bonusBal = Number(Bot.getProperty("balance" + userId) || 0);51  var totalUserBal = userBal + bonusBal;52 53  var needpay = Number(User.getProperty("buy_needpay") || (price > totalUserBal ? price - totalUserBal : 0));54  var prodName = User.getProperty("buy_prod_name") || "Product";55 56  try {57    var genMsgid = Bot.getProperty("gen_msg_id_" + userId);58    if (genMsgid) {59      Api.deleteMessage({ chat_id: chat.chatid, message_id: genMsgid });60      Bot.setProperty("gen_msg_id_" + userId, null, "string");61    }62  } catch (e) {}63 64  var gatewayMsg = 65    "<tg-emoji emoji-id='6267225207560214192'>⚠️</tg-emoji><b>PAYMENT GATEWAY</b>\n\n" +66    "<tg-emoji emoji-id='6147767796097884213'>🏷️</tg-emoji><b>Product:</b> " + prodName + "\n" +67    "<tg-emoji emoji-id='6041705726206808304'>💰</tg-emoji><b>Price:</b> ₹" + price.toFixed(2) + "\n" +68    "<tg-emoji emoji-id='5348392971207194994'>💳</tg-emoji><b>Balance:</b> ₹" + totalUserBal.toFixed(2) + "\n" +69    "<tg-emoji emoji-id='619491118249881916'>📥</tg-emoji><b>Pay Now:</b> ₹" + needpay.toFixed(2) + "\n" +70    "<tg-emoji emoji-id='6266866272848321043'>⏳</tg-emoji><b>Expire Time:</b> <code>" + expire + "</code>\n\n" +71    "<tg-emoji emoji-id='5330237710655306682'>⚡</tg-emoji><b>Scan QR & pay exact amount</b>\n";72 73  var inlineButtons = [74    [75      {76        text: "I have paid",77        callback_data: "/check_buy " + order_id,78        style: "success",79        icon_custom_emoji_id: "5330237710655306682"80      },81      {82        text: "Cancel Order",83        callback_data: "/cancel_buy " + order_id,84        style: "danger",85        icon_custom_emoji_id: "6219547832169273793"86      }87    ]88  ];89 90  var sentQrMsg;91  try {92    sentQrMsg = Api.sendPhoto({93      chat_id: chat.chatid,94      photo: qr,95      caption: gatewayMsg,96      parse_mode: "HTML",97      reply_markup: JSON.stringify({ inline_keyboard: inlineButtons })98    });99  } catch (photoErr) {100    Api.sendMessage({101      chat_id: chat.chatid,102      text: "❌ <b>sendPhoto failed</b>\nQR URL: <code>" + qr + "</code>\nError: <code>" + photoErr.message + "</code>",103      parse_mode: "HTML"104    });105    return;106  }107 108  try {109    if (sentQrMsg) {110      var qrMsgId = sentQrMsg.result ? sentQrMsg.result.message_id : sentQrMsg.message_id;111      if (qrMsgId) {112        Bot.setProperty("buy_qr_msg_id_" + userId, qrMsgId, "string");113        User.setProperty("buy_pending_order_id", order_id, "string");114      }115    }116  } catch (e) {}117} catch (err) {118  Api.sendMessage({119    chat_id: chat.chatid,120    text: "⚠️ <b>System Error:</b> <code>" + (err && err.message ? err.message : String(err)) + "</code>",121    parse_mode: "HTML"122  });123}