alipay.trade.app.pay(app支付接口2.0) 在线调试(沙箱环境)

外部商户APP唤起快捷SDK创建订单并支付

公共参数

请求地址

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

公共请求参数

参数 类型 是否必填最大长度描述示例值
app_id String 32 支付宝分配给开发者的应用ID 2014072300007148
method String 128 接口名称 alipay.trade.app.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 请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档

请求参数

参数 类型 是否必填 最大长度 描述 示例值
timeout_express String 可选 6 该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m。 90m
total_amount String 必选 9 订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000] 9.00
product_code String 可选 64 销售产品码,商家和支付宝签约的产品码 QUICK_MSECURITY_PAY
body String 可选 128 对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。 Iphone6 16G
subject String 必选 256 商品的标题/交易标题/订单标题/订单关键字等。 大乐透
out_trade_no String 必选 64 商户网站唯一订单号 70501111111S001111119
time_expire String 可选 32 绝对超时时间,格式为yyyy-MM-dd HH:mm。 2016-12-31 10:05
goods_type String 可选 2 商品主类型 :0-虚拟类商品,1-实物类商品 0
promo_params String 可选 512 优惠参数
注:仅与支付宝协商后可用
{"storeIdType":"1"}
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
merchant_order_no String 可选 32 商户原始订单号,最大长度限制32位 20161008001
enable_pay_channels String 可选 128 可用渠道,用户只能在指定渠道范围内支付
当有多个渠道时用“,”分隔
注,与disable_pay_channels互斥
pcredit,moneyFund,debitCardExpress
store_id String 可选 32 商户门店编号 NJ_001
specified_channel String 可选 128 指定渠道,目前仅支持传入pcredit
若由于用户原因渠道不可用,用户可选择是否用其他渠道支付。
注:该参数不可与花呗分期参数同时传入
pcredit
disable_pay_channels String 可选 128 禁用渠道,用户不可用指定渠道支付
当有多个渠道时用“,”分隔
注,与enable_pay_channels互斥
pcredit,moneyFund,debitCardExpress
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
business_params String 可选 512 商户传入业务信息,具体值要和支付宝约定,应用于安全,营销等参数直传场景,格式为json格式 {"data":"123"}
agreement_sign_params SignParams 可选 签约参数。如果希望在sdk中支付并签约,需要在这里传入签约信息。
personal_product_code String 必填 64 个人签约产品码,商户和支付宝签约时确定。 CYCLE_PAY_AUTH_P
sign_scene String 必填 64 协议签约场景,商户和支付宝签约时确定,商户可咨询技术支持。 INDUSTRY|DIGITAL_MEDIA
external_agreement_no String 可选 32 商户签约号,代扣协议中标示用户的唯一签约号(确保在商户系统中唯一)。 格式规则:支持大写小写字母和数字,最长32位。 商户系统按需传入,如果同一用户在同一产品码、同一签约场景下,签订了多份代扣协议,那么需要指定并传入该值。 test20190701
external_logon_id String 可选 100 用户在商户网站的登录账号,用于在签约页面展示,如果为空,则不展示 13852852877
access_params AccessParams 必填 请按当前接入的方式进行填充,且输入值必须为文档中的参数取值范围。
channel String 必填 20 目前支持以下值:
1. ALIPAYAPP (钱包h5页面签约)
2. QRCODE(扫码签约)
3. QRCODEORSMS(扫码签约或者短信签约)
ALIPAYAPP
sub_merchant SignMerchantParams 可选 此参数用于传递子商户信息,无特殊需求时不用关注。目前商户代扣、海外代扣、淘旅行信用住产品支持传入该参数(在销售方案中“是否允许自定义子商户信息”需要选是)。
sub_merchant_id String 可选 20 子商户的商户id 2088123412341234
sub_merchant_name String 可选 50 子商户的商户名称 滴滴出行
sub_merchant_service_name String 可选 50 子商户的服务名称 滴滴出行免密支付
sub_merchant_service_description String 可选 150 子商户的服务描述 免密付车费,单次最高500
period_rule_params PeriodRuleParams 可选 周期管控规则参数period_rule_params,在签约周期扣款产品(如CYCLE_PAY_AUTH_P)时必传,在签约其他产品时无需传入。 周期扣款产品,会按照这里传入的参数提示用户,并对发起扣款的时间、金额、次数等做相应限制。
period_type String 必填 20 周期类型period_type是周期扣款产品必填,枚举值为DAY和MONTH。
DAY即扣款周期按天计,MONTH代表扣款周期按自然月。
与另一参数period组合使用确定扣款周期,例如period_type为DAY,period=30,则扣款周期为30天;period_type为MONTH,period=3,则扣款周期为3个自然月。
自然月是指,不论这个月有多少天,周期都计算到月份中的同一日期。例如1月3日到2月3日为一个自然月,1月3日到4月3日为三个自然月。注意周期类型使用MONTH的时候,计划扣款时间execute_time不允许传28日之后的日期(可以传28日),以此避免有些月份可能不存在对应日期的情况。
DAY
period Number 必填 8 周期数period是周期扣款产品必填。与另一参数period_type组合使用确定扣款周期,例如period_type为DAY,period=90,则扣款周期为90天。 3
execute_time String 必填 16 首次执行时间execute_time是周期扣款产品必填,即商户发起首次扣款的时间。精确到日,格式为yyyy-MM-dd
结合其他必填的扣款周期参数,会确定商户以后的扣款计划。发起扣款的时间需符合这里的扣款计划。
2019-01-23
single_amount Price 必填 32 单次扣款最大金额single_amount是周期扣款产品必填,即每次发起扣款时限制的最大金额,单位为元。商户每次发起扣款都不允许大于此金额。 10.99
total_amount Price 可选 32 总金额限制,单位为元。如果传入此参数,商户多次扣款的累计金额不允许超过此金额。 600
total_payments Number 可选 8 总扣款次数。如果传入此参数,则商户成功扣款的次数不能超过此次数限制(扣款失败不计入)。 12

响应参数

参数 类型 是否必填 最大长度 描述 示例值
out_trade_no String 必填 64 商户网站唯一订单号 70501111111S001111119
trade_no String 必填 64 该交易在支付宝系统中的交易流水号。 2014112400001000340011111118
total_amount String 必填 9 该笔订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。 9.00
seller_id String 必填 16 收款支付宝账号对应的支付宝唯一用户号。
以2088开头的纯16位数字
2088111111116894
merchant_order_no String 必填 32 商户原始订单号,最大长度限制32位 20161008001

请求示例

AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2");
AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
request.setBizContent("{" +
"\"timeout_express\":\"90m\"," +
"\"total_amount\":\"9.00\"," +
"\"product_code\":\"QUICK_MSECURITY_PAY\"," +
"\"body\":\"Iphone6 16G\"," +
"\"subject\":\"大乐透\"," +
"\"out_trade_no\":\"70501111111S001111119\"," +
"\"time_expire\":\"2016-12-31 10:05\"," +
"\"goods_type\":\"0\"," +
"\"promo_params\":\"{\\\"storeIdType\\\":\\\"1\\\"}\"," +
"\"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\"" +
"    }," +
"\"merchant_order_no\":\"20161008001\"," +
"\"enable_pay_channels\":\"pcredit,moneyFund,debitCardExpress\"," +
"\"store_id\":\"NJ_001\"," +
"\"specified_channel\":\"pcredit\"," +
"\"disable_pay_channels\":\"pcredit,moneyFund,debitCardExpress\"," +
"\"ext_user_info\":{" +
"\"name\":\"李明\"," +
"\"mobile\":\"16587658765\"," +
"\"cert_type\":\"IDENTITY_CARD\"," +
"\"cert_no\":\"362334768769238881\"," +
"\"min_age\":\"18\"," +
"\"fix_buyer\":\"F\"," +
"\"need_check_info\":\"F\"" +
"    }," +
"\"business_params\":\"{\\\"data\\\":\\\"123\\\"}\"," +
"\"agreement_sign_params\":{" +
"\"personal_product_code\":\"CYCLE_PAY_AUTH_P\"," +
"\"sign_scene\":\"INDUSTRY|DIGITAL_MEDIA\"," +
"\"external_agreement_no\":\"test20190701\"," +
"\"external_logon_id\":\"13852852877\"," +
"\"access_params\":{" +
"\"channel\":\"ALIPAYAPP\"" +
"      }," +
"\"sub_merchant\":{" +
"\"sub_merchant_id\":\"2088123412341234\"," +
"\"sub_merchant_name\":\"滴滴出行\"," +
"\"sub_merchant_service_name\":\"滴滴出行免密支付\"," +
"\"sub_merchant_service_description\":\"免密付车费,单次最高500\"" +
"      }," +
"\"period_rule_params\":{" +
"\"period_type\":\"DAY\"," +
"\"period\":3," +
"\"execute_time\":\"2019-01-23\"," +
"\"single_amount\":10.99," +
"\"total_amount\":600," +
"\"total_payments\":12" +
"      }" +
"    }" +
"  }");
AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
if(response.isSuccess()){
System.out.println("调用成功");
} else {
System.out.println("调用失败");
}

响应示例

{
    "alipay_trade_app_pay_response": {
        "code": "10000",
        "msg": "Success",
        "out_trade_no": "70501111111S001111119",
        "trade_no": "2014112400001000340011111118",
        "total_amount": "9.00",
        "seller_id": "2088111111116894",
        "merchant_order_no": "20161008001"
    },
    "sign": "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}

异常示例

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

业务错误码

公共错误码

错误码错误描述解决方案
ACQ.SYSTEM_ERROR 接口返回错误 请立即调用查询订单API,查询当前订单的状态,并根据订单状态决定下一步的操作
ACQ.ACCESS_FORBIDDEN 无权限使用接口 联系支付宝小二签约
ACQ.EXIST_FORBIDDEN_WORD 订单信息中包含违禁词 修改订单信息后,重新发起请求
ACQ.PARTNER_ERROR 应用APP_ID填写错误 联系支付宝小二,确认APP_ID的状态
ACQ.TOTAL_FEE_EXCEED 订单总金额不在允许范围内 修改订单金额再发起请求
ACQ.BUYER_SELLER_EQUAL 买卖家不能相同 更换买家重新付款
ACQ.BUYER_ENABLE_STATUS_FORBID 买家状态非法 用户联系支付宝小二,确认买家状态为什么非法
ACQ.SELLER_BEEN_BLOCKED 商家账号被冻结 联系支付宝小二,解冻账号
ACQ.INVALID_PARAMETER 参数无效 若存在参数无效具体错误信息描述,请参考描述检查请求参数后,重新发起
ACQ.TRADE_HAS_CLOSE 交易已经关闭 确认该笔交易信息是否为当前买家的已存订单,如果是则认为交易已经关闭,如果不是则更换商家订单号后,重新发起请求
ACQ.CONTEXT_INCONSISTENT 交易信息被篡改 确认该笔交易信息是否为当前买家的已存订单,如果是则认为本次请求参数与已存交易不一致,如果不是则更换商家订单号后,重新发起请求
ACQ.TRADE_BUYER_NOT_MATCH 交易买家不匹配 该笔交易已经在支付宝端创建,但请求买家与已存交易中的买家不一致。请商户确认本次请求是否与已存交易有关,若为同一笔交易,则只能用原始买家付款,若无关更换商家订单号后,重新发起请求
ACQ.TRADE_HAS_SUCCESS 交易已被支付 确认该笔交易信息是否为当前买家的,如果是则认为交易付款成功,如果不是则更换商家订单号后,重新发起请求

触发通知类型

通知类型描述默认开启
tradeStatus.TRADE_CLOSED 交易关闭 1
tradeStatus.TRADE_FINISHED 交易完结 1
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&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&buyer_id=null&fund_bill_list=null&receipt_amount=null&invoice_amount=null&buyer_pay_amount=null&point_amount=null&voucher_detail_list=null&buyer_logon_id=null&seller_email=null&out_biz_no=null&passback_params=null&out_channel_type=null&mdiscount_amount=88.88&discount_amount=88.88&charge_amount=8.88&charge_flags=bluesea_1&settlement_id=2018101610032004620239146945
onlineServer