支付宝-支付回调和退款回调问题记录

最近发现的一个支付宝退款接口的坑,记录一下

       支付宝的退款是通过调用 alipay.trade.refund (统一收单交易退款接口)接口实现的,详情见官方文档

       开发过微信支付的同学都知道,微信退款是有回调通知的,但是支付宝的退款接口文档上没有说明是否有退款通知,一开始我以为没有退款通知,因为在调用申请退款接口时就直接把退款的相关参数给返回了,例如退款金额,退款时间等字段;后来我才发现原来支付宝是有退款通知的,下面是退款的两种情景:

  • 全额退款:我测试是没有退款通知的,并且全额退款后,订单的交易状态会变为交易关闭( TRADE_CLOSED

  • 部分退款:一定会触发异步通知,那么肯定会有同学问了,这个异步通知地址是在哪里设置的呢?其实这个异步通知的地址就是调用 alipay.trade.create (统一收单交易创建接口)时指定的回调地址

       那么问题又来了,退款的回调地址和支付时的回调地址是同一个,我怎么来区分这个回调是支付还是退款呢?退款的异步通知参数中一定会返回 out_biz_no(商户订单号)、refund_fee(本次退款金额)、gmt_refund(退款时间)

支付回调参数

{
	"gmt_create": "2023-12-07 09:15:37",
	"charset": "UTF-8",
	"seller_email": "18215476233@163.com",
	"subject": "?????????",
	"sign": "qZ1x03ZZ0Z0nMF9HrzG6+qdd1snWcB0ZFS9Ig4RNHgrXZ42+C9iDqbOaswACP2xFty0BnnNtq+Vf0hcWFWlQgHp7Vho6VIBbSXhmMEE7+jc9y9r3wtgFA679pGMeqwAOBfDulbXoAm56VDW/AqhZeEgxbAYNoSlwXSPTrig5u3xTuCwCk3PQT2E9lfPSYJtF492JroHzaFXWyyjoTgtZvH69ZTIaI9S38imiXBA/ldDsWZxRBfy3N8KtcjhRcPfL5N11I54CKymsVRsXlnd3f+J3DHqPk5dpme06APnw+Msn9bF1hawGqHvXta4dNeJ3QsDdag7SEKOSSRPNGEjeGg==",
	"body": "?????????",
	"buyer_id": "2088722545315134",
	"invoice_amount": 2.00,
	"notify_id": "2023120701222091537015131441225493",
	"fund_bill_list": [{
		"amount": 2.00,
		"fundChannel": "ALIPAYACCOUNT"
	}],
	"notify_type": "trade_status_sync",
	"trade_status": "TRADE_SUCCESS",
	"receipt_amount": 2.00,
	"buyer_pay_amount": 2.00,
	"app_id": "2021004100668293",
	"sign_type": "RSA2",
	"seller_id": "2088641118359383",
	"gmt_payment": "2023-12-07 09:15:37",
	"notify_time": "2023-12-07 09:15:38",
	"version": "1.0",
	"out_trade_no": "2023120709064019667954",
	"total_amount": 2.00,
	"trade_no": "2023120722001415131432901279",
	"auth_app_id": "2021004100668293",
	"buyer_logon_id": "173****8663",
	"point_amount": 0.00
}

退款回调参数

{
	"gmt_create": "2023-12-07 09:15:37",
	"charset": "UTF-8",
	"seller_email": "18215476233@163.com",
	"subject": "?????????",
	"sign": "W6h8zRl5mmgrXtjrMrjUu1PtUREcg++GWEZsgDyxdMNvQCpIaMqHeEgmObgKoj3g1n8hUStxHyuMcex6w9ZYSby8s2Hi3PEKeqLkg/5msC7S9aQiPwAwarRz65gkuxAO8jcpe8SV0WPXiZxP7nCI0v3MXe9gVdIDVgklha2zc7gAwxNAkZO72qnwq9IsbusDE6seT5qrqMuGG2jeHY6uhZwz2IBZ2ShDRov9jZCulJjArombEwg92cgIHklG17Pf1PvJwkSlA7V4pTqfoYytYkfFisBs2Gwu+UOVxRvX1pcLYHqNlHRxy2O8D8WJKWcrbXVa7fu+rZwaw5+2Ib2VcQ==",
	"body": "?????????",
	"buyer_id": "2088722545315134",
	"notify_id": "2023120701222091928015131440521146",
	"notify_type": "trade_status_sync",
	"trade_status": "TRADE_CLOSED",
	"app_id": "2021004100668293",
	"sign_type": "RSA2",
	"seller_id": "2088641118359383",
	"gmt_payment": "2023-12-07 09:15:37",
	"notify_time": "2023-12-07 09:19:28",
	"gmt_refund": "2023-12-07 09:19:27.993",
	"out_biz_no": "2023120709064019667954",
	"version": "1.0",
	"out_trade_no": "2023120709064019667954",
	"total_amount": 2.00,
	"refund_fee": 2.00,
	"trade_no": "2023120722001415131432901279",
	"auth_app_id": "2021004100668293",
	"gmt_close": "2023-12-07 09:19:27",
	"buyer_logon_id": "173****8663"
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值