申请退款
本章主要介绍申请退款接口,当交易成功后,在 180 天内,商户或消费者有退款需求时,商户可调用此接口把支付金额原路退还给消费者。
注意:
- 交易时间超过 180 天订单无法提交退款。
- 同一笔订单退款不能超过 20 次,申请退款总金额不能超过订单金额。
接口描述
- URL 地址:POST https://api.edgeros.com/pay/v1/transactions/refund。
- 传参方式:body(JSON 格式)。
- 是否需要签名:需要,详情请参见 生成数字签名。
请求参数
字段名 | 类型 | 是否必填 | 示例值 | 说明 |
---|
transaction_no | String(50) | 否 | AP202112151150252267829842920145605378 | 翼辉支付订单号,与商户订单号二选一,不能同时为空,同时存在时,以翼辉支付订单号优先 |
mch_trade_no | String(50) | 否 | mp202104021606341385640107521832 | 商户订单号,与翼辉支付订单号二选一,不能同时为空,同时存在时,以翼辉支付订单号优先 |
mch_refund_no | String(50) | 是 | mr202104071625921806284821327855 | 商户系统的内部退款单号,每个商户唯一,由数字、字母、中划线、下划线构成,区分大小写,最小长度为 24,最大长度为 50 |
refund_amount | String(9) | 是 | 12.50 | 申请的退款金额,单位:元,保留小数点后两位,最大值不能超过原订单支付金额,最小值为 0.01 |
refund_reason | String(32) | 是 | 购买的虚拟商品未到账户 | 申请的退款原因 |
notify_url | String(256) | 否 | https://your.domain.com/path/to/refund/notify | 异步接收翼辉支付退款结果通知的回调地址,通知 URL 必须为外网可访问的 URL,请求方式为 POST,不允许 URL 传参,且必须是 HTTPS 地址 |
aco_pay_sdk | String(12) | 否 | 2.0.0 | 翼辉支付 Java SDK 的版本号 |
version | String(3) | 否 | 1.0 | 调用接口版本,固定值 1.0 |
请求示例
{
"transaction_no": "AP202112151150252267829842920145605378",
"mch_trade_no": "mp202104021606341385640107521832",
"mch_refund_no": "mr202104071625921806284821327855",
"refund_amount": "12.50",
"refund_reason": "购买的虚拟商品未到账户",
"notify_url": "https://your.domain.com/path/to/refund/notify",
"aco_pay_sdk": "2.0.0",
"version": "1.0"
}
响应参数
字段名 | 类型 | 示例值 | 说明 |
---|
status | int | 200 | 返回状态码 |
message | String(100) | SUCCESS | 返回信息,取值为 SUCCESS 表示调用成功,其余均为调用失败,详情请参见 错误码 |
fieldErrors | String(50) | 订单不存在 | 异常信息,当 message 不为 SUCCESS 时,返回具体错误原因 |
data | object | "data": {} | 具体业务返回信息 |
status
为 200
时,data
返回如下字段:
字段名 | 类型 | 示例值 | 说明 |
---|
mch_no | String(32) | MCH1000000 | 翼辉支付平台分配的商户号 |
nonce | String(32) | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | 随机字符串,长度不大于 32 位 |
sign | String(344) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,商户需要验证签名,详情请参见 验证数字签名 |
sign_type | String(20) | SHA256withRSA | 签名类型,目前支持 SHA256withRSA |
app_no | String(50) | APP1000000 | 支付应用号 |
mch_refund_no | String(50) | mr202104071629218062848213267855 | 商户退款单号 |
refund_no | String(50) | AR202112151405438637829842922855012187 | 翼辉支付退款单号 |
transaction_no | String(50) | 4af336b1bd904c69ab2edb76af3a2a35 | 翼辉支付订单号 |
mch_trade_no | String(32) | mp202104021606341385640107521832 | 商户订单号 |
refund_amount | String(9) | 0.01 | 退款金额,单位为元,保留小数点后两位 |
code | String(20) | SUCCESS | 业务状态代码,取值如下: |
description | String(20) | 申请成功 | 业务状态描述 |
refund_channel | String(10) | WECHAT_PAY | 订单的退款渠道,取值如下: |
响应示例
正确响应示例
{
"status": 200,
"message": "SUCCESS",
"fieldErrors": null,
"data": {
"mch_no": "MCH1000000",
"nonce": "5K8264ILTKCH16CQ2502SI8ZNMTM67VS",
"sign": "C380BEC2BFD727A4B6845133519F3AD6",
"sign_type": "SHA256withRSA",
"app_no": "APP1000000",
"mch_refund_no": "mr202104071629218062848213267855",
"refund_no": "AR202112151405438637829842922855012187",
"transaction_no": "4af336b1bd904c69ab2edb76af3a2a35",
"mch_trade_no": "mp202104021606341385640107521832",
"refund_amount": 0.01,
"code": "SUCCESS",
"description": "申请成功",
"refund_channel": "WECHAT_PAY"
}
}
错误响应示例
{
"status": 1001,
"message": "INVALID_PARAMETER",
"fieldErrors": "订单不存在!",
"data": {
"mch_no": "MCH1000000",
"sign_type": "SHA256withRSA",
"sign": "KTtHZcy5jAO0bALK2esUyafmZGT0BKf9B/MmM8mHPlH+epGLHKV2D2OEzMfFUY7RIxnNGA6qo51u/HjsdjDFS+e8FZkG+59VUzc9K19IgF/PjEY/ckUhfbxh+ZROKhuJq1NSfUSll5qXVc2M+EJcCAnkrvkA+dvCR1SSwBDcInyAsBW5ntYAeAC+1FpPfAE9TuVkiuJ+V0NSXBknV8f3LjYQgFaL/kc2W3tRLtfmAk1vv9mS7a7nmi8CECKPZkODzse8lj/jhuUAE6XssrT3AjBVlwA5/ceoFPZJwhVOeomPA4XkWfuSU1Mi0qq42v6ijR4ew5GegdfmZPHM0s0h3Q==",
"nonce": "3eif5GQeZV6ekHgFekoGyjn2DvujOCIR"
}
}