收银员通过收银台或商户后台调用支付宝接口,生成二维码后,展示给用户,由用户扫描二维码完成资金冻结。 ## 公共请求参数 | **参数** | **类型** | **是否必选** | **最大长度** | **描述** | **示例值** | | --- | --- | --- | --- | --- | --- | | 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 | 必选 | 344 | 商户请求参数的签名串,详见[签名](https://ideservice.alipay.com/cms/site/02khjm) | 详见示例 | | 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 | 详见[应用授权概述](https://ideservice.alipay.com/cms/site/04h2nx) | | | biz_content | String | 必选 | | 请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档 | | ## 业务请求参数 收起所有属性
**out_order_no**必选string(64)
【描述】商户授权资金订单号。
商家自定义需保证在商户端不重复。仅支持字母、数字、下划线。
【示例值】8077735255938023
**out_request_no**必选string(64)
【描述】商户本次资金操作的请求流水号,用于标示请求流水的唯一性。
可与out_order_no相同,仅支持字母、数字、下划线。
【示例值】8077735255938032
**order_title**必选string(100)
【描述】订单标题。
业务订单的简单描述,如商品名称等
【示例值】预授权发码
**amount**必选price(11)
【描述】需要冻结的金额,单位为:元(人民币),精确到小数点后两位。
取值范围:[0.01,100000000.00]
【示例值】100.00
**product_code**必选string(32)
【描述】销售产品码。
固定为 PREAUTH_PAY
【示例值】PREAUTH_PAY
**deposit_product_mode**条件必选string(32)
【描述】免押受理台模式,使用免押产品必传该字段。根据免押不同业务模式将开通受理台区分三种模式,商家可根据调用预授权冻结接口传入的参数决定该笔免押订单选择哪种受理台模式。不同受理台模式需要传入不同参数,其中:POSTPAY 表示后付金额已知,POSTPAY_UNCERTAIN 表示后付金额未知,DEPOSIT_ONLY 表示纯免押。 具体规则参考文档:[https://ideservice.alipay.com/cms/site/08tf3t?pathHash=d67d754508tf3t?pathHash=d67d7545](https://ideservice.alipay.com/cms/site/08tf3t?pathHash=d67d754508tf3t?pathHash=d67d7545)
【枚举值】
后付金额已知: POSTPAY
后付金额未知: POSTPAY_UNCERTAIN
纯免押: DEPOSIT_ONLY
【必选条件】免押受理台模式,使用免押产品必传该字段
【示例值】POSTPAY
**post_payments**条件必选PostPayment[]
【描述】后付费项目, 有付费项目时需要传入该字段。不同受理台模式需要传入不同参数,后付费项目名称和计费说明需要通过校验规则,同时计费说明将展示在开通受理台上。当受理台模式(deposit_product_mode)传入POSTPAY 时,后付费项目名称(name)、金额(amount)必传,计费说明(description)选传;当传入 POSTPAY_UNCERTAIN 时,后付费项目名称(name)、计费说明(description)必传,金额(amount)不传。 具体规则参考文档: [https://ideservice.alipay.com/cms/site/08tf3t?pathHash=d67d7545](https://ideservice.alipay.com/cms/site/08tf3t?pathHash=d67d7545)
【必选条件】后付费项目,有付费项目时需要传入该字段
**name**特殊可选string(32)
【描述】后付费项目名称
【示例值】租金
**amount**特殊可选string(11)
【描述】后付费金额,单位为:元(人民币),精确到小数点后两位。
【示例值】0.01
**description**可选string(64)
【描述】计费说明
【示例值】2元/小时,99元封顶
**payee_user_id**可选string(32)
【描述】收款账户的支付宝用户号。
以2088开头的16位纯数字,如果传入则会校验该账号是否具备当前商户收款权限,如果商户希望用户能够使用花呗,则用户号(payee_user_id)和登录号(payee_logon_id)两者必须传入其一,二者无需同时传入
【示例值】2088102000275795
**payee_logon_id**可选string(100)
【描述】收款账户的支付宝登录号(email或手机号)。
如果传入则会校验该登录号对应的账号是否具备当前商户收款权限,如果商户希望用户能够使用花呗,则用户号(payee_user_id)和登录号(payee_logon_id)两者必须传入其一,二者无需同时传入
【示例值】159****5620
**timeout_express**可选string(5)
【描述】预授权订单相对超时时间,从商户请求时间开始计算。
预授权订单允许的最晚授权时间,逾期将关闭该笔订单。取值范围:1m~15d。m-分钟,h-小时,d-天。 该参数数值不接受小数点, 如 1.5h,可转换为90m。
默认为15m。
【示例值】2d
**enable_pay_channels**可选string(128)
【描述】无特殊需要请勿传入;商户可用该参数指定支付渠道。
传入后用户仅能使用列表中的渠道进行支付,目前支持三种渠道,余额宝(MONEY_FUND)、花呗(PCREDIT_PAY)以及芝麻信用(CREDITZHIMA)。与禁用支付渠道不可同时传入
【示例值】[{"payChannelType":"PCREDIT_PAY"},{"payChannelType":"MONEY_FUND"}]
**disable_pay_channels**可选string(128)
【描述】无特殊需要请勿传入;商户可用该参数禁用支付渠道。
传入后用户不可使用列表中的渠道进行支付,目前支持两种禁用渠道:信用卡快捷(OPTIMIZED_MOTO)、信用卡卡通(BIGAMOUNT_CREDIT_CARTOON)。与可用支付渠道不能同时传入
【示例值】[{"payChannelType":"OPTIMIZED_MOTO"},{"payChannelType":"BIGAMOUNT_CREDIT_CARTOON"}]
**identity_params**可选string(300)
【描述】无特殊需要请勿传入;买家实名信息。
传入后支付宝会比对买家在支付宝端的实名信息。包含两个可选key:
1.identity_hash,买家姓名拼接身份证号后,使用SHA256摘要方式与UTF8编码后的hash值,返回的十六进制字符串,例如 “张三4566498798498498498498”对应的identity_hash应为“acc2b92ffc5ed9b472faa19748f10045c30434132784f774b00216a56b8841c6”
2.alipay_open_id,买家支付宝openId
3.alipay_user_id,买家支付宝uid
【示例值】{"identity_hash":"acc2b92ffc5ed9b472faa19748f10045c30434132784f774b00216a56b8841c6","alipay_open_id":"xxxxxx","alipay_user_id":"2088xxx"}
**extra_param**可选string(300)
【描述】业务扩展参数,用于特定业务信息的传递,json格式。 1、category,信用类目,信用预授权场景必传,具体类目信息见[https://ideservice.alipay.com/cms/site/00a0mm](https://ideservice.alipay.com/cms/site/00a0mm); 2、serviceId,信用服务ID:信用预授权场景必传。需要商家在 [开放平台-芝麻免押-信用服务管理](https://b.alipay.com/page/zmgaia/pre-auth/index) 创建信用服务获取,详情可查看 [创建信用服务](https://ideservice.alipay.com/cms/site/03w0a7?pathHash=51f6b4f2&ref=api#%E7%94%B3%E8%AF%B7%E4%BF%A1%E7%94%A8%E6%9C%8D%E5%8A%A1)。在创建过程中如果有其它疑问,可以咨询芝麻客服小二(0571-88158055 转 2); 3、creditExtInfo,信用参数,可选,如有需要请与芝麻约定后传入,信用服务说明见[https://ideservice.alipay.com/cms/site/00a0iz](https://ideservice.alipay.com/cms/site/00a0iz)
【示例值】{"category":"CHARGE_PILE_CAR","serviceId":"2020042800000000000001450466"}
**business_params**可选string(1024)
【描述】业务参数,如风控参数outRiskInfo等。
【示例值】{"outRiskInfo":"{\"mcCreateTradeTime\":\"2022-03-11 12:46:09\",\"extraAccountCertnoLastSix\":\"000011\",\"mobileOperatingPlatform\":\"ios\",\"sysVersion\":\"15.4.2\",\"mcCreateTradeIp\":\"11.110.111.43\"}"} ## 常见请求示例 ### cURL ``` curl 'https://openapi.alipay.com/gateway.do?charset=UTF-8&method=alipay.fund.auth.order.voucher.create&format=json&sign=${sign}&app_id=${appid}&version=1.0&sign_type=RSA2×tamp=${now}' \ -F 'app_auth_token=${app_auth_token}' \ -F 'biz_content={ "post_payments":[ { "amount":"0.01", "name":"租金", "description":"2元/小时,99元封顶" } ], "order_title":"预授权发码", "amount":"100.00", "payee_user_id":"2088102000275795", "out_order_no":"8077735255938023", "product_code":"PREAUTH_PAY", "payee_logon_id":"159****5620", "enable_pay_channels":"[{\"payChannelType\":\"PCREDIT_PAY\"},{\"payChannelType\":\"MONEY_FUND\"}]", "deposit_product_mode":"POSTPAY", "identity_params":"{\"identity_hash\":\"acc2b92ffc5ed9b472faa19748f10045c30434132784f774b00216a56b8841c6\",\"alipay_open_id\":\"xxxxxx\",\"alipay_user_id\":\"2088xxx\"}", "business_params":"{\"outRiskInfo\":\"{\\\"mcCreateTradeTime\\\":\\\"2022-03-11 12:46:09\\\",\\\"extraAccountCertnoLastSix\\\":\\\"000011\\\",\\\"mobileOperatingPlatform\\\":\\\"ios\\\",\\\"sysVersion\\\":\\\"15.4.2\\\",\\\"mcCreateTradeIp\\\":\\\"11.110.111.43\\\"}\"}", "timeout_express":"2d", "disable_pay_channels":"[{\"payChannelType\":\"OPTIMIZED_MOTO\"},{\"payChannelType\":\"BIGAMOUNT_CREDIT_CARTOON\"}]", "out_request_no":"8077735255938032", "extra_param":"{\"category\":\"CHARGE_PILE_CAR\",\"serviceId\":\"2020042800000000000001450466\"}" }' ``` ### Java ``` package com.java.sdk.demo; import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; import com.alipay.api.DefaultAlipayClient; import com.alipay.api.AlipayConfig; import com.alipay.api.request.AlipayFundAuthOrderVoucherCreateRequest; import com.alipay.api.response.AlipayFundAuthOrderVoucherCreateResponse; import com.alipay.api.domain.PostPayment; import com.alipay.api.domain.AlipayFundAuthOrderVoucherCreateModel; import com.alipay.api.FileItem; import java.util.Base64; import java.util.ArrayList; import java.util.List; public class AlipayFundAuthOrderVoucherCreate { public static void main(String[] args) throws AlipayApiException { // 初始化SDK AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig()); // 构造请求参数以调用接口 AlipayFundAuthOrderVoucherCreateRequest request = new AlipayFundAuthOrderVoucherCreateRequest(); AlipayFundAuthOrderVoucherCreateModel model = new AlipayFundAuthOrderVoucherCreateModel(); // 设置后付费项目 List postPayments = new ArrayList(); PostPayment postPayments0 = new PostPayment(); postPayments0.setAmount("0.01"); postPayments0.setName("租金"); postPayments0.setDescription("2元/小时,99元封顶"); postPayments.add(postPayments0); model.setPostPayments(postPayments); // 设置订单标题 model.setOrderTitle("预授权发码"); // 设置需要冻结的金额 model.setAmount("100.00"); // 设置收款账户的支付宝用户号 model.setPayeeUserId("2088102000275795"); // 设置商户授权资金订单号 model.setOutOrderNo("8077735255938023"); // 设置销售产品码 model.setProductCode("PREAUTH_PAY"); // 设置收款账户的支付宝登录号(email或手机号) model.setPayeeLogonId("159****5620"); // 设置无特殊需要请勿传入 model.setEnablePayChannels("[{\"payChannelType\":\"PCREDIT_PAY\"},{\"payChannelType\":\"MONEY_FUND\"}]"); // 设置免押受理台模式 model.setDepositProductMode("POSTPAY"); // 设置无特殊需要请勿传入 model.setIdentityParams("{\"identity_hash\":\"acc2b92ffc5ed9b472faa19748f10045c30434132784f774b00216a56b8841c6\",\"alipay_open_id\":\"xxxxxx\",\"alipay_user_id\":\"2088xxx\"}"); // 设置业务参数 model.setBusinessParams("{\"outRiskInfo\":\"{\"mcCreateTradeTime\":\"2022-03-11 12:46:09\",\"extraAccountCertnoLastSix\":\"000011\",\"mobileOperatingPlatform\":\"ios\",\"sysVersion\":\"15.4.2\",\"mcCreateTradeIp\":\"11.110.111.43\"}\"}"); // 设置预授权订单相对超时时间 model.setTimeoutExpress("2d"); // 设置无特殊需要请勿传入 model.setDisablePayChannels("[{\"payChannelType\":\"OPTIMIZED_MOTO\"},{\"payChannelType\":\"BIGAMOUNT_CREDIT_CARTOON\"}]"); // 设置商户本次资金操作的请求流水号 model.setOutRequestNo("8077735255938032"); // 设置业务扩展参数 model.setExtraParam("{\"category\":\"CHARGE_PILE_CAR\",\"serviceId\":\"2020042800000000000001450466\"}"); request.setBizModel(model); // 第三方代调用模式下请设置app_auth_token // request.putOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->"); AlipayFundAuthOrderVoucherCreateResponse response = alipayClient.execute(request); System.out.println(response.getBody()); if (response.isSuccess()) { System.out.println("调用成功"); } else { System.out.println("调用失败"); // sdk版本是"4.38.0.ALL"及以上,可以参考下面的示例获取诊断链接 // String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response); // System.out.println(diagnosisUrl); } } private static AlipayConfig getAlipayConfig() { String privateKey = "<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->"; String alipayPublicKey = "<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->"; AlipayConfig alipayConfig = new AlipayConfig(); alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do"); alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->"); alipayConfig.setPrivateKey(privateKey); alipayConfig.setFormat("json"); alipayConfig.setAlipayPublicKey(alipayPublicKey); alipayConfig.setCharset("UTF-8"); alipayConfig.setSignType("RSA2"); return alipayConfig; } } ``` ### C# ``` using System; using System.Collections.Generic; using Aop.Api; using Aop.Api.Request; using Aop.Api.Response; using Aop.Api.Domain; using Aop.Api.Util; namespace SdkDemoTest { public class AlipayFundAuthOrderVoucherCreate { public static void Main(string[] args) { // 初始化SDK IAopClient alipayClient = new DefaultAopClient(GetAlipayConfig()); // 构造请求参数以调用接口 AlipayFundAuthOrderVoucherCreateRequest request = new AlipayFundAuthOrderVoucherCreateRequest(); AlipayFundAuthOrderVoucherCreateModel model = new AlipayFundAuthOrderVoucherCreateModel(); // 设置后付费项目 List postPayments = new List(); PostPayment postPayments0 = new PostPayment(); postPayments0.Amount = "0.01"; postPayments0.Name = "租金"; postPayments0.Description = "2元/小时,99元封顶"; postPayments.Add(postPayments0); model.PostPayments = postPayments; // 设置订单标题 model.OrderTitle = "预授权发码"; // 设置需要冻结的金额 model.Amount = "100.00"; // 设置收款账户的支付宝用户号 model.PayeeUserId = "2088102000275795"; // 设置商户授权资金订单号 model.OutOrderNo = "8077735255938023"; // 设置销售产品码 model.ProductCode = "PREAUTH_PAY"; // 设置收款账户的支付宝登录号(email或手机号) model.PayeeLogonId = "159****5620"; // 设置无特殊需要请勿传入 model.EnablePayChannels = "[{\"payChannelType\":\"PCREDIT_PAY\"},{\"payChannelType\":\"MONEY_FUND\"}]"; // 设置免押受理台模式 model.DepositProductMode = "POSTPAY"; // 设置无特殊需要请勿传入 model.IdentityParams = "{\"identity_hash\":\"acc2b92ffc5ed9b472faa19748f10045c30434132784f774b00216a56b8841c6\",\"alipay_open_id\":\"xxxxxx\",\"alipay_user_id\":\"2088xxx\"}"; // 设置业务参数 model.BusinessParams = "{\"outRiskInfo\":\"{\"mcCreateTradeTime\":\"2022-03-11 12:46:09\",\"extraAccountCertnoLastSix\":\"000011\",\"mobileOperatingPlatform\":\"ios\",\"sysVersion\":\"15.4.2\",\"mcCreateTradeIp\":\"11.110.111.43\"}\"}"; // 设置预授权订单相对超时时间 model.TimeoutExpress = "2d"; // 设置无特殊需要请勿传入 model.DisablePayChannels = "[{\"payChannelType\":\"OPTIMIZED_MOTO\"},{\"payChannelType\":\"BIGAMOUNT_CREDIT_CARTOON\"}]"; // 设置商户本次资金操作的请求流水号 model.OutRequestNo = "8077735255938032"; // 设置业务扩展参数 model.ExtraParam = "{\"category\":\"CHARGE_PILE_CAR\",\"serviceId\":\"2020042800000000000001450466\"}"; request.SetBizModel(model); // 第三方代调用模式下请设置app_auth_token // request.PutOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->"); AlipayFundAuthOrderVoucherCreateResponse response = alipayClient.Execute(request); if(!response.IsError) { Console.WriteLine("调用成功"); } else { Console.WriteLine("调用失败"); } } private static AlipayConfig GetAlipayConfig() { string privateKey = "<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->"; string alipayPublicKey = "<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->"; AlipayConfig alipayConfig = new AlipayConfig(); alipayConfig.ServerUrl = "https://openapi.alipay.com/gateway.do"; alipayConfig.AppId = "<-- 请填写您的AppId,例如:2019091767145019 -->"; alipayConfig.PrivateKey = privateKey; alipayConfig.Format = "json"; alipayConfig.AlipayPublicKey = alipayPublicKey; alipayConfig.Charset = "UTF-8"; alipayConfig.SignType = "RSA2"; return alipayConfig; } } } ``` ### PHP ``` setBizContent(json_encode($model,JSON_UNESCAPED_UNICODE)); // 如果是第三方代调用模式,请设置app_auth_token(应用授权令牌) $responseResult = $alipayClient->execute($request, null, "<-- 请填写应用授权令牌 -->", null); $responseApiName = str_replace(".","_",$request->getApiMethodName())."_response"; $response = $responseResult->$responseApiName; if(!empty($response->code)&&$response->code==10000){ echo("调用成功"); } else{ echo("调用失败"); } function getAlipayConfig() { $privateKey = '<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->'; $alipayPublicKey = '<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->'; $alipayConfig = new AlipayConfig(); $alipayConfig->setServerUrl('https://openapi.alipay.com/gateway.do'); $alipayConfig->setAppId('<-- 请填写您的AppId,例如:2019091767145019 -->'); $alipayConfig->setPrivateKey($privateKey); $alipayConfig->setFormat('json'); $alipayConfig->setAlipayPublicKey($alipayPublicKey); $alipayConfig->setCharset('UTF-8'); $alipayConfig->setSignType('RSA2'); return $alipayConfig; } ``` ## 公共响应参数 | **参数** | **类型** | **是否必选** | **最大长度** | **描述** | **示例值** | | --- | --- | --- | --- | --- | --- | | code | String | 必选 | - | 网关返回码,[详见文档](https://ideservice.alipay.com/cms/site/02km9f) | 40004 | | msg | String | 必选 | - | 网关返回码描述,[详见文档](https://ideservice.alipay.com/cms/site/02km9f) | Business Failed | | sub_code | String | 可选 | - | 业务返回码,参见具体的API接口文档 | ACQ.TRADE_HAS_SUCCESS | | sub_msg | String | 可选 | - | 业务返回码描述,参见具体的API接口文档 | 交易已被支付 | | sign | String | 必选 | - | 签名,[详见文档](https://ideservice.alipay.com/cms/site/02kf5q) | 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
【枚举值】
条形码 (一维码): barCode
二维码(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 ## 响应示例 ### 正常示例 ``` { "alipay_fund_auth_order_voucher_create_response": { "code": "10000", "msg": "Success", "out_order_no": "8077735255938023", "out_request_no": "8077735255938032", "code_type": "qrCode", "code_value": "https://qr.alipay.com/aax017928umnzqo0uswmzd3", "code_url": "http://mobilecodec.alipay.com/show.htm?code=aeparsv2dknkqf3018556a" }, "sign": "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE" } ``` ### 异常示例 ``` { "alipay_fund_auth_order_voucher_create_response": { "code": "20000", "msg": "Service Currently Unavailable", "sub_code": "isp.unknow-error", "sub_msg": "系统繁忙" }, "sign": "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE" } ``` ## 公共错误码 [前往查看](https://ideservice.alipay.com/cms/site/02km9f) ## 业务错误码 | **错误码** | **错误描述** | **解决方案** | | --- | --- | --- | | SYSTEM_ERROR | 系统繁忙 | 请立即调用查询订单API,查询当前订单的状态,并根据订单状态决定下一步的操作 | | ACCESS_FORBIDDEN | 发码失败,本商户没有权限使用该产品 | 看下商户签约合同是否已到期 | | CURRENCY_VERIFICATION_FAIL | 币种校验失败 | 确认标价币种、结算币种正确后重新发起请求 | | ERROR_BALANCE_PAYMENT_DISABLE | 授权失败,顾客余额支付功能开关关闭,请用户打开余额支付功能开关 | 用户打开余额支付开关后,再重新进行支付 | | EXIST_FORBIDDEN_WORD | 发码失败,订单信息中包含违禁词 | 修改订单信息后,重新发起请求 | | FREEZE_ALREADY_SUCCESS | 授权失败,授权订单已经冻结成功,请勿重复授权 | 确认该笔预授权信息是否为当前付款方的,如果是则认为授权成功,如果不是则更换商家授权资金订单号后,重新发起请求 | | ILLEGAL_ARGUMENT | 预授权发码参数异常或参数缺失 | 检查请求参数,修改后重新发起请求 | | ILLEGAL_PAYEE_USER_ID | 收款方账号不是卖家可用的账号 | 收款方账号请使用卖家账号或卖家收款账号 | | MERCHANT_STATUS_ERROR | 商户状态错误 | 商户状态异常,请联系支付宝核实 | | MONEY_NOT_ENOUGH | 授权失败,顾客余额不足,建议顾客充值完成后再进行付款 | 买家绑定新的银行卡或者支付宝余额有钱后再发起支付 | | NO_PAYMENT_INSTRUMENTS_AVAILABLE | 授权失败,用户没用可用的支付工具 | 请用户更换其它付款方式 | | ORDER_ALREADY_CLOSED | 授权失败,本笔授权订单已关闭 | 更换商户授权资金订单号后,重新发起请求 | | ORDER_ALREADY_FINISH | 授权失败,本笔授权订单已经完结,无法再进行资金操作 | 更换商家授权资金订单号后,重新发起请求 | | PAYEE_NOT_EXIST | 发码失败,收款方账号不存在 | 确认该收款方账号是注册过的支付宝账号 | | PAYEE_USER_STATUS_LIMIT | 发码失败,收款方账号异常 | 卖家支付宝账户受限,请登录支付宝认证升级,详情咨询 4007585858。 | | PAYER_PAYEE_EQUAL | 授权失败,收付款方信息不能相同 | 请商家基于业务诉求更换付款方或收款方信息 | | PAYER_USER_STATUS_LIMIT | 授权失败,顾客账户暂时无法支付,建议顾客使用其他方式付款 | 买家支付宝账户受限,请登录支付宝认证升级,详情咨询 4007585858。 | | SECONDARY_MERCHANT_STATUS_ERROR | 商户状态异常 | 请商户与支付宝客服联系确认 | | SUB_MERCHANT_LEVEL_ERROR | 间联商户等级校验错误 | 间联商户等级校验错误,请提高间联商户的等级 | | SUB_MERCHANT_NO_PERMISSION | 此二级商户没有进行预授权产品的进件/入驻,请先完成预授权产品的进件/入驻后再重新发起请求 | 请先完成预授权产品的进件/入驻后再重新发起请求 | | SUB_MERCHANT_ORGANIZATION_ID_ERROR | 间联模式下,传入的二级商户的机构id为空或错误 | 间联模式下,传入正确的机构id | | UNIQUE_VIOLATION | 授权失败,商户订单号重复,请收银员取消本笔订单并重新授权 | 更换商户的授权资金订单号后,重新发起请求 | | UNSUPPORTED_BIZ_TYPE | 不支持的业务类型 | 一般是接口入参传递错误,请先对照接口文档自行检查修正,仍无法解决的请联系支付宝。 | | USER_ACCOUNT_VALIDATE_FAIL | 用户账号校验失败 | 用户账号信息校验失败,请确认当前用户与支付宝用户是否匹配。 | | USER_IDENTITY_INFO_VALIDATE_FAIL | 用户实名信息校验失败 | 用户实名信息校验失败,请确认当前用户与支付宝用户是否匹配。 | ## 触发通知类型 | **通知类型** | **描述** | **默认开启** | | --- | --- | --- | | 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¬ify_id=91722adff935e8cfa58b3aabf4dead6ibe¬ify_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&payer_open_id=03914IMEfXsS9K-tSvHy-IisrLlOfthFgDVo-hU30XtKPg9&merchant_app_id=2016092901250233&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&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&credit_merchant_ext={"1003190":"true"} ```