alipay.fund.auth.order.freeze(资金授权冻结接口)

收银员使用扫码设备读取用户支付宝钱包“付款码”后,将条码信息和订单信息通过本接口上送至支付宝发起资金冻结。

公共参数

请求地址

环境HTTPS请求地址
正式环境 https://openapi.alipay.com/gateway.do

公共请求参数

参数 类型 是否必填最大长度描述示例值
app_id String 32 支付宝分配给开发者的应用ID 2014072300007148
method String 128 接口名称 alipay.fund.auth.order.freeze
format String 40 仅支持JSON JSON
charset String 10 请求使用的编码格式,如utf-8,gbk,gb2312等 utf-8
sign_type String 10 商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2 RSA2
sign String 344 商户请求参数的签名串,详见签名 详见示例
timestamp String 19 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" 2014-07-24 03:07:50
version String 3 调用的接口版本,固定为:1.0 1.0
notify_url String 256 支付宝服务器主动通知商户服务器里指定的页面http/https路径。 http://api.test.alipay.net/atinterface/receive_notify.htm
app_auth_token String 40 详见应用授权概述
biz_content String 请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档

请求参数

参数 类型 是否必填 最大长度 描述 示例值
auth_code String 必选 32 支付授权码,25~30开头的长度为16~24位的数字,实际字符串长度以开发者获取的付款码长度为准 28763443825664394
auth_code_type String 必选 32 授权码类型
目前仅支持"bar_code"
bar_code
out_order_no String 必选 64 商户授权资金订单号 ,不能包含除中文、英文、数字以外的字符,创建后不能修改,需要保证在商户端不重复。 8077735255938023
out_request_no String 必选 64 商户本次资金操作的请求流水号,用于标示请求流水的唯一性,不能包含除中文、英文、数字以外的字符,需要保证在商户端不重复。 8077735255938032
order_title String 必选 100 业务订单的简单描述,如商品名称等
长度不超过100个字母或50个汉字
预授权冻结
amount Price 必选 11 需要冻结的金额,单位为:元(人民币),精确到小数点后两位
取值范围:[0.01,100000000.00]
0.01
payee_logon_id String 可选 100 收款方支付宝账号(Email或手机号),如果收款方支付宝登录号(payee_logon_id)和用户号(payee_user_id)同时传递,则以用户号(payee_user_id)为准,如果商户有勾选花呗渠道,收款方支付宝登录号(payee_logon_id)和用户号(payee_user_id)不能同时为空。 159****5620
payee_user_id String 可选 32 收款方的支付宝唯一用户号,以2088开头的16位纯数字组成,如果非空则会在支付时校验交易的的收款方与此是否一致,如果商户有勾选花呗渠道,收款方支付宝登录号(payee_logon_id)和用户号(payee_user_id)不能同时为空。 2088102000275795
pay_timeout String 可选 5 该笔订单允许的最晚付款时间,逾期将关闭该笔订单
取值范围:1m~15d。m-分钟,h-小时,d-天。 该参数数值不接受小数点, 如 1.5h,可转换为90m
如果为空,默认15m
2d
extra_param String 可选 300 业务扩展参数,用于商户的特定业务信息的传递,json格式。
1.间联模式必须传入二级商户ID,key为secondaryMerchantId;
2. 当面资金授权业务对应的类目,key为category,value由支付宝分配,酒店业务传 "HOTEL";
3. 外部商户的门店编号,key为outStoreCode,可选;
4. 外部商户的门店简称,key为outStoreAlias,可选。
{"secondaryMerchantId":"17320004886"}
product_code String 可选 32 销售产品码,后续新接入预授权当面付的业务,本字段取值固定为PRE_AUTH。 PRE_AUTH
trans_currency String 可选 8 标价币种, amount 对应的币种单位。支持澳元:AUD, 新西兰元:NZD, 台币:TWD, 美元:USD, 欧元:EUR, 英镑:GBP USD
settle_currency String 可选 8 商户指定的结算币种。支持澳元:AUD, 新西兰元:NZD, 台币:TWD, 美元:USD, 欧元:EUR, 英镑:GBP USD
enable_pay_channels String 可选 128 商户可用该参数指定用户可使用的支付渠道,本期支持商户可支持三种支付渠道,余额宝(MONEY_FUND)、花呗(PCREDIT_PAY)以及芝麻信用(CREDITZHIMA)。商户可设置一种支付渠道,也可设置多种支付渠道。 [{"payChannelType":"PCREDIT_PAY"},{"payChannelType":"MONEY_FUND"}]

响应参数

参数 类型 是否必填 最大长度 描述 示例值
auth_no String 必填 64 支付宝的资金授权订单号 2014070800002001550000014417
out_order_no String 必填 64 商户的授权资金订单号 4977164666634053
operation_id String 必填 64 支付宝的资金操作流水号 2014070800032850551
out_request_no String 必填 64 商户本次资金操作的请求流水号 2014070700166653
amount Price 必填 11 本次操作冻结的金额,单位为:元(人民币),精确到小数点后两位 0.01
status String 必填 20 资金预授权明细的状态
目前支持:
INIT:初始
SUCCESS: 成功
CLOSED:关闭
SUCCESS
payer_user_id String 必填 32 付款方支付宝用户号 2088102000275885
payer_logon_id String 必填 100 付款方支付宝账号(Email或手机号) test***@alitest.com
gmt_trans Date 选填 20 资金授权成功时间
格式:YYYY-MM-DD HH:MM:SS
2014-09-15 11:23:04
pre_auth_type String 选填 20 预授权类型,目前支持 CREDIT_AUTH(信用预授权);
商户可根据该标识来判断该笔预授权的类型,当返回值为"CREDIT_AUTH"表明该笔预授权为信用预授权,没有真实冻结资金;当返回值为空或者不为"CREDIT_AUTH"则表明该笔预授权为普通资金预授权,会冻结用户资金。
CREDIT_AUTH
trans_currency String 选填 8 标价币种, amount 对应的币种单位。支持澳元:AUD, 新西兰元:NZD, 台币:TWD, 美元:USD, 欧元:EUR, 英镑:GBP USD
credit_amount Price 选填 11 本次冻结操作中信用冻结金额,单位为:元(人民币),精确到小数点后两位 0.01
fund_amount Price 选填 11 本次冻结操作中自有资金冻结金额,单位为:元(人民币),精确到小数点后两位 0.01

请求示例

AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2");
AlipayFundAuthOrderFreezeRequest request = new AlipayFundAuthOrderFreezeRequest();
request.setBizContent("{" +
"\"auth_code\":\"28763443825664394\"," +
"\"auth_code_type\":\"bar_code\"," +
"\"out_order_no\":\"8077735255938023\"," +
"\"out_request_no\":\"8077735255938032\"," +
"\"order_title\":\"预授权冻结\"," +
"\"amount\":0.01," +
"\"payee_logon_id\":\"159****5620\"," +
"\"payee_user_id\":\"2088102000275795\"," +
"\"pay_timeout\":\"2d\"," +
"\"extra_param\":\"{\\\"secondaryMerchantId\\\":\\\"17320004886\\\"}\"," +
"\"product_code\":\"PRE_AUTH\"," +
"\"trans_currency\":\"USD\"," +
"\"settle_currency\":\"USD\"," +
"\"enable_pay_channels\":\"[{\\\"payChannelType\\\":\\\"PCREDIT_PAY\\\"},{\\\"payChannelType\\\":\\\"MONEY_FUND\\\"}]\"" +
"  }");
AlipayFundAuthOrderFreezeResponse response = alipayClient.execute(request);
if(response.isSuccess()){
System.out.println("调用成功");
} else {
System.out.println("调用失败");
}

响应示例

{
    "alipay_fund_auth_order_freeze_response": {
        "code": "10000",
        "msg": "Success",
        "auth_no": "2014070800002001550000014417",
        "out_order_no": "4977164666634053",
        "operation_id": "2014070800032850551",
        "out_request_no": "2014070700166653",
        "amount": 0.01,
        "status": "SUCCESS",
        "payer_user_id": "2088102000275885",
        "payer_logon_id": "test***@alitest.com",
        "gmt_trans": "2014-09-15 11:23:04",
        "pre_auth_type": "CREDIT_AUTH",
        "trans_currency": "USD",
        "credit_amount": 0.01,
        "fund_amount": 0.01
    },
    "sign": "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}

异常示例

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

业务错误码

公共错误码

错误码错误描述解决方案
ILLEGAL_ARGUMENT 授权失败,预授权冻结参数异常或参数缺失,请顾客刷新付款码后重新收款 检查请求参数,修改后重新发起请求
EXIST_FORBIDDEN_WORD 授权失败,订单信息中包含违禁词 修改订单信息后,重新发起请求
ACCESS_FORBIDDEN 授权失败,本商户没有权限使用该产品,建议顾客使用其他方式付款 未签约条码支付或者合同已到期
UNIQUE_VIOLATION 授权失败,商户订单号重复,请收银员取消本笔订单并重新授权 更换商户的授权资金订单号后,重新发起请求
PAYER_USER_STATUS_LIMIT 授权失败,顾客账户暂时无法支付,建议顾客使用其他方式付款 买家支付宝账户受限,请登录支付宝认证升级,详情咨询95188
PAYER_NOT_EXIST 授权失败,获取顾客账户信息失败,请顾客刷新付款码后重新收款 用户刷新条码后,重新扫码发起请求
PAYMENT_AUTH_CODE_INVALID 授权失败,获取顾客账户信息失败,请顾客刷新付款码后重新收款,如再次授权失败 用户刷新条码后,重新扫码发起请求
MONEY_NOT_ENOUGH 授权失败,顾客余额不足,建议顾客充值完成后再进行付款 买家绑定新的银行卡或者支付宝余额有钱后再发起支付
ORDER_ALREADY_CLOSED 授权失败,本笔授权订单已关闭 更换商户授权资金订单号后,重新发起请求
FREEZE_ALREADY_SUCCESS 授权失败,授权订单已经冻结成功,请勿重复授权 确认该笔预授权信息是否为当前付款方的,如果是则认为授权成功,如果不是则更换商家授权资金订单号后,重新发起请求
ERROR_BALANCE_PAYMENT_DISABLE 授权失败,顾客余额支付功能开关关闭,请用户打开余额支付功能开关 用户打开余额支付开关后,再重新进行支付
PULL_MOBILE_CASHIER_FAIL 授权失败,顾客手机唤起收银台失败,请顾客检查手机网络,刷新付款码后重新预授权,并让顾客在付款码页面等待确认 用户检查手机网络,刷新条码后,重新扫码发起请求
USER_FACE_PAYMENT_SWITCH_OFF 授权失败,顾客当面付付款开关关闭,请用户在手机上打开当面付付款开关 让用户在手机上打开当面付付款开关
SYSTEM_ERROR 系统错误 请立即调用查询订单API,查询当前订单的状态,并根据订单状态决定下一步的操作
ORDER_ALREADY_FINISH 授权失败,本笔授权订单已经完结,无法再进行资金操作 更换商家授权资金订单号后,重新发起请求
PAYEE_NOT_EXIST 授权失败,收款方账号不存在 确认该收款方账号是注册过的支付宝账号
PAYEE_USER_STATUS_LIMIT 授权失败,收款方账号异常 卖家支付宝账户受限,请登录支付宝认证升级,详情咨询95188
PAYER_PAYEE_EQUAL 授权失败,收付款方信息不能相同 请商家基于业务诉求更换付款方或收款方信息
NO_PAYMENT_INSTRUMENTS_AVAILABLE 授权失败,用户没用可用的支付工具 请用户更换其它付款方式
CLIENT_VERSION_NOT_MATCH 授权失败,顾客手机支付宝客户端版本过低,请更新到最新版本 请用户更新到最新版本的手机支付宝客户端
UNSUPPORT_ORDER_AMOUNT 不支持的订单金额 确认订单金额合法后,更换订单号并重新发起请求
FORBIDDEN_MERCHANT_INDUSTRY 订单所属行业MCC被拦截 请与支付宝客服联系
CURRENCY_VERIFICATION_FAIL 币种校验失败 确认标价币种、结算币种正确后重新发起请求
RESTRICTED_MERCHANT_INDUSTRY 商户所属行业MCC单笔订单金额限制 请商户与支付宝客服确认行业MCC订单金额限制信息
FOREX_ID_VERIFICATION_FAIL 用户身份校验失败 请确认用户为大陆身份证认证用户
PRODUCT_AMOUNT_LIMIT_ERROR 购汇额度校验失败 请与客服确认用户购汇额度信息
SECONDARY_MERCHANT_STATUS_ERROR 商户状态异常 请商户与支付宝客服联系确认

触发通知类型

通知类型描述默认开启
fund_auth_freeze 资金预授权冻结成功 1
fund_auth_freeze.closed 资金预授权订单关闭 0
fund_auth_freeze.init 资金预授权订单创建 0

触发通知示例

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=&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&payee_logon_id=null&payee_user_id=null&total_freeze_amount=null&total_unfreeze_amount=null&total_pay_amount=null&rest_amount=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&pre_auth_type=CREDIT_AUTH&trans_currency=USD
onlineServer