付款请求返回数据
<xml>
<bank_type><![CDATA[CMB_CREDIT]]></bank_type>
<cash_fee><![CDATA[21600]]></cash_fee>
<fee_type><![CDATA[CNY]]></fee_type>
<is_subscribe><![CDATA[N]]></is_subscribe>
<nonce_str><![CDATA[1636383470063]]></nonce_str>
<openid><![CDATA[o26H65TE20pjKhqOWBzl7IniMf7s]]></openid>
<out_trade_no><![CDATA[00199775225750]]></out_trade_no>
<result_code><![CDATA[SUCCESS]]></result_code>
<return_code><![CDATA[SUCCESS]]></return_code>
<time_end><![CDATA[20211108225754]]></time_end>
<total_fee>21600</total_fee>
<trade_type><![CDATA[JSAPI]]></trade_type>
<transaction_id><![CDATA[4200001122202111084500859809]]></transaction_id>
</xml>
退款请求数据
<xml>
<nonce_str>1636383861343</nonce_str>
<out_trade_no>00199775225750</out_trade_no>
<out_refund_no>64</out_refund_no>
<total_fee>21600</total_fee>
<refund_fee>21600</refund_fee>
<op_user_id>1604995214</op_user_id>
<refund_desc>用户取消订单</refund_desc>
</xml>
退款返回数据
<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
<nonce_str><![CDATA[Y05d6Vpn3taD2kOU]]></nonce_str>
<result_code><![CDATA[FAIL]]></result_code>
<err_code><![CDATA[INVALID_REQUEST]]></err_code>
<err_code_des><![CDATA[订单金额或退款金额与之前请求不一致,请核实后再试]]></err_code_des>
</xml>
从请求的数据上面来看,我是真的发现不了问题。
其他的退款都没有问题,有没有微信运营的帮忙解答一下,到底是哪里又问题。
因为测试环境,预发布环境,产品环境使用的都是一个商户账号,所以商户退款单号重复了。目前解决方案是 refundId + "_" + orderId
可能和你的 out_refund_no = 64 有关,这个退款单号长度太小了,很容易重复,重复的时候就乱七八糟一堆问题出来了