统一收单交易创建接口
公共请求参数
参数 | 类型 | 是否必选 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|
app_id | String | 必选 | 32 | 支付宝分配给开发者的应用ID | 2014072300007148 |
method | String | 必选 | 128 | 接口名称 | alipay.trade.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 | 商户请求参数的签名串,详见签名 | 详见示例 |
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_trade_no | String | 必选 | 64 | 商户订单号。 由商家自定义,64个字符以内,仅支持字母、数字、下划线且需保证在商户端不重复。 | 20150320010101001 |
total_amount | Price | 必选 | 9 | 订单总金额。 单位为元,精确到小数点后两位,取值范围:[0.01,100000000] 。 | 88.88 |
subject | String | 必选 | 256 | 订单标题。 注意:不可使用特殊字符,如 /,=,& 等。 | Iphone6 16G |
product_code | String | 可选 | 64 | 产品码 。 商家和支付宝签约的产品码。 枚举值(点击查看签约情况): FACE_TO_FACE_PAYMENT:当面付产品; 默认值为FACE_TO_FACE_PAYMENT。 | FACE_TO_FACE_PAYMENT |
seller_id | String | 可选 | 28 | 卖家支付宝用户ID。 当需要指定收款账号时,通过该参数传入,如果该值为空,则默认为商户签约账号对应的支付宝用户ID。 收款账号优先级规则:门店绑定的收款账户>请求传入的seller_id>商户签约账号对应的支付宝用户ID; 注:直付通和机构间联场景下seller_id无需传入或者保持跟pid一致; 如果传入的seller_id与pid不一致,需要联系支付宝小二配置收款关系; | 2088102146225135 |
buyer_id | String | 特殊可选 | 28 | 买家支付宝用户ID。 2088开头的16位纯数字,小程序场景下获取用户ID请参考:用户授权; 其它场景下获取用户ID请参考:网页授权获取用户信息; 注:交易的买家与卖家不能相同。想了解openid? | 2088102146225135 |
buyer_logon_id | String | 特殊可选 | 100 | 买家支付宝登录账号。 buyer_logon_id和buyer_id两者传其一,和buyer_id不能同时为空,建议通过buyer_id来传递买家信息。 | 15901825620 |
body | String | 可选 | 128 | 订单附加信息。 如果请求时传递了该参数,将在异步通知、对账单中原样返回,同时会在商户和用户的pc账单详情中作为交易描述展示 | Iphone6 16G |
goods_detail | GoodsDetail[] | 可选 | 订单包含的商品列表信息,json格式。 | [{"goods_id":"apple-01","goods_name":"ipad","goods_category":"7788230","price":"2000.00","quantity":"1"}] | |
time_expire | String | 可选 | 32 | 订单绝对超时时间。 格式为yyyy-MM-dd HH:mm:ss。 注:time_expire和timeout_express两者只需传入一个或者都不传,如果两者都传,优先使用time_expire。 | 2021-12-31 10:05:00 |
timeout_express | String | 可选 | 6 | 订单相对超时时间。从交易创建时间开始计算。 该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m。 当面付场景默认值为3h。 注:time_expire和timeout_express两者只需传入一个或者都不传,如果两者都传,优先使用time_expire。 | 90m |
royalty_info | RoyaltyInfo | 可选 | 描述分账信息,json格式。 | { "royalty_type" : "ROYALTY", "royalty_detail_infos":[{"serial_no":"1","trans_out":"2088101126765726","trans_in":"20881011267084 | |
settle_info | SettleInfo | 可选 | 描述结算信息,json格式。 | ||
sub_merchant | SubMerchant | 可选 | 二级商户信息。 直付通模式和机构间连模式下必传,其它场景下不需要传入。 | ||
extend_params | ExtendParams | 可选 | 业务扩展参数 | {“sys_service_provider_id”:” 2088511833207846”} | |
business_params | BusinessParams | 可选 | 商户传入业务信息,具体值要和支付宝约定,应用于安全,营销等参数直传场景,格式为json格式 | {"data":"123"} | |
passback_params | String | 可选 | 512 | 公用回传参数。 如果请求时传递了该参数,支付宝会在异步通知时将该参数原样返回。 | merchantBizType%3d3C%26merchantBizNo%3d2016010101111 |
discountable_amount | Price | 可选 | 9 | 可打折金额。 参与优惠计算的金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]。 如果同时传入了【可打折金额】、【不可打折金额】和【订单总金额】,则必须满足如下条件:【订单总金额】=【可打折金额】+【不可打折金额】。 如果订单金额全部参与优惠计算,则【可打折金额】和【不可打折金额】都无需传入。 | 80.00 |
undiscountable_amount | Price | 可选 | 9 | 不可打折金额。 不参与优惠计算的金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]。 如果同时传入了【可打折金额】、【不可打折金额】和【订单总金额】,则必须满足如下条件:【订单总金额】=【可打折金额】+【不可打折金额】。 如果订单金额全部参与优惠计算,则【可打折金额】和【不可打折金额】都无需传入。 | 8.88 |
store_id | String | 可选 | 32 | 商户门店编号。 指商户创建门店时输入的门店编号。 | NJ_001 |
operator_id | String | 可选 | 28 | 商户操作员编号。 | Yx_001 |
terminal_id | String | 可选 | 32 | 商户机具终端编号。 | NJ_T_001 |
alipay_store_id | String | 可选 | 32 | 支付宝店铺编号。 指商户创建门店后支付宝生成的 门店ID。 | 2016041400077000000003314986 |
enable_pay_channels | String | 可选 | 128 | 指定支付渠道。 用户只能使用指定的渠道进行支付,多个渠道以逗号分割。 与disable_pay_channels互斥,支持传入的值:渠道列表。 注:如果传入了指定支付渠道,则用户只能用指定内的渠道支付,包括营销渠道也要指定才能使用。该参数可能导致用户支付受限,慎用。 | pcredit,moneyFund,debitCardExpress |
disable_pay_channels | String | 可选 | 128 | 禁用渠道,用户不可用指定渠道支付,多个渠道以逗号分割 注,与enable_pay_channels互斥 渠道列表 | pcredit,moneyFund,debitCardExpress |
merchant_order_no | String | 可选 | 32 | 商户的原始订单号 | 20161008001 |
ext_user_info | ExtUserInfo | 可选 | 外部指定买家 | ||
logistics_detail | LogisticsDetail | 可选 | 物流信息 | ||
receiver_address_info | ReceiverAddressInfo | 可选 | 收货人及地址信息 | ||
query_options | String[] | 可选 | 1024 | 返回参数选项。 商户通过传递该参数来定制需要额外返回的信息字段,数组格式。包括但不限于:["enterprise_pay_info","hyb_amount"]枚举值因公付金额信息: enterprise_pay_info惠营宝回票金额信息: hyb_amount | ["enterprise_pay_info","hyb_amount"] |
bkagent_req_info | BkAgentReqInfo | 可选 | 间联交易下,由收单机构上送的信息 |
公共响应参数
参数 | 类型 | 是否必选 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|
code | String | 必选 | - | 网关返回码,详见文档 | 40004 |
msg | String | 必选 | - | 网关返回码描述,详见文档 | Business Failed |
sub_code | String | 可选 | - | 业务返回码,参见具体的API接口文档 | ACQ.TRADE_HAS_SUCCESS |
sub_msg | String | 可选 | - | 业务返回码描述,参见具体的API接口文档 | 交易已被支付 |
sign | String | 必选 | - | 签名,详见文档 | DZXh8eeTuAHoYE3w1J+POiPhfDxOYBfUNn1lkeT/V7P4zJdyojWEa6IZs6Hz0yDW5Cp/viufUb5I0/V5WENS3OYR8zRedqo6D+fUTdLHdc+EFyCkiQhBxIzgngPdPdfp1PIS7BdhhzrsZHbRqb7o4k3Dxc+AAnFauu4V6Zdwczo= |
响应参数
参数 | 类型 | 是否必选 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|
out_trade_no | String | 必选 | 64 | 商户订单号 | 20150423001001 |
trade_no | String | 必选 | 64 | 支付宝交易号 | 2015042321001004720200028594 |
请求示例
响应示例
{
"alipay_trade_create_response": {
"code": "10000",
"msg": "Success",
"trade_no": "2015042321001004720200028594",
"out_trade_no": "20150423001001"
},
"sign": "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}
异常示例
{
"alipay_trade_create_response": {
"code": "20000",
"msg": "Service Currently Unavailable",
"sub_code": "isp.unknow-error",
"sub_msg": "系统繁忙"
},
"sign": "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}
错误码
公共错误码
业务错误码
错误码 | 错误描述 | 解决方案 |
---|---|---|
ACQ.ACCESS_FORBIDDEN | 无权限使用接口 | 未签约对应的产品合约; 1、请校验传入的product_code参数是否正确; 2、确认请求商户是否签约了对应的产品合约; |
ACQ.BEYOND_PER_RECEIPT_SINGLE_RESTRICTION | 订单金额超过单笔限额 | 联系支付宝小二提高限额(联系电话:4007585858) |
ACQ.BIZ_PRODUCT_NOT_ALLOWED | 公域订单场景下不支持使用该产品码 | 公域场交易需要切换使用JSAPI支付产品。1、请确认签约JSAPI支付产品;2、product_code改成JSAPI_PAY产品码 |
ACQ.BUYER_ENABLE_STATUS_FORBID | 买家状态非法 | 用户联系支付宝小二,确认买家状态为什么非法 |
ACQ.BUYER_NOT_EXIST | 买家不存在 | 确认买家账号信息传递 是否正确,如果正确可联系支付宝小二,确认买家账号是否已经注销 |
ACQ.BUYER_SELLER_EQUAL | 买卖家不能相同 | 更换买家重新付款 |
ACQ.CONTEXT_INCONSISTENT | 交易信息被篡改 | 更换商家订单号后,重新发起请求 |
ACQ.CUSTOMER_VALIDATE_ERROR | 客户校验出错 | 请确认结算账号是否完成实名信息认证,如还有问题联系支付宝小二处理 |
ACQ.DEFAULT_SETTLE_RULE_NOT_EXIST | 默认结算条款不存在 | 请确认二级商户进件是已经设置了默认结算账户 |
ACQ.ERROR_BUYER_CERTIFY_LEVEL_LIMIT | 买家未通过人行认证 | 让用户联系支付宝小二并更换其它付款方式 |
ACQ.ERROR_SELLER_CERTIFY_LEVEL_LIMIT | 卖家未通过人行认证 | 根据国家相关法规要求,收款账户资金变动超过一定数额,需补充实名认证资料后,才能进行收付款 |
ACQ.EXIST_FORBIDDEN_WORD | 订单信息中包含违禁词 | 修改订单信息后,重新发起请求 |
ACQ.ILLEGAL_ARGUMENT | 参数错误 | 请确认请求传参是否正确 |
ACQ.INVALID_PARAMETER | 参数无效 | 检查请求参数,修改后重新发起请求 |
ACQ.INVALID_RECEIVE_ACCOUNT | 收款账户不支持 | 确认seller_id信息是否传递正确,如正确请确认seller_id是否在签约中设置了收款权限 |
ACQ.INVALID_STORE_ID | 商户门店编号无效 | 检查传入的门店编号是否有效 |
ACQ.MERCHANT_PERM_RECEIPT_DAY_LIMIT | 超过单日累计收款额度 | 联系支付宝小二处理(联系电话:4007585858) |
ACQ.MERCHANT_PERM_RECEIPT_SINGLE_LIMIT | 超过单笔收款限额 | 联系支付宝小二处理(联系电话:4007585858) |
ACQ.MERCHANT_PERM_RECEIPT_SUSPEND_LIMIT | 商户暂停收款 | 联系支付宝小二处理(联系电话:4007585858) |
ACQ.MERCHANT_STATUS_NOT_NORMAL | 商户状态异常 | 因商户超过三个月未产生交易,需重新激活后可正常收单。1、进入支付宝商家中心,重新确认激活商家信息 或2、联系支付宝小二处理(联系电话:4007585858) |
ACQ.NOT_SUPPORT_PAYMENT_INST | 不支持的钱包版本 | 业务不支持使用该客户端支付,建议买家更换客户端进行支付或者更换其它付款方式 |
ACQ.NOW_TIME_AFTER_EXPIRE_TIME_ERROR | 当前时间已超过允许支付的时间 | 请检查传入的支付超时时间是否正确 |
ACQ.OPEN_ID_NOT_TINY_APP | 请求的应用id非小程序应用类型 | 1、接口需要传入op_app_id,且该应用id是小程序应用类型; 2、商户需要先在商家平台-产品中心-JSAPI支付产品页面 关联该小程序AppID; 3、如果未传入op_app_id,则默认发起请求的appId即唤起收银台所在的小程序应用ID,该appId需要是小程序应用类型。 |
ACQ.PARTNER_ERROR | 应用APP_ID填写错误 | 联系支付宝小二,确认APP_ID的状态 |
ACQ.PAYER_UNMATCHED | 付款人不匹配 | 建议用户更换为指定的支付宝账号进行支付 |
ACQ.PLATFORM_BUSINESS_ACQUIRE_MODE_MUST_MERCHANT_ID | 二级商户编码为空 | 请检查是否正确传入二级商户编号 |
ACQ.PRODUCT_NOT_SUPPORT_IN_TINY_APP | 小程序内不支持使用该产品码交易 | 1、请确认签约JSAPI支付产品;2、product_code改成JSAPI_PAY产品码 |
ACQ.RISK_MERCHANT_IP_NOT_EXIST | 当前交易未传入IP信息,创单失败,请传入IP后再发起支付 | 检查请求参数是否已经传入用户IP信息 |
ACQ.SECONDARY_MERCHANT_ALIPAY_ACCOUNT_INVALID | 二级商户账户异常 | 确认传入的二级商户结算账户是否与进件时设置的结算账户一致,如果一致可联系支付宝小二确认是否商户的账号信息有变更 |
ACQ.SECONDARY_MERCHANT_CARD_ALIAS_NO_INVALID | 二级商户银行卡编号错误 | 请确认是否正确传入二级商户的银行卡信息,以及银行卡信息是否与商户进件是设置的卡信息一致 |
ACQ.SECONDARY_MERCHANT_ID_BLANK | 二级商户编号错误 | 请检查是否正确传入二级商户编号 |
ACQ.SECONDARY_MERCHANT_ID_INVALID | 二级商户不存在 | 请检查传入的二级商户编号是否正确 |
ACQ.SECONDARY_MERCHANT_ISV_PUNISH_INDIRECT | 商户状态异常 | 请联系对应的服务商咨询 |
ACQ.SECONDARY_MERCHANT_NOT_MATCH | 二级商户信息不匹配 | 1、请检查发起支付请求的二级商户账号是否正确或是否进件; 2、如果使用的是直付通平台商模式,请确认是否签约了直付通收单模式; |
ACQ.SECONDARY_MERCHANT_STATUS_ERROR | 二级商户状态异常 | 请联系对应的服务商咨询 |
ACQ.SELLER_BEEN_BLOCKED | 商家账号被冻结 | 联系支付宝小二,解冻账号 |
ACQ.SELLER_NOT_EXIST | 卖家不存在 | 确认卖家信息是否传递正确 |
ACQ.STORE_INFO_INVALID | 门店信息错误 | 请校验传入的结算门店信息是否正确 |
ACQ.SUB_GOODS_SIZE_MAX_COUNT | 子商品明细超长 | 请检查子商品明细是否超过了150条 |
ACQ.SUB_MERCHANT_CREATE_FAIL | 二级商户创建失败 | 检查上送的二级商户信息是否有效 |
ACQ.SUB_MERCHANT_TYPE_INVALID | 二级商户类型非法 | 检查上传的二级商户类型是否有效 |
ACQ.SYSTEM_ERROR | 接口返回错误 | 请立即调用查询订单API,查询当 前订单的状态,并根据订单状态决定下一步的操作 |
ACQ.TOTAL_FEE_EXCEED | 订单总金额超过限额 | 修改订单金额再发起请求 |
ACQ.TRADE_BUYER_NOT_MATCH | 交易买家不匹配 | 更换商家订单号后,重新发起请求 |
ACQ.TRADE_HAS_CLOSE | 交易已经关闭 | 更换商家订单号后,重新发起请求 |
ACQ.TRADE_HAS_SUCCESS | 交易已被支付 | 确认该笔交易信息是否为当前买家的,如果是则认为交易付款成功,如果不是则更换商家订单号后,重新发起请求 |
ACQ.TRADE_SETTLE_ERROR | 交易结算异常 | 请检查传入的结算项信息是否正确,如果正确请联系支付宝小二 |
ACQ.UNBOUND_APPLICATION | 未绑定小程序appId | 1、确认op_app_id为唤起收银台支付的小程序appId;2、商户需要先在商家平台-产品中心-JSAPI支付产品页面 关联该小程序AppID |
ACQ.USER_LOGONID_DUP | 用户账号重复 | 用户手机账户名与他人重复,无法进行收付款。为了保障资金安全,建议您通知对方修改账户名,并与对方核对后更新对方账户名 |
触发通知类型
通知类型 | 描述 | 默认开启 |
---|---|---|
tradeStatus.TRADE_CLOSED | 交易关闭 | 0 |
tradeStatus.TRADE_FINISHED | 交易完结 | 0 |
tradeStatus.TRADE_SUCCESS | 支付成功 | 1 |
tradeStatus.WAIT_BUYER_PAY | 交易创建 | 0 |
触发通知示例