tft每日頭條

 > 生活

 > 微信支付如何辦理商家退款

微信支付如何辦理商家退款

生活 更新时间:2024-12-18 22:01:48

微信支付如何辦理商家退款?應用場景當交易發生之後一年内,由于買家或者賣家的原因需要退款時,賣家可以通過退款接口将支付金額退還給買家,微信支付将在收到退款請求并且驗證成功之後,将支付款按原路退還至買家賬号上,我來為大家科普一下關于微信支付如何辦理商家退款?以下内容希望對你有幫助!

微信支付如何辦理商家退款(避坑曆險記-微信支付退款業務通知的小知識)1

微信支付如何辦理商家退款

前言

應用場景

當交易發生之後一年内,由于買家或者賣家的原因需要退款時,賣家可以通過退款接口将支付金額退還給買家,微信支付将在收到退款請求并且驗證成功之後,将支付款按原路退還至買家賬号上。

通知規則

商戶退款完成後,微信會把相關退款結果和用戶信息發送給清算機構,清算機構需要接收處理後返回應答成功,然後繼續給異步通知到下遊從業機構。

通知報文

退款結果通知是以POST 方法訪問商戶設置的通知url,通知的數據以JSON 格式通過請求主體(BODY)傳輸。通知的數據包括了加密的支付結果詳情。

問題

開發者通過[申請退款接口]設置notify_url,則通知報文會推送到指定鍊接。由于微信支付接口分為v2版本和v3版本,接收到的通知報文格式分别對應觸發退款的接口版本。

退款流程開發者根據接口文檔自行開發,并且自行處理通知報文自然是沒問題,但是如果開發者隻開發了v3版本,卻通過商戶平台發起退款,則通知報文默認是v2的xml格式,那麼在開發者後台接收到通知報文時按照v3版本處理則會報錯。

通知報文

v2版本

<xml> <return_code>SUCCESS</return_code> <appid> <![CDATA[appid]]> </appid> <mch_id> <![CDATA[mch_id]]> </mch_id> <nonce_str> <![CDATA[nonce_str]]> </nonce_str> <req_info> <![CDATA[req_info]]> </req_info> </xml>

v3版本

{ original_type: 'refund', algorithm: 'AEAD_AES_256_GCM', ciphertext: 'ciphertext', associated_data: 'refund', nonce: 'nonce' }

解決方案

服務端根據響應頭信息中的'content-type':'text/xml'來判斷通知報文是v2還是v3版本,然後再針對不同的報文數據進行解密獲得真實信息。

解密後的退款通知

v2版本

{ return_code: 'SUCCESS', appid: 'appid', mch_id: 'mch_id', nonce_str: 'nonce_str', req_info: { out_refund_no: 'out_refund_no', out_trade_no: 'out_trade_no', refund_account: 'REFUND_SOURCE_RECHARGE_FUNDS', refund_fee: 'refund_fee', refund_id: 'refund_id', refund_recv_accout: 'refund_recv_accout', refund_request_source: 'VENDOR_PLATFORM', refund_status: 'SUCCESS', settlement_refund_fee: 'settlement_refund_fee', settlement_total_fee: 'settlement_total_fee', success_time: 'success_time', total_fee: 'total_fee', transaction_id: 'transaction_id' } }

v3版本

{ mchid: 'mchid', out_trade_no: 'out_trade_no', transaction_id: 'transaction_id', out_refund_no: 'out_refund_no', refund_id: 'refund_id', refund_status: 'SUCCESS', success_time: 'success_time', amount: { total: total, refund: refund, payer_total: payer_total, payer_refund: payer_refund }, user_received_account: 'user_received_account' }

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved