alipay.trade.refund(统一收单交易退款接口)如何判断退款是否成功

简介: 1、通过同步返回的信息来判断退款  调用退款接口成功同步返回信息示例:{"alipay_trade_refund_response":{"code":"10000","msg":"Success","buyer_logon_id":"150****8675","buyer_user_id":"...

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

如有其它疑问,欢迎大家在帖子后面追问!

目录
相关文章
|
3月前
|
API
支付系统38-----支付宝支付---统一收单线下交易查询 第一步下单------》发起支付请求,登录,确认支付,查单接口开发,swagger接口全部呈现,
支付系统38-----支付宝支付---统一收单线下交易查询 第一步下单------》发起支付请求,登录,确认支付,查单接口开发,swagger接口全部呈现,
|
Web App开发
如何实现一个项目配置多个商户信息付款给对应商户
说明:本帖主要说明如何实现给一个平台配置多个商户的号实现多个商户收款。主要用于没有门店和第三方授权方式 支付宝最终是根据请求过来的appid来判断哪一个商户收款(也就是请求是谁的appid就收款到谁的账号下)    方案一:      1.
1357 12
支付系统43-----支付宝支付-统一收单退款,全额退款这里可以发起一笔或者两笔订单
支付系统43-----支付宝支付-统一收单退款,全额退款这里可以发起一笔或者两笔订单
|
3月前
|
前端开发
支付系统44----支付宝支付-退款查询
支付系统44----支付宝支付-退款查询
支付系统44----支付宝支付-退款查询
|
3月前
|
API 开发工具
支付系统17------支付宝支付-----API预览以及签名验签说明,出现支付宝扫描二维码的操作,支付完成之后,查询订单的状态,支付成功之后,需要退款调用的接口,退款状态的接口,完成退款之后,通知
支付系统17------支付宝支付-----API预览以及签名验签说明,出现支付宝扫描二维码的操作,支付完成之后,查询订单的状态,支付成功之后,需要退款调用的接口,退款状态的接口,完成退款之后,通知
|
前端开发 小程序 安全
从零玩转系列之微信支付实战PC端我的订单接入退款取消接口1
从零玩转系列之微信支付实战PC端我的订单接入退款取消接口
77 0
|
JSON 前端开发 Java
从零玩转系列之微信支付实战PC端我的订单接入退款取消接口2
从零玩转系列之微信支付实战PC端我的订单接入退款取消接口
108 0
ERP,仓储系统官方订单详情接口trade.fullinfo.get( 获取单笔交易的详细信息 )
ERP,仓储系统官方订单详情接口trade.fullinfo.get( 获取单笔交易的详细信息 )
|
存储 安全 API
电商平台订单接口调用注意事项
电商平台订单接口调用注意事项
|
消息中间件 数据库 RocketMQ
创建支付订单流程|学习笔记
快速学习创建支付订单流程
347 0
创建支付订单流程|学习笔记