alipay.trade.page.pay(统一收单下单并支付页面接口)

PC场景下单并支付

公共参数

请求地址

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

公共请求参数

参数 类型 是否必填最大长度描述示例值
app_id String 32 支付宝分配给开发者的应用ID 2014072300007148
method String 128 接口名称 alipay.trade.page.pay
format String 40 仅支持JSON JSON
return_url String 256 HTTP/HTTPS开头字符串 https://m.alipay.com/Gk8NF23
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
product_code String 必选 64 销售产品码,与支付宝签约的产品码名称。
注:目前仅支持FAST_INSTANT_TRADE_PAY
FAST_INSTANT_TRADE_PAY
total_amount Price 必选 11 订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]。 88.88
subject String 必选 256 订单标题 Iphone6 16G
body String 可选 128 订单描述 Iphone6 16G
time_expire String 可选 32 绝对超时时间,格式为yyyy-MM-dd HH:mm 2016-12-31 10:05
goods_detail GoodsDetail[] 可选 订单包含的商品列表信息,json格式,其它说明详见商品明细说明
goods_id String 必填 32 商品的编号 apple-01
alipay_goods_id String 可选 32 支付宝定义的统一商品编号 20010001
goods_name String 必填 256 商品名称 ipad
quantity Number 必填 10 商品数量 1
price Price 必填 9 商品单价,单位为元 2000
goods_category String 可选 24 商品类目 34543238
body String 可选 1000 商品描述信息 特价手机
show_url String 可选 400 商品的展示地址 http://www.alipay.com/xxx.jpg
passback_params String 可选 512 公用回传参数,如果请求时传递了该参数,则返回给商户时会回传该参数。支付宝只会在同步返回(包括跳转回商户网站)和异步通知时将该参数原样返回。本参数必须进行UrlEncode之后才可以发送给支付宝。 merchantBizType%3d3C%26merchantBizNo%3d2016010101111
extend_params ExtendParams 可选 业务扩展参数
sys_service_provider_id String 可选 64 系统商编号
该参数作为系统商返佣数据提取的依据,请填写系统商签约协议的PID
2088511833207846
hb_fq_num String 可选 5 使用花呗分期要进行的分期数 3
hb_fq_seller_percent String 可选 3 使用花呗分期需要卖家承担的手续费比例的百分值,传入100代表100% 100
industry_reflux_info String 可选 512 行业数据回流信息, 详见:地铁支付接口参数补充说明 {\"scene_code\":\"metro_tradeorder\",\"channel\":\"xxxx\",\"scene_data\":{\"asset_name\":\"ALIPAY\"}}
card_type String 可选 32 卡类型 S0JP0000
goods_type String 可选 2 商品主类型 :0-虚拟类商品,1-实物类商品
注:虚拟类商品不支持使用花呗渠道
0
timeout_express String 可选 6 该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m 90m
promo_params String 可选 512 优惠参数
注:仅与支付宝协商后可用
{"storeIdType":"1"}
royalty_info RoyaltyInfo 可选 描述分账信息,json格式,详见分账参数说明
royalty_type String 可选 150 分账类型
卖家的分账类型,目前只支持传入ROYALTY(普通分账类型)。
ROYALTY
royalty_detail_infos RoyaltyDetailInfos[] 必填 2500 分账明细的信息,可以描述多条分账指令,json数组。
serial_no Number 可选 9 分账序列号,表示分账执行的顺序,必须为正整数 1
trans_in_type String 可选 24 接受分账金额的账户类型:
 userId:支付宝账号对应的支付宝唯一用户号。
 bankIndex:分账到银行账户的银行编号。目前暂时只支持分账到一个银行编号。
storeId:分账到门店对应的银行卡编号。
默认值为userId。
userId
batch_no String 必填 32 分账批次号
分账批次号。
目前需要和转入账号类型为bankIndex配合使用。
123
out_relation_id String 可选 64 商户分账的外部关联号,用于关联到每一笔分账信息,商户需保证其唯一性。
如果为空,该值则默认为“商户网站唯一订单号+分账序列号”
20131124001
trans_out_type String 必填 24 要分账的账户类型。
目前只支持userId:支付宝账号对应的支付宝唯一用户号。
默认值为userId。
userId
trans_out String 必填 16 如果转出账号类型为userId,本参数为要分账的支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字。 2088101126765726
trans_in String 必填 28 如果转入账号类型为userId,本参数为接受分账金额的支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字。
 如果转入账号类型为bankIndex,本参数为28位的银行编号(商户和支付宝签约时确定)。
如果转入账号类型为storeId,本参数为商户的门店ID。
2088101126708402
amount Number 必填 9 分账的金额,单位为元 0.1
desc String 可选 1000 分账描述信息 分账测试1
amount_percentage String 可选 3 分账的比例,值为20代表按20%的比例分账 100
sub_merchant SubMerchant 可选 间连受理商户信息体,当前只对特殊银行机构特定场景下使用此字段
merchant_id String 必填 11 间连受理商户的支付宝商户编号,通过间连商户入驻后得到。间连业务下必传,并且需要按规范传递受理商户编号。 19023454
merchant_type String 可选 32 商户id类型, alipay: 支付宝分配的间连商户编号, merchant: 商户端的间连商户编号
enable_pay_channels String 可选 128 可用渠道,用户只能在指定渠道范围内支付,多个渠道以逗号分割
注,与disable_pay_channels互斥
渠道列表:https://docs.open.alipay.com/common/wifww7
pcredit,moneyFund,debitCardExpress
store_id String 可选 32 商户门店编号 NJ_001
disable_pay_channels String 可选 128 禁用渠道,用户不可用指定渠道支付,多个渠道以逗号分割
注,与enable_pay_channels互斥
渠道列表:https://docs.open.alipay.com/common/wifww7
pcredit,moneyFund,debitCardExpress
qr_pay_mode String 可选 2 PC扫码支付的方式,支持前置模式和

跳转模式。
前置模式是将二维码前置到商户
的订单确认页的模式。需要商户在
自己的页面中以 iframe 方式请求
支付宝页面。具体分为以下几种:
0:订单码-简约前置模式,对应 iframe 宽度不能小于600px,高度不能小于300px;
1:订单码-前置模式,对应iframe 宽度不能小于 300px,高度不能小于600px;
3:订单码-迷你前置模式,对应 iframe 宽度不能小于 75px,高度不能小于75px;
4:订单码-可定义宽度的嵌入式二维码,商户可根据需要设定二维码的大小。

跳转模式下,用户的扫码界面是由支付宝生成的,不在商户的域名下。
2:订单码-跳转模式
1
qrcode_width Number 可选 4 商户自定义二维码宽度
注:qr_pay_mode=4时该参数生效
100
settle_info SettleInfo 可选 描述结算信息,json格式,详见结算参数说明
settle_detail_infos SettleDetailInfo[] 必填 10 结算详细信息,json数组,目前只支持一条。
trans_in_type String 必填 64 结算收款方的账户类型。

cardSerialNo:结算收款方的银行卡编号;

userId:表示是支付宝账号对应的支付宝唯一用户号;
loginName:表示是支付宝登录号;
cardSerialNo
trans_in String 必填 64 结算收款方。当结算收款方类型是cardSerialNo时,本参数为用户在支付宝绑定的卡编号;结算收款方类型是userId时,本参数为用户的支付宝账号对应的支付宝唯一用户号,以2088开头的纯16位数字;当结算收款方类型是loginName时,本参数为用户的支付宝登录号 A0001
summary_dimension String 可选 64 结算汇总维度,按照这个维度汇总成批次结算,由商户指定。

目前需要和结算收款方账户类型为cardSerialNo配合使用
A0001
settle_entity_id String 可选 64 结算主体标识。当结算主体类型为SecondMerchant时,为二级商户的SecondMerchantID;当结算主体类型为Store时,为门店的外标。 2088xxxxx;ST_0001
settle_entity_type String 可选 32 结算主体类型。
二级商户:SecondMerchant;商户或者直连商户门店:Store
SecondMerchant、Store
amount Number 必填 9 结算的金额,单位为元。目前必须和交易金额相同 0.1
invoice_info InvoiceInfo 可选 开票信息
key_info InvoiceKeyInfo 必填 200 开票关键信息
is_support_invoice Boolean 必填 5 该交易是否支持开票 true
invoice_merchant_name String 必填 80 开票商户名称:商户品牌简称|商户门店简称 ABC|003
tax_num String 必填 30 税号 1464888883494
details String 必填 400 开票内容
注:json数组格式
[{"code":"100294400","name":"服饰","num":"2","sumPrice":"200.00","taxRate":"6%"}]
agreement_sign_params AgreementSignParams 可选 签约参数,支付后签约场景使用
personal_product_code String 必填 64 个人签约产品码,商户和支付宝签约时确定。 GENERAL_WITHHOLDING_P
sign_scene String 可选 64 协议签约场景,商户和支付宝签约时确定。
当传入商户签约号external_agreement_no时,场景不能为默认值DEFAULT|DEFAULT。
INDUSTRY|CARRENTAL
external_agreement_no String 可选 32 商户签约号,代扣协议中标示用户的唯一签约号(确保在商户系统中唯一)。
格式规则:支持大写小写字母和数字,最长32位。
商户系统按需传入,如果同一用户在同一产品码、同一签约场景下,签订了多份代扣协议,那么需要指定并传入该值。
test
external_logon_id String 可选 100 用户在商户网站的登录账号,用于在签约页面展示,如果为空,则不展示 13852852877
sign_validity_period String 可选 8 当前用户签约请求的协议有效周期。
整形数字加上时间单位的协议有效期,从发起签约请求的时间开始算起。
目前支持的时间单位:
1. d:天
2. m:月
如果未传入,默认为长期有效。
2m
third_party_type String 可选 32 签约第三方主体类型。对于三方协议,表示当前用户和哪一类的第三方主体进行签约。
取值范围:
1. PARTNER(平台商户);
2. MERCHANT(集团商户),集团下子商户可共享用户签约内容;
默认为PARTNER。
PARTNER
buckle_app_id String 可选 64 商户在芝麻端申请的appId 1001164
buckle_merchant_id String 可选 64 商户在芝麻端申请的merchantId 268820000000414397785
promo_params String 可选 512 签约营销参数,此值为json格式;具体的key需与营销约定 {"key","value"}
integration_type String 可选 16 请求后页面的集成方式。
取值范围:
1. ALIAPP:支付宝钱包内
2. PCWEB:PC端访问
默认值为PCWEB。
PCWEB
request_from_url String 可选 256 请求来源地址。如果使用ALIAPP的集成方式,用户中途取消支付会返回该地址。 https://
business_params String 可选 512 商户传入业务信息,具体值要和支付宝约定,应用于安全,营销等参数直传场景,格式为json格式 {"data":"123"}
ext_user_info ExtUserInfo 可选 外部指定买家
name String 可选 16 姓名

注: need_check_info=T时该参数才有效
李明
mobile String 可选 20 手机号
注:该参数暂不校验
16587658765
cert_type String 可选 32 身份证:IDENTITY_CARD、护照:PASSPORT、军官证:OFFICER_CARD、士兵证:SOLDIER_CARD、户口本:HOKOU等。如有其它类型需要支持,请与蚂蚁金服工作人员联系。

注: need_check_info=T时该参数才有效
IDENTITY_CARD
cert_no String 可选 64 证件号

注:need_check_info=T时该参数才有效
362334768769238881
min_age String 可选 3 允许的最小买家年龄,买家年龄必须大于等于所传数值
注:
1. need_check_info=T时该参数才有效
2. min_age为整数,必须大于等于0
18
fix_buyer String 可选 8 是否强制校验付款人身份信息
T:强制校验,F:不强制
F
need_check_info String 可选 1 是否强制校验身份信息
T:强制校验,F:不强制
F

响应参数

参数 类型 是否必填 最大长度 描述 示例值
trade_no String 必填 64 支付宝交易号 2013112011001004330000121536
out_trade_no String 必填 64 商户订单号 6823789339978248
seller_id String 必填 16 收款支付宝账号对应的支付宝唯一用户号。
以2088开头的纯16位数字
2088111111116894
total_amount Price 必填 11 交易金额 128.00

请求示例

AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2");
AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();
request.setBizContent("{" +
"\"out_trade_no\":\"20150320010101001\"," +
"\"product_code\":\"FAST_INSTANT_TRADE_PAY\"," +
"\"total_amount\":88.88," +
"\"subject\":\"Iphone6 16G\"," +
"\"body\":\"Iphone6 16G\"," +
"\"time_expire\":\"2016-12-31 10:05\"," +
"      \"goods_detail\":[{" +
"        \"goods_id\":\"apple-01\"," +
"\"alipay_goods_id\":\"20010001\"," +
"\"goods_name\":\"ipad\"," +
"\"quantity\":1," +
"\"price\":2000," +
"\"goods_category\":\"34543238\"," +
"\"body\":\"特价手机\"," +
"\"show_url\":\"http://www.alipay.com/xxx.jpg\"" +
"        }]," +
"\"passback_params\":\"merchantBizType%3d3C%26merchantBizNo%3d2016010101111\"," +
"\"extend_params\":{" +
"\"sys_service_provider_id\":\"2088511833207846\"," +
"\"hb_fq_num\":\"3\"," +
"\"hb_fq_seller_percent\":\"100\"," +
"\"industry_reflux_info\":\"{\\\\\\\"scene_code\\\\\\\":\\\\\\\"metro_tradeorder\\\\\\\",\\\\\\\"channel\\\\\\\":\\\\\\\"xxxx\\\\\\\",\\\\\\\"scene_data\\\\\\\":{\\\\\\\"asset_name\\\\\\\":\\\\\\\"ALIPAY\\\\\\\"}}\"," +
"\"card_type\":\"S0JP0000\"" +
"    }," +
"\"goods_type\":\"0\"," +
"\"timeout_express\":\"90m\"," +
"\"promo_params\":\"{\\\"storeIdType\\\":\\\"1\\\"}\"," +
"\"royalty_info\":{" +
"\"royalty_type\":\"ROYALTY\"," +
"        \"royalty_detail_infos\":[{" +
"          \"serial_no\":1," +
"\"trans_in_type\":\"userId\"," +
"\"batch_no\":\"123\"," +
"\"out_relation_id\":\"20131124001\"," +
"\"trans_out_type\":\"userId\"," +
"\"trans_out\":\"2088101126765726\"," +
"\"trans_in\":\"2088101126708402\"," +
"\"amount\":0.1," +
"\"desc\":\"分账测试1\"," +
"\"amount_percentage\":\"100\"" +
"          }]" +
"    }," +
"\"sub_merchant\":{" +
"\"merchant_id\":\"19023454\"," +
"\"merchant_type\":\"alipay: 支付宝分配的间连商户编号, merchant: 商户端的间连商户编号\"" +
"    }," +
"\"enable_pay_channels\":\"pcredit,moneyFund,debitCardExpress\"," +
"\"store_id\":\"NJ_001\"," +
"\"disable_pay_channels\":\"pcredit,moneyFund,debitCardExpress\"," +
"\"qr_pay_mode\":\"1\"," +
"\"qrcode_width\":100," +
"\"settle_info\":{" +
"        \"settle_detail_infos\":[{" +
"          \"trans_in_type\":\"cardSerialNo\"," +
"\"trans_in\":\"A0001\"," +
"\"summary_dimension\":\"A0001\"," +
"\"settle_entity_id\":\"2088xxxxx;ST_0001\"," +
"\"settle_entity_type\":\"SecondMerchant、Store\"," +
"\"amount\":0.1" +
"          }]" +
"    }," +
"\"invoice_info\":{" +
"\"key_info\":{" +
"\"is_support_invoice\":true," +
"\"invoice_merchant_name\":\"ABC|003\"," +
"\"tax_num\":\"1464888883494\"" +
"      }," +
"\"details\":\"[{\\\"code\\\":\\\"100294400\\\",\\\"name\\\":\\\"服饰\\\",\\\"num\\\":\\\"2\\\",\\\"sumPrice\\\":\\\"200.00\\\",\\\"taxRate\\\":\\\"6%\\\"}]\"" +
"    }," +
"\"agreement_sign_params\":{" +
"\"personal_product_code\":\"GENERAL_WITHHOLDING_P\"," +
"\"sign_scene\":\"INDUSTRY|CARRENTAL\"," +
"\"external_agreement_no\":\"test\"," +
"\"external_logon_id\":\"13852852877\"," +
"\"sign_validity_period\":\"2m\"," +
"\"third_party_type\":\"PARTNER\"," +
"\"buckle_app_id\":\"1001164\"," +
"\"buckle_merchant_id\":\"268820000000414397785\"," +
"\"promo_params\":\"{\\\"key\\\",\\\"value\\\"}\"" +
"    }," +
"\"integration_type\":\"PCWEB\"," +
"\"request_from_url\":\"https://\"," +
"\"business_params\":\"{\\\"data\\\":\\\"123\\\"}\"," +
"\"ext_user_info\":{" +
"\"name\":\"李明\"," +
"\"mobile\":\"16587658765\"," +
"\"cert_type\":\"IDENTITY_CARD\"," +
"\"cert_no\":\"362334768769238881\"," +
"\"min_age\":\"18\"," +
"\"fix_buyer\":\"F\"," +
"\"need_check_info\":\"F\"" +
"    }" +
"  }");
AlipayTradePagePayResponse response = alipayClient.pageExecute(request);
if(response.isSuccess()){
System.out.println("调用成功");
} else {
System.out.println("调用失败");
}

响应示例

{
    "alipay_trade_page_pay_response": {
        "code": "10000",
        "msg": "Success",
        "trade_no": "2013112011001004330000121536",
        "out_trade_no": "6823789339978248",
        "seller_id": "2088111111116894",
        "total_amount": 128
    },
    "sign": "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}

异常示例

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

业务错误码

公共错误码

错误码错误描述解决方案
ACQ.SYSTEM_ERROR 接口返回错误 请立即调用查询订单API,查询当前订单的状态,并根据订单状态决定下一步的操作,如果多次调用依然报此错误码,请联系支付宝客服。
ACQ.INVALID_PARAMETER 参数无效 检查请求参数,修改后重新发起请求
ACQ.ACCESS_FORBIDDEN 无权限使用接口 未签约条码支付或者合同已到期
ACQ.EXIST_FORBIDDEN_WORD 订单信息中包含违禁词 修改订单信息后,重新发起请求
ACQ.PARTNER_ERROR 应用APP_ID填写错误 联系支付宝小二<a href="https://support.open.alipay.com/alipay/support/index.htm">点这里</a>,确认APP_ID的状态
ACQ.TOTAL_FEE_EXCEED 订单总金额不在允许范围内 修改订单金额再发起请求
ACQ.CONTEXT_INCONSISTENT 交易信息被篡改 更换商家订单号后,重新发起请求
ACQ.TRADE_HAS_SUCCESS 交易已被支付 确认该笔交易信息是否为当前买家的,如果是则认为交易付款成功,如果不是则更换商家订单号后,重新发起请求
ACQ.TRADE_HAS_CLOSE 交易已经关闭 更换商家订单号后,重新发起请求
ACQ.BUYER_BALANCE_NOT_ENOUGH 买家余额不足 买家绑定新的银行卡或者支付宝余额有钱后再发起支付
ACQ.BUYER_BANKCARD_BALANCE_NOT_E 用户银行卡余额不足 建议买家更换支付宝进行支付或者更换其它付款方式
ACQ.ERROR_BALANCE_PAYMENT_DISABL 余额支付功能关闭 用户打开余额支付开关后,再重新进行支付
ACQ.BUYER_SELLER_EQUAL 买卖家不能相同 更换买家重新付款
ACQ.TRADE_BUYER_NOT_MATCH 交易买家不匹配 更换商家订单号后,重新发起请求
ACQ.BUYER_ENABLE_STATUS_FORBID 买家状态非法 用户联系支付宝小二<a href="https://support.open.alipay.com/alipay/support/index.htm">点这里</a>,确认买家状态为什么非法
ACQ.PAYMENT_FAIL 支付失败 用户刷新条码后,重新发起请求,如果重试一次后仍未成功,更换其它方式付款
ACQ.BUYER_PAYMENT_AMOUNT_DAY_LIM 买家付款日限额超限 更换买家进行支付
ACQ.BUYER_PAYMENT_AMOUNT_MONTH_L 买家付款月额度超限 买家更换账号后,重新付款或者更换其它付款方式
ACQ.ERROR_BUYER_CERTIFY_LEVEL_LI 买家未通过人行认证 用户联系支付宝小二<a href="https://support.open.alipay.com/alipay/support/index.htm">点这里</a>
ACQ.PAYMENT_REQUEST_HAS_RISK 支付有风险 更换其它付款方式
ACQ.NO_PAYMENT_INSTRUMENTS_AVAIL 没用可用的支付工具 更换其它付款方式
ACQ.ILLEGAL_SIGN_VALIDTY_PERIOD 无效的签约有效期 更改接口中传入的签约有效期
ACQ.MERCHANT_AGREEMENT_NOT_EXIST 商户协议不存在 建议商户与支付宝确认签约代扣合同

触发通知类型

通知类型描述默认开启
tradeStatus.TRADE_CLOSED 交易关闭 0
tradeStatus.TRADE_FINISHED 交易完结 0
tradeStatus.TRADE_SUCCESS 支付成功 1
tradeStatus.WAIT_BUYER_PAY 交易创建 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=&trade_no=null&app_id=null&out_trade_no=null&out_biz_no=null&buyer_id=null&seller_id=null&trade_status=null&total_amount=null&refund_fee=null&subject=null&body=null&gmt_create=null&gmt_payment=null&gmt_refund=null&gmt_close=null&fund_bill_list=null&receipt_amount=null&invoice_amount=null&buyer_pay_amount=null&point_amount=null&voucher_detail_list=null&passback_params=null&out_channel_type=null
onlineServer