require('dotenv').config(); const { AlipaySdk } = require('alipay-sdk'); const sdk = new AlipaySdk({ appId: process.env.ALIPAY_APP_ID, privateKey: process.env.ALIPAY_PRIVATE_KEY, alipayPublicKey: process.env.ALIPAY_PUBLIC_KEY, signType: 'RSA2', }); // 用 exec 直接调API(不走浏览器跳转),能看到服务器返回的原始错误 async function test() { try { console.log('[1] 测试预下单 alipay.trade.precreate...\n'); const r1 = await sdk.exec('alipay.trade.precreate', { bizContent: { out_trade_no: 'DIAG' + Date.now(), total_amount: '0.01', subject: '诊断测试', }, }); console.log('precreate 结果:', JSON.stringify(r1, null, 2).substring(0, 500)); } catch(e) { console.log('precreate 错误:', e.message); } try { console.log('\n[2] 测试查询 alipay.trade.query...\n'); const r2 = await sdk.exec('alipay.trade.query', { bizContent: { out_trade_no: 'DIAG' + Date.now(), }, }); console.log('query 结果:', JSON.stringify(r2, null, 2).substring(0, 500)); } catch(e) { console.log('query 错误:', e.message); } // 测试 pageExec 用 GET 方式 try { console.log('\n[3] 测试 pageExec GET...\n'); const u = sdk.pageExec('alipay.trade.wap.pay', { bizContent: { out_trade_no: 'PGET' + Date.now(), total_amount: '0.01', subject: 'pageExec测试', product_code: 'QUICK_WAP_WAY', }, returnUrl: 'https://book.rrbrr.com/#/pages/payment-result/index', notifyUrl: 'https://book.rrbrr.com/api/payment/alipay/notify', }); console.log('pageExec 结果(前300):', String(u).substring(0, 300)); } catch(e) { console.log('pageExec 错误:', e.message); } } test();