indrajitghosh20006/Igstore_01botPublic Β· Bot Template
AIThe bot provides an admin interface for a digital store, allowing the owner or coβadmins to add balances, products, plans, and categories. It supports payment workflows via UPI and Binance Pay, automatically generating QR codes and handling manual approval of deposits. The code patches inline keyboards to use premium emoji icons and includes helper functions for user and bot properties. Overall, it serves as a commerce management tool for a Telegram-based storefront.
Commercestoreadminbalanceproductplancategory
170 commands0 envUpdated 8h agoCreated Oct 30, 2026
commands/_onPreCheckoutQuery.js
javascript Β· 81 lines
1/**#command2name: /onPreCheckoutQuery3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12// PREMIUM BUTTON ICONS13(function(){14 try {15 if (!JSON.__premiumPatched) {16 var __origStringify = JSON.stringify;17 JSON.stringify = function(value, replacer, space) {18 try {19 if (value && value.inline_keyboard && Array.isArray(value.inline_keyboard)) {20 var premiumIds = [21 "6143444134125379822",22 "6091379307907652768",23 "6147534454819661264",24 "6147817325660741985",25 "6235683689292897318",26 "6102856637343600044"27 ];28 var rows = value.inline_keyboard.map(function(row, ri) {29 if (!Array.isArray(row)) return row;30 return row.map(function(btn, bi) {31 if (!btn || typeof btn !== "object") return btn;32 var copy = {};33 for (var k in btn) copy[k] = btn[k];34 if (!copy.icon_custom_emoji_id) copy.icon_custom_emoji_id = premiumIds[(ri + bi) % premiumIds.length];35 return copy;36 });37 });38 var cloned = {};39 for (var key in value) cloned[key] = value[key];40 cloned.inline_keyboard = rows;41 return __origStringify.call(JSON, cloned, replacer, space);42 }43 } catch (e) {}44 return __origStringify.call(JSON, value, replacer, space);45 };46 JSON.__premiumPatched = true;47 }48 } catch (e) {}49})();50 51 52 53// =========================================================54// β Handles Telegram's pre_checkout_query event (Stars payments).55// MUST answer within 10 seconds or the payment is auto-cancelled by Telegram.56// β οΈ PLATFORM NOTE: This file assumes Bots.Business routes incoming57// pre_checkout_query updates to a command named "/onPreCheckoutQuery" or58// exposes it via `request.pre_checkout_query`. If this event isn't reaching59// this file in testing, the same handling logic is duplicated as a fallback60// inside _start.js (which appears to be the platform's general message router).61// =========================================================62 63try {64 var pcq = (request && request.pre_checkout_query) ? request.pre_checkout_query : null;65 if (!pcq) { return; }66 67 // β
Always approve β our payloads are self-validated at successful_payment time.68 // (If you later want to reject e.g. out-of-stock items, check pcq.invoice_payload here first.)69 HTTP.post({70 url: "https://api.telegram.org/bot" + bot.token + "/answerPreCheckoutQuery",71 body: {72 pre_checkout_query_id: pcq.id,73 ok: true74 }75 });76 77} catch (err) {78 try {79 Bot.sendMessage("β οΈ PreCheckout Error: " + err.message);80 } catch (e2) {}81}