node 微信红包 证书出错,请登录微信支付商户平台下载证书

按照官方文档写的代码,测试给自己发红包时,提示证书出错,请登录微信支付商户平台下载证书

我是用的superagent库,错误前的核心代码是:

const url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack';
const xml = json2Xml(params);
const result = await superagent.post(url).send(xml)

其实在提交参数的时候,需要加上TLSTransport 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);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415774.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android Dialog提示框。单选项dialog,多选项dialog,EditText键盘不弹出

AlertDialog alertDialog new AlertDialog.Builder(MainActivity.this).create(); alertDialog.setMessage("You have system write settings permission now."); alertDialog.show(); private void showNormalDialogOne() {/* setIcon 设置对话框图标* setTitle 设…

用C语言实现:判断1000-2000年之间的闰年。

在编程之前,首先我们要了解闰年的定义: 1、普通年能整除4且不能整除100的为闰年。2、世纪年能整除400的是闰年。 了解概念后,我们首先需要用for循环控制输入的年份,然后再循环内使用if语句判断上述的两个条件是否成立。 #include&…

eclipse/myeclipse中快捷键 Ctrl+shift+down/up 出现屏幕颠倒的解决方法

1.原因:快捷键被占用 2.解决 如果是被其它软件占用,则修改其它软件的快捷键。 查看快捷键是否被占用工具:http://download.csdn.net/download/muyeju/9999443    如果是Integer占用,则禁用快捷键,桌面右击->图形选…

mongoose 更新元素 DeprecationWarning: collection.update is deprecated. Use updateOne, updateMany

我一开始的写法: const updOne await this.update({ _id: verify_id }, {$set: {// 认证通过,状态设置为1state: 1,// 审核操作人verify_user,verify_at: Date.now()} });使用mongoose更新元素值,报错了DeprecationWarning: collection.update is depr…

Git Bash下载安装,git命令下载项目,上传android项目到github步骤,以及取消项目关联Git,设置git忽略文件

设置忽略文件 1、工程下创建文件夹gitignore。push即可 *.iml .gradle /local.properties /.idea/caches /.idea/libraries /.idea/modules.xml /.idea/workspace.xml /.idea/navEditor.xml /.idea/assetWizardSettings.xml .DS_Store /build /captures .externalNativeBuild …

vue 获取验证码倒计时组件

之前写过一个计时函数&#xff0c;有计算误差&#xff0c;但是验证码的60秒倒计时可以忽略这一点点误差。直接上代码。 <template><div class"captcha-row"><input class"captcha-input" placeholder"输入验证码" auto-focus …

【iCore1S 双核心板_FPGA】例程十六:基于SPI的ARM与FPGA通信实验

实验现象&#xff1a; 核心代码&#xff1a; int main(void) {int i,n;char buffer[20];char spi_buffer[20];HAL_Init();system_clock.initialize();led.initialize();usart1.initialize(115200);spi.initialize();usart1.printf("Hello! I am iCore1S!\r\n"); …

记录一个奇葩问题 宝塔 nginx: [warn] conflicting server

宝塔面板里面运行很久的nginx&#xff0c;好久没有重启&#xff0c;这次一重启&#xff0c;报错了。 解决方法&#xff0c;去/www/server/panel/vhost/nginx目录下&#xff0c;把相关的历史记录给删掉&#xff0c;再重启&#xff0c;就没有问题了