美文网首页
nodejs 校验微信支付通知的签名

nodejs 校验微信支付通知的签名

作者: 没头脑很不高兴 | 来源:发表于2018-08-15 20:06 被阅读0次

支付完成后,微信会把相关支付结果和用户信息发送给商户,商户需要接收处理,并返回应答

微信支付的文档请点击这里 ,这里用 js 把它写出来了

有需要的可以直接 copy

微信发送的数据是一个 xml ,首先需要吧 xml 转换成 js 的对象

在 express 中,可以使用 body-parser 这个插件达到效果

const bodyParser = require('body-parser')
require('body-parser-xml')(bodyParser)
app.use(bodyParser.xml({
    limit: '1MB',
    xmlParseOptions: {
        normalize: true,
        normalizeTags: true, 
        explicitArray: false
    }
}))

使用这个中间件会把 xml 转换成 JavaScript 的 对象(Object),下面的 checkWXNotifySign 函数默认你已经使用了上面的中间件

function checkWXNotifySign(xmlObj, PAY_API_KEY) {
    let string = ''
    const keys = Object.keys(xmlObj)
    keys.sort()
    keys.forEach(key => {
        if (xmlObj[key] && key !== 'sign') {
            string = string + key + '=' + xmlObj[key] + '&'
        }
    })
    string = string + 'key=' + PAY_API_KEY
    const localSign = md5(string).toUpperCase()
    return localSign === xmlObj.sign
}

其中,第一个参数是 xml 转换成的对象,第二个是微信支付的 key (不是小程序的 secret, 官方会发到你的邮箱里面)
函数返回的是一个布尔值,校验通过则为 true, 否则为 false
上面用到了一个 md5 函数,可以自行去 npm install 一个

相关文章

  • nodejs 校验微信支付通知的签名

    支付完成后,微信会把相关支付结果和用户信息发送给商户,商户需要接收处理,并返回应答 微信支付的文档请点击这里 ,这...

  • 微信公众号支付签名验证错误chooseWXPay:fail

    最近用nodejs开发微信公众号支付功能后台,明明后台已经签名校验成功了(签名相关可参照我的上一篇文章),支付的p...

  • 支付流程整体设计

    一、主要思想 无需支付校验,直接查询支付结果 支付流程整体设计,兼容支付宝、微信的支付设计 二、关于支付校验 支付...

  • xxe 呈现,验证,解决

    起因 微信支付接口安全提醒通知尊敬的微信支付商户: 您的系统在接受微信支付XML格式的商户回调通知(支付成功通知、...

  • iOS-微信支付SDK

    微信支付流程:客户端发起支付请求--->后台和微信SDK交互之后返回带签名的客户端支付信息(之前带签名的支付信息是...

  • nodejs实现微信支付V3(一)扫二维码支付

    这几天在弄nodejs和微信支付的对接,弄了好几天终于接通了,最大的问题就是签名参数的大小写问题,支持公众号支付和...

  • Senparc.Weixin SDK(5)——微信支付结果通知处

    上一篇介绍了如何发起微信支付,本篇介绍如果处理微信支付后的结果通知的相关处理。 1、获取微信支付结果通知参数 通知...

  • iOS-快速集成支付宝支付、微信支付的管理类

    一:封装支付宝支付 调起支付宝及其通知结果处理: 二:封装微信支付 调起微信及其通知结果处理: 最后 微信和支付宝...

  • 使用公钥完成签名验证

    在对接微信支付接口时,需要对微信支付返回的信息进行签名验证,防止中间人攻击,替换微信支付返回的结果 整体过程 微信...

  • Android爬坑之微信支付

    微信支付需要在微信开放平台配置通过正式签名文件打包的apk获取到的应用签名 微信提供的获取应用签名apk:http...

网友评论

      本文标题:nodejs 校验微信支付通知的签名

      本文链接:https://www.haomeiwen.com/subject/lsqgbftx.html