nodejs解密微信支付退款申请通知数据

熟悉微信支付开发的朋友应该都知道,如果我们向退款申请接口发送的数据中包含notify_url字段,微信将会把退款申请结果发送到该url,而且通知数据是加密的。通常而言,申请成功的话极大概率也能退款成功,但是从更严谨的角度来说,退款成功的判定应该依据退款申请通知返回的数据进行。

nodejs解密微信支付退款申请通知数据

(1)对加密串A做base64解码,得到加密串B;

(2)对商户key做md5,得到32位小写key* (key设置路径:微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置);

(3)用key*对加密串B做AES-256-ECB解密(PKCS7Padding)。

下面给出nodejs解密通知数据的代码

nodejs解密微信支付退款申请通知数据

大家看过以上代码后,可能会问为什么没有按照官方给出的解密步骤进行。这里没有先对req_info进行base64的解码,是因为我已经声明了inputEncoding='base64',这样就没必要对req_info进行base64解码了。

最后还要提醒大家,微信支付开发无论是发送请求还是接收请求,数据格式都是XML,这里解密得到的数据也是XML,大家请解析XML后再判断退款成功与否。


分享到:


相關文章: