申请退款API
业务功能
商户针对某一个已经成功支付的订单发起退款,操作结果在同一会话中同步返回。
一、退款方式
目前只支持原路返回退款。
说明:
· 退到银行卡则是非实时的,每个银行的处理速度不同,一般发起退款后1-3个工作日内到账。
· 同一笔单的部分退款需要设置相同的订单号和不同的 out_refund_no 。
· 总退款金额不能超过用户实际支付金额(现金券金额不能退款)
· 部分退款次数最多不能超过15次。
交互模式
请求:后台请求交互模式
返回结果+通知:后台请求交互模式+后台通知交互模式
测试url:
http://47.95.131.62:8080/api/v1/pay/ali/refund
请求参数(O-非必传 ,M-必传):
参数 | 参数名称 | 类型 | 参数说明 | 样例 | 可空 |
---|---|---|---|---|---|
out_refund_no | 服务商退款订单号 | String | 服务商退款订单号(同一服务商下唯一) | 161018121614000624679888 | M |
refund_amount | 退款金额 | String | 退款金额,以元为单位 | 100 | M |
trade_no | 交易订单号 | String | SaaS平台的交易订单编号 | trade_no、out_trade_no、channel_trade_no必传其中一个,都传则以trade_no为准,推荐使用trade_no | O |
out_trade_no | 原服务商交易订单号 | String | 原服务商交易订单号(v1.24增加) | O | |
channel_trade_no | 凭证条码订单号 | String | 付款凭证条码订单号(v1.28增加) | 161018121614000624679888 | O |
notify_url | 通知地址(v1.02) | String | 退款成功后的通知地址 | http://test.mdun.cn/jd/pay/notice | O |
sn | 厂商终端号 | String | (v1.05增加) | O | |
pn | SAAS终端号 | String | 标准服务商必填(v1.27增加) | O | |
remark | 交易备注 | String | (v1.05增加) | O |
请求示例:
{
"accessid": "cpostest",
"out_refund_no": "20200325171228287",
"refund_amount": "0.01",
"out_trade_no": "20200325171228287",
"trade_no": "AL200325114232721385488321",
"sign": "B6B8E870464186317272181C168C35E4"
}
返回参数:
参数 | 参数名称 | 类型 | 参数说明 | 样例 | 可空 |
---|---|---|---|---|---|
refund_no | 退款订单号 | String | SaaS平台的退款订单编号 | M | |
channel_trade_no | 凭证条码订单号 | String | 凭证条码订单号(v1.24增加) | 161018121614000624679888 | M |
refund_status | 退款状态 | int | 退款结果:
1:成功(退款申请接收成功,退款的到账时间以实际为准); 2:失败(退款申请失败,错误原因参考status_msg); 3:结果未知(退款申请处理结果未知,请调用退款查询接口获取退款结果状态) |
M | |
error_code | 错误码 | String | O | ||
error_msg | 错误消息 | String | O | ||
total_amount | 原消费交易总金额 | String | 原消费交易总金额(v1.30增加) | M | |
refunded_amount | 已退款金额 | String | 已退款金额(v1.30增加) | M | |
remanent_amount | 剩余可退款金额 | String | 剩余可退款金额(v1.30增加) | M | |
attach | 支付宝原生参数 | JSON | 见示例说明 | O |
支付宝原生参数:attach
参数 | 参数名称 | 类型 | 参数说明 | 样例 | 可空 |
---|---|---|---|---|---|
trade_no | 网联交易号 | String | 2013112011001000000121536 | M | |
out_trade_no | 原支付订单的商户订单号 | String | 原支付订单的商户订单号,32个字符以内、可包含字母、数字、下划线;需保证在商户端不重复 | 20150320010101000121223452324110 | M |
open_id | 买家支付宝用户号 | String | 买家支付宝用户号,该参数已废弃,请不要使用 | 2088102122524330 | M |
buyer_logon_id | 用户的登录id | String | 用户的登录id | 159****5620 | M |
fund_change | 本次退款是否发生了资金变化 | String | Y | M | |
refund_fee | 退款总金额 | String | 单位:元 | M | |
refund_currency | 退款币种信息 | String | CNY | O | |
gmt_refund_pay | 退款支付时间 | Date | 2014/11/27 15:45:57 | M | |
refund_detail_item_list | 退款使用的资金渠道 | JSONArray | O | ||
store_name | 交易在支付时候的门店名称 | String | 望湘园联洋店 | O | |
buyer_user_id | 买家在支付宝的用户id | String | 2088101117955611 | M | |
send_back_fee | 本次商户实际退回金额 | String | O | ||
present_refund_buyer_amount | 本次退款金额中买家退款金额 | String | O | ||
present_refund_discount_amount | 本次退款金额中平台优惠退款金额 | String | O | ||
present_refund_mdiscount_amount | 本次退款金额中商家优惠退款金额 | String | O | ||
code | 网关返回码 | String | 40004 | M | |
msg | 网关返回码描述 | String | Business Failed | M | |
sub_code | 网关明细返回码 | String | isv.invalid-signature | O | |
sub_msg | 网关明细返回码描述 | String | 交易已被支付 | O | |
sign | 签名 | String | M |
资金渠道:refund_detail_item_list
参数 | 参数名称 | 类型 | 参数说明 | 样例 | 可空 |
---|---|---|---|---|---|
amount | 该支付工具类型所使用的金额 | String | M | ||
bank_code | 银行卡支付时的银行代码 | String | CEB | O | |
fund_channel | 交易使用的资金渠道 | String | ALIPAYACCOUNT | M | |
real_amount | 渠道实际付款金额 | String | O | ||
fund_type | 渠道所使用的资金类型 | String | 目前只在资金渠道(fund_channel)是银行卡渠道(BANKCARD)的情况下才返回该信息(DEBIT_CARD:借记卡,CREDIT_CARD:信用卡,MIXED_CARD:借贷合一卡) | O |
返回示例:
正确:
{
"refund_no": "WX190506165352286000440521",
"refund_status": 1,
"return_code": 10000,
"sign": "D543561A0DD8CD28DB860C787AEDA343"
}
错误:
{
"return_code": 30018,
"return_msg": "退款金额大于剩余可退款金额",
"sign": "C46C909A44C9E7B42B01633EEAE56040"
}
文档更新时间: 2025-02-11 11:04 作者:admin