/** * 彩虹易支付 Node.js SDK 示例 * 文档: https://xxkkfz.cn/apidoc.html */ const crypto = require('crypto'); const https = require('https'); const querystring = require('querystring'); function epaySubmit(params, merchantKey) { // 排序并签名 const sorted = {}; Object.keys(params).sort().forEach(k => { if (k !== 'sign' && k !== 'sign_type' && params[k] !== '') { sorted[k] = params[k]; } }); const signStr = querystring.stringify(sorted); params.sign = crypto.createHash('md5').update(signStr + merchantKey).digest('hex'); params.sign_type = 'MD5'; // 请求接口 const postData = querystring.stringify(params); const options = { hostname: 'xxkkfz.cn', path: '/api/submit.php', method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }; return new Promise((resolve, reject) => { const req = https.request(options, res => { let body = ''; res.on('data', chunk => body += chunk); res.on('end', () => resolve(JSON.parse(body))); }); req.on('error', reject); req.write(postData); req.end(); }); } // 使用示例 epaySubmit({ pid: '1001', type: 'alipay', out_trade_no: 'ORDER' + Date.now(), notify_url: 'https://你的域名/notify', return_url: 'https://你的域名/return', name: '测试商品', money: '0.01' }, '你的商户密钥').then(console.log);