资金授权解冻

名称:alipay.fund.auth.order.unfreeze
类型:服务端接口
功能:当资金授权发生之后一段时间内,由于买家或者商家等其他原因需要要解冻资金,商家可通过资金授权解冻接口将授权资金进行解冻,支付宝将在收到解冻请求并验证成功后,按解冻规则将冻结资金按原路进行解冻。


注意:接口为通用接口,该场景下,请参考如下编写:

/**
 * 测试预授权解冻
 */
@Test
public void fundAuthOrderUnFreeze() throws AlipayApiException {
    AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2");
    AlipayFundAuthOrderUnfreezeRequest request = new AlipayFundAuthOrderUnfreezeRequest();
    AlipayFundAuthOrderUnfreezeModel model = new AlipayFundAuthOrderUnfreezeModel();
    model.setAuthNo("2017120410002001390208978986"); // 支付宝资金授权订单号,在授权冻结成功时返回需要入库保存
    model.setOutRequestNo("UnfreezeRequestNo000003");//同一商户每次不同的资金操作请求,商户请求流水号不能重复,且与冻结流水号不同
    model.setAmount("0.01"); // 本次操作解冻的金额,单位为:元(人民币),精确到小数点后两位
    model.setRemark("预授权解冻"); // 商户对本次解冻操作的附言描述,长度不超过100个字母或50个汉字 
    //选填字段,信用授权订单,针对信用全免订单,传入该值完结信用订单,形成芝麻履约记录
    model.setExtraParam("{\"unfreezeBizInfo\":\"{\\\"bizComplete\\\":\\\"true\\\"}\"}");      
    request.setBizModel(model);
    request.setNotifyUrl(notify_url);//异步通知地址,必填,该接口只通过该参数进行异步通知

    AlipayFundAuthOrderUnfreezeResponse response = alipayClient.execute(request);
    logger.info("response: {}"+response.getBody());
}


注意事项:

1、支持全额解冻和部分解冻;
2、解冻转支付时,若auth_confirm_mode=complete,无需调用解冻接口,支付宝端在扣款成功后会自动解冻剩余金额;若auth_confirm_mode=not_complete,在收到支付成功通知后,商户自行调用解冻接口将余额进行解冻;
3、对于信用授权订单,扣款处理中或扣款失败(如:trade_ status=WAIT_BUYER_PAY或ORDER SUCCESS PAY INPROGRESS),若调用解冻接口,会中断支付宝扣款流程,请慎用;

4、extraParam为选填字段,只对信用授权订单生效,若订单为信用全免订单,extraParam必须传入{"unfreezeBizInfo":"{\"bizComplete\":\"true\"}"},将为用户生成芝麻履约订单。

5、信用全免订单,比如押金200元,信用全免(免押金额200元),全额解冻的时候需要传入200元,部分解冻的时候根据实际解冻金额传入;


异步通知

通知类型

描述

fund_auth_unfreeze

资金授权订单解冻通知

通知字段说明

名称

具体类型

是否必须

最大长度

示例值

描述

auth_no

String

必须

64

2014070800002001550000014417

支付宝资金授权订单号

out_order_no

String

必须

64

4977164666634053

商户的资金授权订单号

operation_id

String

必须

64

2014070800032850551

支付宝的资金操作流水号

out_request_no

String

必须

64

8077735255938032

商户资金操作流水号

operation_type

String

必须

16

FREEZE

资金操作类型,支持【FREEZE,UNFREEZE,PAY】

amount

String

必须

11

0.01

本次操作冻结的金额,单位为:元(人民币),精确到小数点后两位

status

String

必须

20

SUCCESS

资金预授权明细的状态
目前支持:  
INIT:初始
SUCCESS: 成功
CLOSED:关闭

gmt_create

String

必须

20

2014-09-15 11:23:04

操作创建时间

gmt_trans

String

必须

20

2014-09-15 11:23:04

操作处理完成时间

payer_logon_id

String

必须

100

test***@alitest.com

付款方支付宝账号登录号

payee_logon_id

String

必须

100

159****5620

收款方支付宝账号登陆号

total_freeze_amount

String

必须

11

0.01

累计冻结金额

total_unfreeze_amount

String

必须

11

0.01

累计解冻金额

total_pay_amount

String

必须

11

0.01

累计支付金额

rest_amount

String

必须

11

0.01

剩余冻结金额

通知样例

https://www.merchant.com/receive_notify.htm?notify_type=trade_status_sync&notify_id=91722adff935e8cfa58b3aabf4dead6ibe&notify_time=2017-02-16 21:46:15&sign_type=RSA2&sign=WcO+t3D8Kg71dTlKwN7r9PzUOXeaBJwp8/FOuSxcuSkXsoVYxBpsAidprySCjHCjmaglNcjoKJQLJ28/Asl93joTW39FX6i07lXhnbPknezAlwmvPdnQuI01HZsZF9V1i6ggZjBiAd5lG8bZtTxZOJ87ub2i9GuJ3Nr/NUc9VeY=&total_freeze_amount=null&total_unfreeze_amount=null&total_pay_amount=null&rest_amount=null&auth_no=null&out_order_no=null&operation_id=null&out_request_no=null&operation_type=null&amount=null&status=null&gmt_create=null&gmt_trans=null&payer_logon_id=null&payer_user_id=null&credit_amount=0.01&fund_amount=0.01&total_freeze_credit_amount=0.01&total_freeze_fund_amount=0.01&total_unfreeze_credit_amount=0.01&total_unfreeze_fund_amount=0.01&total_pay_credit_amount=0.01&total_pay_fund_amount=0.01&rest_credit_amount=0.01&rest_fund_amount=0.01


onlineServer