alipay.ebpp.bill.refund (受理单据退款接口)

用于订单支付后向用户发起退款。 支持部分退款(视为业务成功)。 指定退款来源账号可以增大退款处理成功的几率,特别是对于资金已经结算给机构的订单,要成功退款必须指定合法的退款来源账号。

公共参数

请求地址:
环境 HTTPS请求地址
正式环境 https://openapi.alipay.com/gateway.do
公共请求参数:
参数 类型 是否必填 最大长度 描述 示例值
app_id String 32 支付宝分配给开发者的应用ID 2014072300007148
method String 128 接口名称 alipay.ebpp.bill.refund
format String 40 仅支持JSON JSON
charset String 10 请求使用的编码格式,如utf-8,gbk,gb2312等 utf-8
sign_type String 10 商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2 RSA2
sign String 256 商户请求参数的签名串,详见签名 详见示例
timestamp String 19 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" 2014-07-24 03:07:50
version String 3 调用的接口版本,固定为:1.0 1.0
app_auth_token String 40 详见应用授权概述
biz_content String - 请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档

请求参数

参数 类型 是否必填 最大长度 描述 示例值
out_order_no String 必须 32 ISV流水号,用于控制幂等,须确保全局唯一(缴税业务:可采用{征收机关代码}-{外部申报号}的形式)
out_order_no与alipay_bill_no二者中至少要传一个
13201020000-320170608005900006
alipay_bill_no String 特殊可选 32 支付宝流水号。 2017081100003001350000013884
refund_amount Price 必须 10 退款金额,单位:元
不可超过创单时的金额。
如果scene是TOTAL_FAILURE,则强制要求全额退款,不支持部分退款。
30.50
scene String 必须 40 退款场景,不同场景由不同策略处理。
OVERPAYMENT:退掉用户多支付的金额
PARTIALLY_DONE:业务上部分失败导致退款
TOTAL_FAILURE:完全失败导致的退款
PARTIALLY_DONE
refund_from String 可选 32 退款来源账户。
仅在退款请求对应的业务流水资金已经结算的情况下有用,不指定则不能对已结算业务流水发起退款。
取值可以给定受管控账户2088****************,需要事先在支付宝备案通过方可使用;亦可以填入THIS_ACCOUNT,表示会从当前调用者的账户退款给用户。
20881030507841230156
memo String 必须 30 退款备注 memo
extend_field String 可选 3000 扩展字段,json格式的一系列键值对,示例只是个形式,具体的Key-Value需要根据具体业务另行约定。
无特别约定时,此字段不必传。
{"Key1": "Value1", "Key2": "Value2"}

公共响应参数

参数 类型 是否必填 最大长度 描述 示例值
code String - 网关返回码,详见文档 40004
msg String - 网关返回码描述,详见文档 Business Failed
sub_code String - 业务返回码,详见文档 ACQ.TRADE_HAS_SUCCESS
sub_msg String - 业务返回码描述,详见文档 交易已被支付
sign String - 签名,详见文档 DZXh8eeTuAHoYE3w1J+POiPhfDxOYBfUNn1lkeT/V7P4zJdyojWEa6IZs6Hz0yDW5Cp/viufUb5I0/V5WENS3OYR8zRedqo6D+fUTdLHdc+EFyCkiQhBxIzgngPdPdfp1PIS7BdhhzrsZHbRqb7o4k3Dxc+AAnFauu4V6Zdwczo=

响应参数

参数 类型 是否必填 最大长度 描述 示例值
out_order_no String 必填 32 回传ISV流水号 13201020000-320170608005900006
alipay_bill_no String 必填 32 回传支付宝流水号。 2017081100003001350000013884
result String 必填 10 ACCEPTED:退款请求被接受
REJECTED:退款请求被驳回
本接口的业务逻辑具备幂等性,一旦拿到确定的结果ACCEPTED/REJECTED,再重试是没有意义的。
REJECTED
extend_field String 选填 3000 扩展字段,一系列键值对,示例只是个形式,具体的Key-Value需要根据具体业务另行约定。 {"Key1":"Value1", "Key2":"Value2"}

请求示例

  • JAVA
  • .NET
  • PHP
  • HTTP请求源码
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2");
AlipayEbppBillRefundRequest request = new AlipayEbppBillRefundRequest();
request.setBizContent("{" +
"\"out_order_no\":\"13201020000-320170608005900006\"," +
"\"alipay_bill_no\":\"2017081100003001350000013884\"," +
"\"refund_amount\":30.50," +
"\"scene\":\"PARTIALLY_DONE\"," +
"\"refund_from\":\"20881030507841230156\"," +
"\"memo\":\"memo\"," +
"\"extend_field\":\"{\\\"Key1\\\":\\\"Value1\\\",\\\"Key2\\\":\\\"Value2\\\"}\"" +
"}");
AlipayEbppBillRefundResponse response = alipayClient.execute(request);
if(response.isSuccess()){
System.out.println("调用成功");
} else {
System.out.println("调用失败");
}

响应示例

  • JSON示例
{
	"alipay_ebpp_bill_refund_response":{
		"msg":"Success",
		"result":"REJECTED",
		"code":"10000",
		"out_order_no":"13201020000-320170608005900006",
		"extend_field":"{\"Key1\":\"Value1\", \"Key2\":\"Value2\"}",
		"alipay_bill_no":"2017081100003001350000013884"
	},
	"sign":"ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}

异常示例

  • JSON示例
{
	"alipay_ebpp_bill_refund_response":{
		"msg":"Service Currently Unavailable",
		"code":"20000",
		"sub_msg":"系统繁忙",
		"sub_code":"isp.unknow-error"
	},
	"sign":"ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}

业务错误码

错误码 错误描述 解决方案
INVALID_PARAMETER 参数有误参数有误参数有误入参不符合要求 请确保入参格式、内容符合接口文档描述中的要求
BIZ_ERROR 业务异常撤销受理单据失败 请确保请求中的参数具备业务上的合理性,从而能够被成功处理
SYSTEM_ERROR 系统繁忙 请稍后重试
INVALID_PARAMETER 参数有误 请确保入参格式、内容符合接口文档描述中的要求
BIZ_ERROR 业务异常 请确保请求中的参数具备业务上的合理性,从而能够被成功处理
INVALID_PARAMETER 参数有误机构权限未开通 请确认是否有权限访问此机构的单据

公共错误码

返回
顶部