nodejs开发微信支付之退款结果通知url

  • 前言
  • 步骤
    • 1.先对加密串A进行base64解密
    • 2.对商户key做md5,得到32位小写key
    • 3.用key*对加密串B做AES-256-ECB解密

前言

退款成功后返回的xml格式示例

步骤

加密字符串是req_info
解密之前,我们需要把xml格式转换为json格式:

const notificationXML = ctx.request.body.xmlconst notificationJSON = {}for (let [key, value] of Object.entries(notificationXML)) {notificationJSON[key] = value[0]}let notionResult = notificationJSON['req_info']

1.先对加密串A进行base64解密

  let resultInfo = Buffer.from(notionResult, 'base64')

2.对商户key做md5,得到32位小写key

 const key = 'KmfuRzZM9lfxHJL'const md5Key = await crypto.createHash('md5').update(key).digest('hex')

3.用key*对加密串B做AES-256-ECB解密

我们将解密过程封装成一个方法,这样调用起来比较方便

/*** aes解密微信回调通知* @param data 待解密内容* @param key 必须为32位私钥* @returns {string}*/
exports.decryption = function (data, key, iv) {if (!data) {return ''}iv = iv || ''var clearEncoding = 'utf8'var cipherEncoding = 'base64'var cipherChunks = []var decipher = crypto.createDecipheriv('aes-256-ecb', key, iv)decipher.setAutoPadding(true)cipherChunks.push(decipher.update(data, cipherEncoding, clearEncoding))cipherChunks.push(decipher.final(clearEncoding))return cipherChunks.join('')
}

解密方法封装好了,那就开始调用

const fxp = require('fast-xml-parser')let iv = Buffer.alloc(0) // 设置偏移量let decxml = exports.decryption(resultInfo, md5Key, iv) // 解码console.log(decxml)let reg = new RegExp('root>', 'g')decxml = decxml.replace(reg, 'xml>') // 转化为xml格式console.log(decxml)const xml2json = fxp.parse(decxml) // xml转对象console.log(xml2json)

剩下的就看自己的业务需求了,值都取出来了想干嘛干嘛,服务号的通知什么的也很容易,退款通知这种,下一个博客见。
来自小仙女的代码之路.
附带大神的链接 https://www.oecom.cn/nodejs-wechat-pay-4/

nodejs开发微信支付之接收退款申请通知相关推荐

  1. nodejs实现微信支付小微商户申请入驻接口

    微信支付小微商户可以通过小程序<微信买单服务商助手>来进件,也可以通过API接口来进件(详情可查阅小微商户专属接口文档). 2种方式进件后的商户是有区别的 不同进件方式下的小微商户对比   ...

  2. 微信小程序云开发微信支付、订单查询、申请退款

    微信小程序云开发微信支付 使用云开发微信支付功能的前提 统一下单 查询订单 申请退款 常见问题总结: 使用云开发微信支付功能的前提 小程序主体为企业或者工商个体户 小程序完成了微信认证 小程序接入微信 ...

  3. php开发微信商户平台支付宝支付,不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...

    我们知道,开发微信支付需要申请服务号并且需要一系列的资料才可以开通.怪麻烦的,现在我们可以用第三方开放的免签约微信支付接口,支付宝接口和QQ钱包接口,实现实时到帐的微信支付开发. 我们只需要在第三方的 ...

  4. 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...

    我们知道,开发微信支付需要申请服务号并且需要一系列的资料才可以开通.怪麻烦的,现在我们可以用第三方开放的免签约微信支付接口,支付宝接口和QQ钱包接口,实现实时到帐的微信支付开发. 我们只需要在第三方的 ...

  5. springboot快速开发微信支付

    springboot快速开发微信支付 1. POM文件添加依赖 <properties><wechat.sdk.version>3.3.7.B</wechat.sdk.v ...

  6. 如何使用easywechat开发微信支付功能

    easywechat是神一样的存在.非常好用.希望大家都能转到这上面来. 用easywechat来开发微信支付功能,步骤如下: 一,需要有一个商品下单页面,页面上有你的商品的信息,还要有购买数量,和一 ...

  7. php 工商银行公众号支付代码_php开发微信支付企业付款实例代码

    企业付款的应用场景: 公众号向已关注用户付款,比如处理退款.财务结算等,本文主要和大家分享php开发微信支付企业付款实例代码,希望能帮助到大家. 说明 1.证书需要用自己的商户里面的证书(注意:证书路 ...

  8. PHP实现小程序微信支付v3版本退款,以及对退款订单进行查询

    PS:本篇文章仅用作对小程序微信支付v3版本的退款流程以及对退款订单进行查询的流程展示,如要用于实际,还请自行修改代码 文章中调用的API_Connect.php 与API_v3Connect.php ...

  9. PHP微信根据订单号查询支付结果,9. PHP接入微信支付订单、退款订单、转款订单的查询...

    微信并未提供一个统一的查询接口.对应每种查询均需要不同的api.为了便于大家在项目中使用,忽略细节.对以上三种进行了封装.通过工厂的方式降低调用成本. $wxconfig = [ 'app_id' = ...

最新文章

  1. Xcode7中创建静态库
  2. 链接被点击的默认行为——带到另一个窗口
  3. php7 thinkphp5,thinkphp5+phpstudy+php7.0连接SQL Server 2008 | 睿客网
  4. Loki 2.0.0 发布,ELK之外的优秀日志聚合系统!
  5. Spring中RedirectAttributes的用法
  6. [Swift] 使用Playground
  7. 工作169:删除操作
  8. html文件图标变成白色,win10系统html文件图标变成空白的操作办法
  9. 亚马逊在德国新设AI研发中心,与马克思普朗克系统研究所亲密合作
  10. Matlab中的各种运算符的用法
  11. Django:django.db.utils.OperationalError: (1050, “Table ‘malicious_software_db‘ already exists“)
  12. C语言中宏的运用------利用宏技术可以简化对某结构体变量的访问
  13. 可替代Visio的免费流程图软件draw.io(含下载地址)
  14. 视频教程-QQ机器人--基于酷Q开发7精讲-C/C++
  15. Vue中error ‘XXXXX‘ is not defined no-undef解决办法
  16. 天天果园成为Zespri 佳沛奇异果直接经销商
  17. python fun函数、求4x4整型数组的主对角线元素的和_输入4行4列的二维数组,求计算主对角线各元素之和,计算副对角线各元素之和。...
  18. 2015年国网计算机考试试题,2015全国计算机等级一级MS Office考试试题(回忆版)
  19. [F2F] Java基础 (JDK特性/集合/IO/锁)
  20. Java:使用Java编写一个随机点名器

热门文章

  1. TOP命令参数详解---10分钟学会top用法
  2. [NodeJS实战]NodeJS WebSocket实例
  3. 中闽在线:以“积分”为纽带 共享线上渠道资源
  4. python爬虫-淘宝商品密码(图文教程附源码)
  5. opporeno5可以用鸿蒙系统,华为mate40和opporeno5对比哪个好
  6. 专利或成为国内手机企业阻止小米壮大的利器
  7. 嘉兴秀水学院计算机,嘉兴秀水中等专业学校2021年有哪些专业
  8. sleuth+zipkin链路追踪
  9. 深度解惑Microsoft Office 365邮件收发限制说明
  10. 巨头纷纷下场 百度Apollo商业化胜算还有多大