微信支付v3支付回调,公钥验签nodejs
·
使用wechatpay-node-v3这个库,回调验签报错证书拉取失败。
以下使用加密库的方式实现。
微信支付文档链接
async verifySign(header:any,body:any){
//新申请的证书 v3要用公钥验签 报错证书拉取失败,可能新证书要重新获取一遍?
// const res = await this.wxPay.verifySign({
// apiSecret:this.configService.get('wx_service.apiSecret'),
// body: body,
// signature: header['wechatpay-signature'],
// serial: header['wechatpay-serial'],
// nonce: header['wechatpay-noncet'],
// timestamp: header['wechatpay-timestamp'],
// })
//手动验签
const timestamp = header['wechatpay-timestamp']
const nonce = header['wechatpay-nonce']
const signature = header['wechatpay-signature']
// 2. 验证关键参数是否存在
if (!signature || !timestamp || !nonce) {
throw new Error('Missing required headers for verification');
}
const signStr = `${timestamp}\n${nonce}\n${JSON.stringify(body)}\n`
//使用安全模块验证签名
const res = crypto.verify('RSA-SHA256',Buffer.from(signStr),{
key: this.pub_key,
padding: crypto.constants.RSA_PKCS1_PADDING
},Buffer.from(signature,'base64'))
console.log("验签结果",res)
return res
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)