Closed ChanJeff123 closed 1 year ago
{"status":400,"error":{"code":"PARAM_ERROR","message":"HTTP header缺少微信支付平台证书序列号(Wechatpay-Serial)"}} 参考样例代码格式 报错。
可以参考下面看是否能够正常获取序列号,如果获取不了,也可以在创建对象的时候,把其他方式获取的序列号写死
openssl x509 -in apiclient_cert.pem -noout -serial
获取getSN()
// 不传入参数默认创建对象时的publicKey
console.log('获取序列号', pay.getSN());
或者
console.log('获取序列号', pay.getSN(fs.readFileSync('./apiclient_cert.pem')));
{"status":400,"error":{"code":"PARAM_ERROR","message":"HTTP header缺少微信支付平台证书序列号(Wechatpay-Serial)"}} 参考样例代码格式 报错。
可以参考下面看是否能够正常获取序列号,如果获取不了,也可以在创建对象的时候,把其他方式获取的序列号写死
serial_no获取
- 请在命令窗口使用
openssl x509 -in apiclient_cert.pem -noout -serial
获取- 调用方法
getSN()
// 不传入参数默认创建对象时的publicKeyconsole.log('获取序列号', pay.getSN()); 或者 console.log('获取序列号', pay.getSN(fs.readFileSync('./apiclient_cert.pem')));
感谢大佬回复,我这边在初始化时加了key 就可以了 const companyPay = new wechatpay({ appid: APP_ID, mchid: APP_MCH_ID, publicKey: fs.readFileSync(Helpers.resourcesPath('pay/apiclient_cert.pem')), // 公钥 privateKey: fs.readFileSync(Helpers.resourcesPath('pay/apiclient_key.pem')), // 秘钥 key: APP_PARTNER_KEY });
let result = await companyPay.batches_transfer(dataBody)
console.log(result, "result");
还是不行,我看代码里,请求的时候没有加上这个Http头
你可以先模仿首页demo 测试一下 ,这个有清楚的请求参数
把请求头中 “serial_no“换成 ”Wechatpay-Serial“,看下是否有效,
{"status":400,"error":{"code":"PARAM_ERROR","message":"HTTP header缺少微信支付平台证书序列号(Wechatpay-Serial)"}} 参考样例代码格式 报错。