小程序
小游戏
企业微信
微信支付
扫描小程序码分享
退款结果通知会报一个could not find sign value from wx back data, data <xml>XXXXX</xml>的错误
xml中的内容是正常返回的结果
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
退款结果对重要的数据进行了加密,商户需要用商户密钥进行解密后才能获得结果通知的内容,返回内容没有签名,不需要进行验签操作
解密步骤如下:
(1)对加密串A做base64解码,得到加密串B
(2)对商户key做md5,得到32位小写key* ( key设置路径:微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置 )
(3)用key*对加密串B做AES-256-ECB解密(PKCS7Padding)
这里是返回示例,req_info为加密内容 <xml> <return_code>SUCCESS</return_code> <appid><![CDATA[wx2421b1c4370ec43b]]></appid> <mch_id><![CDATA[10000100]]></mch_id> <nonce_str><![CDATA[TeqClE3i0mvn3DrK]]></nonce_str> <req_info><![CDATA[T87GAHG17TGAHG1TGHAHAHA1Y1CIOA9UGJH1GAHV871HAGAGQYQQPOOJMXNBCXBVNMNMAJAA]]></req_info> </xml>
req_info解密后的示例: <root> <out_refund_no><![CDATA[131811191610442717309]]></out_refund_no> <out_trade_no><![CDATA[71106718111915575302817]]></out_trade_no> <refund_account><![CDATA[REFUND_SOURCE_RECHARGE_FUNDS]]></refund_account> <refund_fee><![CDATA[3960]]></refund_fee> <refund_id><![CDATA[50000408942018111907145868882]]></refund_id> <refund_recv_accout><![CDATA[支付用户零钱]]></refund_recv_accout> <refund_request_source><![CDATA[API]]></refund_request_source> <refund_status><![CDATA[SUCCESS]]></refund_status> <settlement_refund_fee><![CDATA[3960]]></settlement_refund_fee> <settlement_total_fee><![CDATA[3960]]></settlement_total_fee> <success_time><![CDATA[2018-11-19 16:24:13]]></success_time> <total_fee><![CDATA[3960]]></total_fee> <transaction_id><![CDATA[4200000215201811190261405420]]></transaction_id> </root>
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
因为通知XML加密了,没有md5(密钥)将无法解密加密字段,安全性有得保证,所以被设计成无需sign验签了。
返回结果如图
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
退款结果对重要的数据进行了加密,商户需要用商户密钥进行解密后才能获得结果通知的内容,返回内容没有签名,不需要进行验签操作
解密步骤如下:
(1)对加密串A做base64解码,得到加密串B
(2)对商户key做md5,得到32位小写key* ( key设置路径:微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置 )
(3)用key*对加密串B做AES-256-ECB解密(PKCS7Padding)
这里是返回示例,req_info为加密内容 <xml> <return_code>SUCCESS</return_code> <appid><![CDATA[wx2421b1c4370ec43b]]></appid> <mch_id><![CDATA[10000100]]></mch_id> <nonce_str><![CDATA[TeqClE3i0mvn3DrK]]></nonce_str> <req_info><![CDATA[T87GAHG17TGAHG1TGHAHAHA1Y1CIOA9UGJH1GAHV871HAGAGQYQQPOOJMXNBCXBVNMNMAJAA]]></req_info> </xml>
req_info解密后的示例: <root> <out_refund_no><![CDATA[131811191610442717309]]></out_refund_no> <out_trade_no><![CDATA[71106718111915575302817]]></out_trade_no> <refund_account><![CDATA[REFUND_SOURCE_RECHARGE_FUNDS]]></refund_account> <refund_fee><![CDATA[3960]]></refund_fee> <refund_id><![CDATA[50000408942018111907145868882]]></refund_id> <refund_recv_accout><![CDATA[支付用户零钱]]></refund_recv_accout> <refund_request_source><![CDATA[API]]></refund_request_source> <refund_status><![CDATA[SUCCESS]]></refund_status> <settlement_refund_fee><![CDATA[3960]]></settlement_refund_fee> <settlement_total_fee><![CDATA[3960]]></settlement_total_fee> <success_time><![CDATA[2018-11-19 16:24:13]]></success_time> <total_fee><![CDATA[3960]]></total_fee> <transaction_id><![CDATA[4200000215201811190261405420]]></transaction_id> </root>
请问这个返回结果集中的报错是写代码时自身代码的业务逻辑进行的验签报错,还是因api版本问题导致的验签问题呢?
因为通知XML加密了,没有md5(密钥)将无法解密加密字段,安全性有得保证,所以被设计成无需sign验签了。
返回结果如图