Alipay, China's leading third-party online payment solutionAlipay, China's leading third-party online payment solution

退款查询接口

调用此接口以查询退款状态。

请求参数

参数

描述

基本参数

service

String 不可空

接口名称

示例:alipay.acquire.refund.query

partner

String(16) 不可空

支付宝分配的用于标识支付宝帐户的合作伙伴ID。

合作伙伴ID是以2088开头的16位纯数字组成。

示例:2088*********364

_input_charset

String 不可空

请求数据的编码集,如GBK、GB2312、UTF-8等。

示例:UTF-8

sign_type

String 不可空

签名类型,支持RSA、RSA2、MD5,请使用大写形式。

示例:MD5

sign

String 不可空

签名值

示例:b7baf9af3c91b37bef4261849aa76281

业务参数

out_trade_no

String(64) 不可空

商户订单号

示例:1234567890

out_return_no

String(128) 不可空

退款流水号

示例:0987654321

返回参数

同步返回参数

参数

描述

基本参数

is_success

String 不可空

表示该次请求是否成功。T表示查询请求成功,F表示查询请求失败。请求成功并不代表退款已被成功接受和处理。

示例:T

sign_type

String 不可空

签名类型,支持RSA、RSA2、MD5,请使用大写形式。

示例:MD5

sign

String 不可空

签名值

示例:59c7275cf3c82f038b7c0076f9888926

error

String

请求失败时返回错误码,用于描述请求失败的原因。具体请参见网关错误码

示例:ILLEGAL_SIGN

业务参数

response_code

String(64) 不可空

查询请求结果

  • SUCCESS:查询成功
  • ACCESS_FORBIDDEN:无查询权限
  • NOT_FOUND:退款不存在
  • QUERY_FAILED:查询失败
  • TRADE_NOT_EXIST:交易不存在

示例:SUCCESS

refund_result_code

String(64)

退款处理结果

  • SUCCESS:退款成功
  • FAILED:退款失败
  • CANCELED:退款取消
  • PROCESSING:退款待处理

示例:SUCCESS

refund_error_code

String(64)

退款失败时返回的错误码,只有FAILEDPROCESSING状态的退款才会返回,其他状态不返回。具体请参见业务错误码

示例:MERCHANT_BALANCE_NOT_ENOUGH

out_return_no

String(128)

退款流水号

示例:0123456789

out_trade_no

String(64)

外部订单号

示例:123123123

trade_no

String(64)

支付宝分配的用于识别支付宝交易的序列号,长度在16-64位之间。

示例:2020030322001272141426888888

gmt_create

Date

退款受理时间,格式为yyyy-MM-dd HH24:mm:ss,使用北京时间。

示例:2020-12-25 15:45:57

gmt_finished

Date

退款成功时间,格式为yyyy-MM-dd HH24:mm:ss,使用北京时间。

示例:2020-12-25 15:45:58

refund_rmb_amount

Money

人民币退款金额,此字段的值在0.01-1000000.00的范围内,小数点后最多可保留两位数字。

示例:12.56

refund_foreign_amount

Money

外币退款金额,此字段的值在0.01-1000000.00的范围内,小数点后最多保留两位数。

示例:123.34

currency

String

退款币种,使用三个字母的ISO-4217货币代码来表示。关于币种的更多信息,具体请参见支持币种

示例:USD

forex_rate

String

用于退款的外币与人民币之间的汇率,与付款时的汇率相同。小数点后最多可保留八位数字。

示例:7.09610000

refund_royaltys

String(6000)

多个退分账明细信息,格式为JSON,具体请参见refund_royaltys参数

示例:[{"amount":"0.20","transOut":"2088102149952810"}]

refund_royaltys参数

参数

描述

amount

Money 不可空

退分账金额,单位:元。

此字段的值在0.01-1000000.00的范围内,小数点后最多可保留两位数字。

示例:0.34

transOut

String(32) 不可空

支付宝商户的国内账号,资金在此转出。

示例:2088002007018777

错误码

网关错误码

结果码

描述

ILLEGAL_SIGN

签名不正确

ILLEGAL_DYN_MD5_KEY

动态密钥信息不正确

ILLEGAL_ENCRYPT

加密不正确

ILLEGAL_ARGUMENT

参数不正确

ILLEGAL_SERVICE

服务器参数不正确

ILLEGAL_USER

用户ID不正确

ILLEGAL_PARTNER

商户ID不正确

ILLEGAL_EXTERFACE

接口配置不正确

ILLEGAL_PARTNER_EXTERFACE

商户无权使用该接口

ILLEGAL_SECURITY_PROFILE

未找到匹配的私钥配置

ILLEGAL_AGENT

机构ID不正确

ILLEGAL_SIGN_TYPE

签名类型不正确

ILLEGAL_CHARSET

非法字符集

HAS_NO_PRIVILEGE

无访问权限

INVALID_CHARACTER_SET

无效字符集

业务错误码

refund_result_code的值是PROCESSING时返回的错误码:

结果码

描述

SYSTEM_ERROR

支付宝系统错误,请重新发起请求

MERCHANT_BALANCE_NOT_ENOUGH

商户账户余额不足

REFUND_CHARGE_ERROR

退收费异常

REFUND_FAIL

退款失败

SERVICE_REFUSE

该时间段内不接受退款业务

SELLER_BALANCE_NOT_ENOUGH

卖家账户余额不足

refund_result_code的值是FAILED时返回的错误码:

结果码

描述

SYSTEM_ERROR

支付宝系统错误,请重新发起请求

MERCHANT_BALANCE_NOT_ENOUGH

商户账户余额不足

TXN_RESULT_ACCOUNT_BALANCE_NOT_ENOUGH

最后一次退款执行失败,因为商户账户余额不足

REFUND_CHARGE_ERROR

退收费异常

TRADE_SETTLE_ERROR

结算异常

REFUND_FAIL

退款失败

TRADE_STATUS_ERROR

交易状态不合法

TRADE_HAS_CLOSE

交易已关闭,不允许退款

SERVICE_REFUSE

该时间段内不接受退款业务

SELLER_BALANCE_NOT_ENOUGH

卖家账户余额不足

CURRENCY_NOT_MATCH

退款币种和结算币种不匹配

INVALID_ROUNDED_AMOUNT

此金额的退款可能违反了人民币和外币的计算金额必须同时是全额退款或非全额退款的规则。

以一笔0.07元人民币(0.01美元)的交易为例。未接收0.06元人民币的退款请求,是因为本次交易还剩0.01人民币 (0美元)。

示例

请求示例

https://mapi.alipay.com/gateway.do?out_trade_no=00220170124b4df6c6&partner=2088xxxxxxxx6931&service=alipay.acquire.refund.query&_input_charset=UTF-8&out_return_no=00220170124b4df6c6r&sign=51f9207497c4d2fc59c5912e7982d2d2&sign_type=MD5

返回示例

请求失败:

copy
<?xml version="1.0" encoding="UTF-8"?>
<alipay>
    <is_success>F</is_success>
    <error>ILLEGAL_PARTNER_EXTERFACE</error>
</alipay>

请求成功但未收到退款结果:

copy
<?xml version="1.0" encoding="UTF-8"?>
<alipay>
    <is_success>T</is_success>
    <request>
        <param name="out_trade_no">202005148394958330292_02</param>
        <param name="partner">2088xxxxxx6931</param>
        <param name="service">alipay.acquire.refund.query</param>
        <param name="_input_charset">UTF-8</param>
        <param name="sign">c97372146992e9099401c36223d88054</param>
        <param name="out_return_no">2020051484990500595995_1</param>
        <param name="sign_type">MD5</param>
    </request>
    <response>
        <alipay>
            <response_code>NOT_FOUND</response_code>
        </alipay>
    </response>
    <sign>b77f097d603ef6c8ae041e159c16086d</sign>
    <sign_type>MD5</sign_type>
</alipay>

退款失败:

copy
<?xml version="1.0" encoding="UTF-8"?>
<alipay>
    <is_success>T</is_success>
    <request>
        <param name="out_trade_no">00220170124b4df6c6</param>
        <param name="partner">2088xxxxxxxx6931</param>
        <param name="service">alipay.acquire.refund.query</param>
        <param name="_input_charset">UTF-8</param>
        <param name="sign">a4c9ffdefbfd93dd7a3bd057755c05f9</param>
        <param name="out_return_no">00220170124b4df6c6r</param>
        <param name="sign_type">MD5</param>
    </request>
    <response>
        <alipay>
            <gmt_create>2017-02-05 01:25:48</gmt_create>
            <out_return_no>00220170124b4df6c6r</out_return_no>
            <out_trade_no>00220170124b4df6c6</out_trade_no>
            <refund_error_code>SYSTEM_ERROR</refund_error_code>
            <refund_foreign_amount>0.01</refund_foreign_amount>
            <refund_result_code>FAILED</refund_result_code>
            <refund_rmb_amount>0.01</refund_rmb_amount>
            <response_code>SUCCESS</response_code>
            <trade_no>2017012421001003270252363402</trade_no>
        </alipay>
    </response>
    <sign>b46585009f4098a86b289fe48a88be84</sign>
    <sign_type>MD5</sign_type>
</alipay>

退款成功:

copy
<?xml version="1.0" encoding="UTF-8"?>
<alipay>
    <is_success>T</is_success>
    <request>
        <param name="out_trade_no">3941721012815833</param>
        <param name="partner">2088xxxxxxxx6931</param>
        <param name="service">alipay.acquire.refund.query</param>
        <param name="_input_charset">UTF-8</param>
        <param name="sign">df9f58640736d49f7993e7eb6eaae5f6</param>
        <param name="out_return_no">YNTK20150624002</param>
        <param name="sign_type">MD5</param>
    </request>
    <response>
        <alipay>
            <currency>USD</currency>
            <forex_rate>6.22945000</forex_rate>
            <gmt_create>2015-06-24 21:43:56</gmt_create>
            <gmt_finished>2015-06-24 21:43:57</gmt_finished>
            <out_return_no>YNTK20150624002</out_return_no>
            <out_trade_no>3941721012815833</out_trade_no>
            <refund_foreign_amount>0.10</refund_foreign_amount>
            <refund_result_code>SUCCESS</refund_result_code>
            <refund_rmb_amount>0.62</refund_rmb_amount>
            <response_code>SUCCESS</response_code>
            <trade_no>2015062421001003430021738264</trade_no>
        </alipay>
    </response>
    <sign>d4ca93db8660180a61b828b3e0604d2c</sign>
    <sign_type>MD5</sign_type>
</alipay>

退款成功(存在退分账):

copy
<alipay>
    <is_success>T</is_success>
    <request>
        <param name="out_trade_no">202005148394958330292_02</param>
        <param name="partner">2088xxxxxxxx6931</param>
        <param name="service">alipay.acquire.refund.query</param>
        <param name="_input_charset">UTF-8</param>
        <param name="sign">4d3671ab713adb24c0ae81e5970c5474</param>
        <param name="out_return_no">2020051484990500595995</param>
        <param name="sign_type">MD5</param>
    </request>
    <response>
        <alipay>
            <currency>USD</currency>
            <forex_rate>7.14389000</forex_rate>
            <gmt_create>2020-05-14 13:25:08</gmt_create>
            <gmt_finished>2020-05-14 13:25:10</gmt_finished>
            <out_return_no>2020051484990500595995</out_return_no>
            <out_trade_no>202005148394958330292_02</out_trade_no>
            <refund_foreign_amount>4.20</refund_foreign_amount>
            <refund_result_code>SUCCESS</refund_result_code>
            <refund_rmb_amount>30.00</refund_rmb_amount>
            <refund_royaltys>[{"amount":"20.00","transOut":"2088801766902304"}]</refund_royaltys>
            <response_code>SUCCESS</response_code>
            <trade_no>2020051422001395451410092226</trade_no>
        </alipay>
    </response>
    <sign>b5b94e230ee244d031baeb225a749871</sign>
    <sign_type>MD5</sign_type>
</alipay>