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

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

目录
相关文章
如何实现一个项目配置多个商户信息付款给对应商户
说明:本帖主要说明如何实现给一个平台配置多个商户的号实现多个商户收款。主要用于没有门店和第三方授权方式 支付宝最终是根据请求过来的appid来判断哪一个商户收款(也就是请求是谁的appid就收款到谁的账号下)    方案一:      1.
1279 0
|
8月前
|
JSON 前端开发 Java
从零玩转系列之微信支付实战PC端我的订单接入退款取消接口2
从零玩转系列之微信支付实战PC端我的订单接入退款取消接口
68 0
|
8月前
|
前端开发 小程序 安全
从零玩转系列之微信支付实战PC端我的订单接入退款取消接口1
从零玩转系列之微信支付实战PC端我的订单接入退款取消接口
55 0
|
10月前
ERP,仓储系统官方订单详情接口trade.fullinfo.get( 获取单笔交易的详细信息 )
ERP,仓储系统官方订单详情接口trade.fullinfo.get( 获取单笔交易的详细信息 )
|
10月前
|
存储 安全 API
电商平台订单接口调用注意事项
电商平台订单接口调用注意事项
|
消息中间件 数据库 RocketMQ
创建支付订单流程|学习笔记
快速学习创建支付订单流程
276 0
创建支付订单流程|学习笔记
|
消息中间件 算法 Java
创建支付订单实现|学习笔记
快速学习创建支付订单实现
88 0
创建支付订单实现|学习笔记
alipay.trade.refund(统一收单交易退款接口) 集成流程
接口名称:统一收单交易退款接口 英文名称:alipay.trade.refund 主要用于交易资金的退款 一、文档地址 官方文档地址:[url]https://docs.open.alipay.com/api_1/alipay.trade.refund[/url] 二、开发前准备工作 调用步骤:[url]https://openclub.alipay.com/read.php?tid=12194&fid=69[/url] 注意事项:1、支持沙箱测试;2、需签约并添加功能;3、支持第三方调用。
2257 0
快速对接payjs的个人支付接口(收银台模式)
近期在了解个人支付接口,希望能解决我在微信上支付的问题。找了很多平台对比再三,感觉payjs比较专业,其它多是模仿payjs的东西。同时支持支付宝和微信,由于本人支付宝还没开通(需要有一定流量才给开通),本文重点讲一下微信收银台模式的对接。
2053 0
alipay.trade.fastpay.refund.query(统一收单交易退款查询) 集成流程
接口名称:统一收单交易退款查询 英文名称:alipay.trade.fastpay.refund.query 主要用于查询退款交易详情信息 一、文档地址 官方文档地址:[url]https://docs.open.alipay.com/api_1/alipay.trade.fastpay.refund.query[/url] 二、开发前准备工作 调用步骤:[url]https://openclub.alipay.com/read.php?tid=12194&fid=69[/url] 注意事项:1、支持沙箱测试;2、需签约并添加功能;3、支持第三方调用。
1147 0