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後再判斷退款成功與否。


分享到:


相關文章: