mansuriamaan803/SANJEEVFFSTORE_botPublic · Bot Template

AIThis bot is a commerce platform for selling digital products, primarily focused on FreeFire accounts and related services. It provides admin tools for managing products, categories, stock, reseller roles, and a balance system for user payments. Users can browse products, apply coupons, and check their balance through an interactive interface with premium emojis and inline keyboards.

Commercecommercestoreproductsresellerbalancecoupon
ProfileTelegram
102 commands0 envUpdated 12d agoCreated Aug 26, 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}