注意:以下文档只适用于TOP接口,请谨慎使用!

alipay.fund.auth.order.voucher.create (资金授权发码接口)

收银员通过收银台或商户后台调用支付宝接口,生成二维码后,展示给用户,由用户扫描二维码完成资金冻结。

公共参数

请求地址:
环境 HTTPS请求地址
正式环境 https://openapi.alipay.com/gateway.do
公共请求参数:
参数 类型 是否必填 最大长度 描述 示例值
app_id String 32 支付宝分配给开发者的应用ID 2014072300007148
method String 128 接口名称 alipay.fund.auth.order.voucher.create
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
notify_url String 256 支付宝服务器主动通知商户服务器里指定的页面http/https路径。 http://api.test.alipay.net/atinterface/receive_notify.htm
app_auth_token String 40 详见应用授权概述
biz_content String - 请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档

请求参数

参数 类型 是否必填 最大长度 描述 示例值
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]
100.00
payee_user_id String 可选 32 收款方的支付宝唯一用户号,以2088开头的16位纯数字组成,如果非空则会在支付时校验交易的的收款方与此是否一致,如果商户有勾选花呗渠道,收款方支付宝登录号(payee_logon_id)和用户号(payee_user_id)不能同时为空。 2088102000275795
payee_logon_id String 可选 100 收款方支付宝账号(Email或手机号),如果收款方支付宝登录号(payee_logon_id)和用户号(payee_user_id)同时传递,则以用户号(payee_user_id)为准,如果商户有勾选花呗渠道,收款方支付宝登录号(payee_logon_id)和用户号(payee_user_id)不能同时为空。 159****5620
pay_timeout String 可选 5 该笔订单允许的最晚付款时间,逾期将关闭该笔订单
取值范围:1m~15d。m-分钟,h-小时,d-天。 该参数数值不接受小数点, 如 1.5h,可转换为90m
如果为空,默认15m
2d
extra_param String 可选 300 业务扩展参数,用于商户的特定业务信息的传递,json格式 {"merchantExt":"value"}
product_code String 可选 32 销售产品码,后续新接入预授权当面付的业务,本字段取值固定为PRE_AUTH。 PRE_AUTH

公共响应参数

参数 类型 是否必填 最大长度 描述 示例值
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 必填 64 商户的授权资金订单号 8077735255938023
out_request_no String 必填 64 商户本次资金操作的请求流水号 8077735255938032
code_type String 必填 20 码类型,分为 barCode:条形码 (一维码) 和 qrCode:二维码(qrCode) ;
目前发码只支持 qrCode
qrCode
code_value String 必填 200 当前发码请求生成的二维码码串,商户端可以利用二维码生成工具根据该码串值生成对应的二维码 https://qr.alipay.com/aax017928umnzqo0uswmzd3
code_url String 必填 200 生成的带有支付宝logo的二维码地址,如:http://mobilecodec.alipay.com/show.htm?code=aeparsv2dknkqf3018556a;商户端通过在末尾追加picSize来指定要显示的图片大小,如
显示1280大小的URL:http://mobilecodec.alipay.com/show.htm?code=aeparsv2dknkqf3018556a&picSize=1280;目前支持的大小有:256, 227, 270, 344, 430, 512, 570, 860, 1280, 1546;
http://mobilecodec.alipay.com/show.htm?code=aeparsv2dknkqf3018556a

请求示例

  • 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");
AlipayFundAuthOrderVoucherCreateRequest request = new AlipayFundAuthOrderVoucherCreateRequest();
request.setBizContent("{" +
"\"out_order_no\":\"8077735255938023\"," +
"\"out_request_no\":\"8077735255938032\"," +
"\"order_title\":\"预授权发码\"," +
"\"amount\":100.00," +
"\"payee_user_id\":\"2088102000275795\"," +
"\"payee_logon_id\":\"159****5620\"," +
"\"pay_timeout\":\"2d\"," +
"\"extra_param\":\"{\\\"merchantExt\\\":\\\"value\\\"}\"," +
"\"product_code\":\"PRE_AUTH\"" +
"}");
AlipayFundAuthOrderVoucherCreateResponse response = alipayClient.execute(request);
if(response.isSuccess()){
System.out.println("调用成功");
} else {
System.out.println("调用失败");
}

响应示例

  • JSON示例
{
	"alipay_fund_auth_order_voucher_create_response":{
		"msg":"Success",
		"code":"10000",
		"code_url":"http://mobilecodec.alipay.com/show.htm?code=aeparsv2dknkqf3018556a",
		"out_order_no":"8077735255938023",
		"code_value":"https://qr.alipay.com/aax017928umnzqo0uswmzd3",
		"out_request_no":"8077735255938032",
		"code_type":"qrCode"
	},
	"sign":"ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}

异常示例

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

业务错误码

错误码 错误描述 解决方案
ILLEGAL_ARGUMENT 预授权发码参数异常或参数缺失 检查请求参数,修改后重新发起请求
UNIQUE_VIOLATION 授权失败,商户订单号重复,请收银员取消本笔订单并重新授权 更换商户的授权资金订单号后,重新发起请求
EXIST_FORBIDDEN_WORD 发码失败,订单信息中包含违禁词 修改订单信息后,重新发起请求
ACCESS_FORBIDDEN 发码失败,本商户没有权限使用该产品 看下商户签约合同是否已到期
PAYEE_NOT_EXIST 发码失败,收款方账号不存在 确认该收款方账号是注册过的支付宝账号
PAYEE_USER_STATUS_LIMIT 发码失败,收款方账号异常 卖家支付宝账户受限,请登录支付宝认证升级,详情咨询95188
PAYER_USER_STATUS_LIMIT 授权失败,顾客账户暂时无法支付,建议顾客使用其他方式付款 买家支付宝账户受限,请登录支付宝认证升级,详情咨询95188
ORDER_ALREADY_FINISH 授权失败,本笔授权订单已经完结,无法再进行资金操作 更换商家授权资金订单号后,重新发起请求
ORDER_ALREADY_CLOSED 授权失败,本笔授权订单已关闭 更换商户授权资金订单号后,重新发起请求
FREEZE_ALREADY_SUCCESS 授权失败,授权订单已经冻结成功,请勿重复授权 确认该笔预授权信息是否为当前付款方的,如果是则认为授权成功,如果不是则更换商家授权资金订单号后,重新发起请求
ERROR_BALANCE_PAYMENT_DISABLE 授权失败,顾客余额支付功能开关关闭,请用户打开余额支付功能开关 用户打开余额支付开关后,再重新进行支付
SYSTEM_ERROR 系统繁忙 请立即调用查询订单API,查询当前订单的状态,并根据订单状态决定下一步的操作
MONEY_NOT_ENOUGH 授权失败,顾客余额不足,建议顾客充值完成后再进行付款 买家绑定新的银行卡或者支付宝余额有钱后再发起支付
NO_PAYMENT_INSTRUMENTS_AVAILABLE 授权失败,用户没用可用的支付工具 请用户更换其它付款方式
PAYER_PAYEE_EQUAL 授权失败,收付款方信息不能相同 请商家基于业务诉求更换付款方或收款方信息

公共错误码

触发通知类型

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

触发通知字段

参数 类型 是否必填 最大长度 描述 示例值
auth_no String 选填 64 支付宝资金授权订单号 2014070800002001550000014417
out_order_no String 选填 64 商户的资金授权订单号 4977164666634053
operation_id String 选填 64 支付宝的资金操作流水号 2014070800032850551
out_request_no String 选填 64 商户资金操作流水号 2014070700166653
operation_type String 选填 10 资金操作类型,支持【FREEZE:冻结操作,UNFREEZE:解冻操作,PAY:支付操作】 FREEZE
amount String 选填 11 本次操作金额 100.00
status String 选填 20 本次资金操作流水状态,支持【INIT:初始状态,SUCCESS:成功,CLOSED:关闭】 SUCCESS
gmt_create String 选填 20 操作创建时间 2014-09-15 11:23:03
gmt_trans String 选填 20 操作处理完成时间 2014-09-15 11:23:04
payer_logon_id String 选填 100 付款方支付宝账号登录号 test***@alitest.com
payer_user_id String 选填 32 付款方支付宝账号UID 2088102000275885
payee_logon_id String 选填 100 收款方支付宝账号登录号 tstw***@alitest.com
payee_user_id String 选填 32 收款方支付宝账号UID 2088102138117431
total_freeze_amount String 选填 11 累计冻结金额 100.00
total_unfreeze_amount String 选填 11 累计解冻金额 20.00
total_pay_amount String 选填 11 累计支付金额 10.00
rest_amount String 选填 11 剩余冻结金额 70.00

触发通知示例

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=2014070800002001550000014417&out_order_no=4977164666634053&operation_id=2014070800032850551&out_request_no=2014070700166653&operation_type=FREEZE&amount=100.00&status=SUCCESS&gmt_create=2014-09-15 11:23:03&gmt_trans=2014-09-15 11:23:04&payer_logon_id=test***@alitest.com&payer_user_id=2088102000275885&payee_logon_id=tstw***@alitest.com&payee_user_id=2088102138117431&total_freeze_amount=100.00&total_unfreeze_amount=20.00&total_pay_amount=10.00&rest_amount=70.00

异步通知验签方式

返回
顶部