目前正在做商家转账到零钱,user_name需要加密;未加密时,能正常调用接口,加密后,报错了
{ code: 'PARAM_ERROR', message: '平台证书序列号Wechatpay-Serial错误' }
这是加密方法
sensitiveInformationDecrypt(str, padding = crypto.constants.RSA_PKCS1_OAEP_PADDING) {const decrypted = crypto.privateDecrypt({ key:Buffer.from('xxxxxxxx'), padding, oaepHash: 'sha1' }, Buffer.from(str, 'base64'));return decrypted.toString('utf8');}
首先,确保你的加密和解密方法都是正确的,并且密钥是正确的。在微信支付的商家转账到零钱接口中,需要加密的参数包括 mch_id
、nonce_str
、serial
、sign
、encrypt_type
和 data_list
。
在你的问题中,报错信息是 '平台证书序列号Wechatpay-Serial错误'
,这意味着你可能在解密过程中使用了错误的序列号。你需要确保你在解密时使用的序列号与加密时使用的序列号一致。
此外,你需要确保你的 Node.js 版本支持你使用的加密和解密方法。你可能需要更新你的 Node.js 版本,或者使用一个不同的库来进行加密和解密。
在解密时,你需要将加密的字符串转换为 Buffer,然后使用你的私钥进行解密。这可能需要一些调整。
以下是一个基本的解密示例:
const crypto = require('crypto');function sensitiveInformationDecrypt(encryptedStr, privateKey) { const buffer = Buffer.from(encryptedStr, 'base64'); const decipher = crypto.createDecipheriv('AES-256-CBC', privateKey, Buffer.alloc(16)); const decrypted = decipher.update(buffer, 'utf8', 'utf8'); decrypted += decipher.final('utf8'); return decrypted;}
在上述代码中,privateKey
是你的私钥,它是一个 Buffer。你需要确保你的私钥是正确的,并且与加密时使用的私钥一致。
请注意,这只是一个基本的示例,你可能需要根据你的具体需求进行修改。例如,你可能需要使用不同的加密算法或密钥长度。此外,你可能还需要处理加密和解密过程中的错误。
wx.BaaS.pay(OBJECT) OBJECT 参数说明 参数 类型 必填 参数描述 totalCost Number Y 支付总额 merchandiseDescription String Y 微信支付凭证-商品详情的内容 merchandiseSchemaID Integer N 商品表 ID,可用于定位用户购买的物品 merchandiseRecordID String N 商品记录
发起一个微信支付请求 wx.chooseWXPay({ timestamp: 0, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符 nonceStr: '', // 支付签名随机串,不长于 32 位 package: '', // 统一支付接口返回的prepay_id参
主要内容:1.引入包,2.配置加密、解密的密码,3.测试用例中生成加密后的秘钥,4.将加密后的字符串替换原明文,5.部署时配置 salt(盐)值MySQL 登录密码,Redis 登录密码以及第三方的密钥等等一览无余。这里介绍一个加解密组件,提高一些属性配置的安全性。 1.引入包 2.配置加密、解密的密码 3.测试用例中生成加密后的秘钥 4.将加密后的字符串替换原明文 5.部署时配置 salt(盐)值 为了防止 salt(盐)泄露被反解出密码,可以在项目部署的时候使用命令传入 salt 值:
主要内容:1.引入包,2.配置加密、解密的密码,3.测试用例中生成加密后的秘钥,4.将加密后的字符串替换原明文,5.部署时配置 salt(盐)值MySQL 登录密码,Redis 登录密码以及第三方的密钥等等一览无余。这里介绍一个加解密组件,提高一些属性配置的安全性。 1.引入包 2.配置加密、解密的密码 3.测试用例中生成加密后的秘钥 4.将加密后的字符串替换原明文 5.部署时配置 salt(盐)值 为了防止 salt(盐)泄露被反解出密码,可以在项目部署的时候使用命令传入 salt 值:
本文向大家介绍nodejs微信公众号支付开发,包括了nodejs微信公众号支付开发的使用技巧和注意事项,需要的朋友参考一下 odeJs 微信公众号功能开发,移动端 H5页面调用微信的支付功能。这几天根据公司的需要使用 node 和 h5页面调用微信的支付功能完成支付需求。现在把开发过程重新捋一遍,以帮助更多的开发者顺利的完成微信支付功能的开发。(微信暂时还没有提供 node 的支付功能) 一.请求
本文向大家介绍微信支付开发教程(一)微信支付URL配置,包括了微信支付开发教程(一)微信支付URL配置的使用技巧和注意事项,需要的朋友参考一下 一、选择支付类型 目前有两种支付类型 JS API网页支付 Native原生支付 如果没有特殊要求,两种都勾选。 二、支付授权目录 目前可以选择http还是https协议,没有特别要求,选择http。对安全要求比较高的企业,请选择https