微信退款全款退,退一部分,分開退一次以上區別跳坑[訂單金額或退款金額與之前請求不一致]


訂單整單退款跟只退一次的情況,我之前寫的都是類似這種,out_trade_no跟out_refund_no都放訂單號,但是這次出現了一個訂單退款一次以上的問題,官方錯誤信息為[訂單金額或退款金額與之前請求不一致,請核實后再試]

//微信退款
            $wechatData = array(
                'out_trade_no' => $data['ordernum'],
                'out_refund_no'=> $data['ordernum'],
                'total_fee' => $data['so_sum_price'],
                'refund_fee' => $refund_money
            ); 

貼上官方文檔說明,人家還重點標紅了:

應用場景

當交易發生之后一段時間內,由於買家或者賣家的原因需要退款時,賣家可以通過退款接口將支付款退還給買家,微信支付將在收到退款請求並且驗證成功之后,按照退款規則將支付款按原路退到買家帳號上。

注意:

1、交易時間超過一年的訂單無法提交退款

2、微信支付退款支持單筆交易分多次退款,多次退款需要提交原支付訂單的商戶訂單號和設置不同的退款單號。申請退款總金額不能超過訂單金額。 一筆退款失敗后重新提交,請不要更換退款單號,請使用原商戶退款單號

3、請求頻率限制:150qps,即每秒鍾正常的申請退款請求次數不超過150次

    錯誤或無效請求頻率限制:6qps,即每秒鍾異常或錯誤的退款申請請求不超過6次

4、每個支付訂單的部分退款次數不能超過50次

5、如果同一個用戶有多筆退款,建議分不同批次進行退款,避免並發退款導致退款失敗

 一個訂單退款一次以上,就不能再拿之前退款的out_refund_no參數了,我這邊就改成了下面的,就好了,我們業務只有整單退,跟部分商品退款,所以我就拼接了訂單里商品的唯一標識(同一訂單不存在重復問題)

//微信退款
		$wechatData = array(
	            'out_trade_no' => $data['ordernum'],
	            'out_refund_no'=> $data['ordernum'].$sog_id,
	            'total_fee' => $data['so_sum_price'],
	            'refund_fee' => $refund_money
	        ); 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM