1
This commit is contained in:
2026-09-20 23:27:23 +08:00
parent dc31da7f6e
commit b7b2e1de6e
3 changed files with 381 additions and 3 deletions
+34 -2
View File
@@ -234,6 +234,7 @@
<div class="link-box" id="link-display"></div>
</div>
<a class="pay-btn c-paytm" id="pay-btn" href="#">Pay Now</a>
<button type="button" class="pay-btn c-phonepe" id="phonepe-pay-btn" style="border:none;font:inherit;">PhonePe Pay (phonepe://pay)</button>
<button type="button" class="pay-btn c-phonepe" id="phonepe-bank-btn" style="border:none;font:inherit;">PhonePe Bank Account Test (ACCOUNT)</button>
<button type="button" class="pay-btn c-mobikwik" id="mobikwik-bank-btn" style="border:none;font:inherit;">MobiKwik Transfer to Bank</button>
<button type="button" class="pay-btn c-airtel" id="airtel-bank-btn" style="border:none;font:inherit;">Airtel Transfer to Bank (₹12)</button>
@@ -267,7 +268,7 @@
},
bharatpe_biz: {
label: 'BharatPe Business',
pa: 'BHARATPE2M0J0C7U0S60086@unitype', pn: 'BharatPe Merchant',
pa: 'BHARATPE.8K0T1Q3R0X56774@fbpe', pn: 'BharatPe Merchant',
extra: () => '&tn=efb7d9b8-1f17-48e6-bca7-c10f3e35620c',
warn: null,
},
@@ -325,6 +326,28 @@
return `phonepe://native?data=${encodeURIComponent(jsonBase64)}&id=p2pContactChat`;
}
function phonepeNative2(pa, pn, am, note, extra) {
const params = {
pa: pa || '',
pn: pn || '',
mc: '',
tr: '',
tn: note || '',
am: String(am || ''),
cu: 'INR',
url: '',
};
String(extra || '').replace(/^[?&]/, '').split('&').forEach(pair => {
if (!pair) return;
const i = pair.indexOf('=');
const k = i >= 0 ? pair.slice(0, i) : pair;
const v = i >= 0 ? decodeURIComponent(pair.slice(i + 1).replace(/\+/g, ' ')) : '';
if (k) params[k] = v;
});
const qs = Object.keys(params).map(k => `${k}=${encodeURIComponent(params[k])}`).join('&');
return `phonepe://pay?${qs}`;
}
function airtelBankTransferLink() {
const accountNumber = '2053426110';
const ifsc = 'KKBK0000811';
@@ -380,7 +403,7 @@
const APP_SCHEMES = {
paytm: (pa, pn, am, extra) => `paytmmp://cash_wallet?featuretype=money_transfer&pa=${encodeURIComponent(pa)}&pn=${encodeURIComponent(pn)}&am=${encodeURIComponent(am)}&cu=INR&mc=0000&mode=02&purpose=00&orgid=159002${extra}`,
phonepe: (pa, pn, am) => phonepeNative(pa, pn, am, 'payment'),
phonepe_pay: (pa, pn, am, extra) => `phonepe://pay?pa=${encodeURIComponent(pa)}&pn=${encodeURIComponent(pn)}&am=${encodeURIComponent(am)}&cu=INR${extra}`,
phonepe_pay: (pa, pn, am, extra) => phonepeNative2(pa, pn, am, '', extra),
gpay: (pa, pn, am, extra) => `gpay://upi/pay?pa=${encodeURIComponent(pa)}&pn=${encodeURIComponent(pn)}&am=${encodeURIComponent(am)}&cu=INR${extra}`,
mobikwik: (pa, pn, am, extra) => { const tn = (extra.match(/[?&]tn=([^&]*)/) || [])[1] || 'payment'; return `mobikwik://moneytransfer/upi/verifyVpa?vpa=${encodeURIComponent(pa)}&amount=${am}&note=${tn}`; },
freecharge: (pa, pn, am, extra) => `freechargeupi://pay?pa=${encodeURIComponent(pa)}&pn=${encodeURIComponent(pn)}&am=${encodeURIComponent(am)}&cu=INR${extra}`,
@@ -463,6 +486,15 @@
} catch (_) { }
});
document.getElementById('phonepe-pay-btn').addEventListener('click', function () {
const w = WALLETS[document.getElementById('wallet').value];
const am = document.getElementById('amount').value || '10';
if (!w || !w.pa) return;
try {
window.location.href = phonepeNative2(w.pa, w.pn, am, '', w.extra());
} catch (_) { }
});
document.getElementById('phonepe-bank-btn').addEventListener('click', function () {
try {
window.location.href = phonepeBankAccountTestLink();