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
如有其它疑问,欢迎大家在帖子后面追问!