按照官方文档写的代码,测试给自己发红包时,提示证书出错,请登录微信支付商户平台下载证书
。
我是用的superagent
库,错误前的核心代码是:
const url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack';
const xml = json2Xml(params);
const result = await superagent.post(url).send(xml)
其实在提交参数的时候,需要加上TLS
(Transport Layer Security的缩写
)参数,中文叫做“传输层安全协议”。
查看了superagent
官网 https://visionmedia.github.io/superagent/ 也有对象配置项
于是我要做的就是引入证书
即可,核心代码如下
// 头部引入
const fs = require('fs');
const path = require('path');
const key = fs.readFileSync(path.join(__dirname, "./cert/apiclient_key.pem"));
const cert = fs.readFileSync(path.join(__dirname, "./cert/apiclient_cert.pem"));
// 业务层
const url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack';
const xml = json2Xml(params);
const result = await superagent.post(url).send(xml).key(key).cert(cert);