微信支付退款结果通知解密 base64_decode / md5 / AES
生活随笔
收集整理的這篇文章主要介紹了
微信支付退款结果通知解密 base64_decode / md5 / AES
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉自 https://jishu8.net/tag/wxpay
微信支付退款結果通知解密步驟如下:?
第一步,對商戶密鑰key進行MD5加密,得到32位小寫加密串StringA
key設置路徑:微信商戶平臺(pay.weixin.qq.com)-->賬戶設置-->API安全-->密鑰設置?
第二步,使用StringA作為key,對參數加密串進行AES-256(ECB模式,PKCS7Padding)解密,得到加密前參數。
第一步很好理解, 第二步微信并沒有給出demo, 經測試可用的PHP代碼如下
注意:示例函數的$key不是商戶秘鑰,需要事先進行MD5加密。
明文=refund_decrypt(密文,MD5(商戶秘鑰));
$refund_xml_string = refund_decrypt($weixin_post_string, md5($weixin_key));function refund_decrypt($str, $key) {$str = base64_decode($str);$str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $str, MCRYPT_MODE_ECB);$block = mcrypt_get_block_size('rijndael_128', 'ecb');$pad = ord($str[($len = strlen($str)) - 1]);$len = strlen($str);$pad = ord($str[$len - 1]);return substr($str, 0, strlen($str) - $pad); }解密結果示例
解密后:
1 <root> 2 <out_refund_no><![CDATA[R4001312001201707262674894706_4]]></out_refund_no> 3 <out_trade_no><![CDATA[201707260201501501005710775]]></out_trade_no> 4 <refund_account><![CDATA[REFUND_SOURCE_UNSETTLED_FUNDS]]></refund_account> 5 <refund_fee><![CDATA[15]]></refund_fee> 6 <refund_id><![CDATA[50000203702017072601461713166]]></refund_id> 7 <refund_recv_accout><![CDATA[用戶零錢]]></refund_recv_accout> 8 <refund_request_source><![CDATA[API]]></refund_request_source> 9 <refund_status><![CDATA[SUCCESS]]></refund_status> 10 <settlement_refund_fee><![CDATA[15]]></settlement_refund_fee> 11 <settlement_total_fee><![CDATA[100]]></settlement_total_fee> 12 <success_time><![CDATA[2017-07-26 02:45:49]]></success_time> 13 <total_fee><![CDATA[100]]></total_fee> 14 <transaction_id><![CDATA[4001312001201707262674894706]]></transaction_id> 15 </root>退款結果圖:
轉載于:https://www.cnblogs.com/mr7664/p/9933738.html
總結
以上是生活随笔為你收集整理的微信支付退款结果通知解密 base64_decode / md5 / AES的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring 学习04
- 下一篇: 从Zero到Hero,OpenAI重磅发