天天看點

alipay.trade.refund(統一收單交易退款接口)如何判斷退款是否成功

1、通過同步傳回的資訊來判斷退款

  調用退款接口成功同步傳回資訊示例:

{"alipay_trade_refund_response":{"code":"10000","msg":"Success","buyer_logon_id":"150****8675","buyer_user_id":"2088702939584880","fund_change":"Y","gmt_refund_pay":"2018-08-01 14:16:22","out_trade_no":"201881141452422","refund_fee":"0.01","send_back_fee":"0.00","trade_no":"2018080121001004890510526853"},"sign":"HxpAjxLvEE8LdNhiwsNZ15ucXbUTo8C0Fj9ib3ycHsxgP7bNVRqNV1IS5SHMi2/6wDz7yGBJFepb78+gFjrZ5EEFHjp81Cjbvmieb4FJAtm+7EPl1IiU/oxDKLaQ1JV2j2d4BO241flQ4HJmKzewBlCWeutxciLj/gxruMYCNAGjklg0ANaJwIBMZShWce0FLUqv+FX7v2k5Y9rmySyidL3f1ErEmbDXypxk2TDe9vGZvwyhBQlG19iNs8GNA6tMjOMFrggIadAx5WBwOfzVIBgfiMHpWicL37Ziflz9SRGa0N8+8dxBq+PPLlHeO+YOIni9He4WyZLphuykdrxdA=="}      

其中"code":"10000","msg":"Success" 隻是表示退款接口調用成功,實際是否退款成功需要依據同步傳回參數中的fund_change(本次退款是否發生了資金變化)參數來判斷 如果fund_change傳回的參數是Y那麼就可以确定為退款成功

2、通過退款查詢接口來判斷

退款查詢接口同步傳回資訊示例:

{"alipay_trade_fastpay_refund_query_response":{"code":"10000","msg":"Success","out_request_no":"201881141452422","out_trade_no":"201881141452422","refund_amount":"0.01","total_amount":"0.01","trade_no":"2018080121001004890510526880"},"sign":"Ww37FfpEkmcKZVFYZrGMm/tq0crAVHhdVYXtJyw9qawsA/hg2eBIpwHWC1C0DLN78nGQVaw9yl+eyuyEOFEGwOPTCJmx1Fd9YnzAznPWA+GgyaQoZs7ILKG985odSY22fRKJwolP7kvPBSsWRL8YdRU6I5KPOSOoWJWjrp4hK0bONrQn7XpUAX54QLexjwpw9bSpvUCVhi+TEQDVkLb3uSfKLuHKGRBlD6JNEH32tLoedyNCp+KBpd/IcivzcTMMsUFHdRHbCFM9RMq/+h5wRO8UhGFNYx7AAPCj3VmRdbo8+jSr8nSCKNoQFcbY5MCHK7rrCcXK5XvhyjkV6NOiQ=="}      

同樣的,這裡的code":"10000","msg":"Success" 表示的是調用接口成功,判斷退款是否成功需要依據該接口是否傳回了查詢資料,如果傳回了則代表退款成功,如果沒有查詢到則代表未退款成功,可以調用退款接口進行重試。重試時請務必保證退款請求号一緻。這裡的傳回查詢資料指的就是在這個接口調用成功後是否有傳回如示例中的out_request_no,out_trade_no,refund_amount,trade_no 等參數  如果有傳回則可判定為退款成功

3、通過觸發的異步資訊來判斷

  在這個退款接口是沒有傳入異步位址的位置的,退款的異步通知是依據支付接口的觸發條件來觸發的,異步通知也是發送到支付接口傳入的異步位址上。 

  (1)部分退款:部分退款交易狀态是處于TRADE_SUCCESS(交易成功),此時因部分退款導緻交易金額變動,都會觸發異步通知 

  (2)全額退款:交易成功後全額退款,交易狀态會轉為TRADE_CLOSED(交易關閉),此時根據不同的支付接口觸發條件也不同,例如APP支付接口TRADE_CLOSED(交易關閉)狀态觸發異步,此時就會收到全額退款的異步通知。而電腦網站支付TRADE_CLOSED(交易關閉)狀态不會觸發異步,就不會有全額退款的異步通知 

這裡如果退款觸發了異步資訊,退款的異步資訊中會有refund_fee 退款總金額參數,如果有這個參數就可以确定這一筆退款成功了

注:詳細的支付接口的異步觸發條件:

https://openclub.alipay.com/club/history/read/5407

如有其它疑問,歡迎大家在文章後面追問!

繼續閱讀