收银员使用扫码设备读取用户手机支付宝“付款码”/声波获取设备(如麦克风)读取用户手机支付宝的声波信息后,将二维码或条码信息/声波信息通过本接口上送至支付宝发起支付。
| 环境 | HTTPS请求地址 |
|---|---|
| 正式环境 | https://openapi.alipay.com/gateway.do |
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| app_id | String | 是 | 32 | 支付宝分配给开发者的应用ID | 2014072300007148 |
| method | String | 是 | 128 | 接口名称 | alipay.trade.pay |
| 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 |
| scene | String | 必须 | 32 | 支付场景
条码支付,取值:bar_code 声波支付,取值:wave_code |
bar_code |
| auth_code | String | 必须 | 32 | 支付授权码,25~30开头的长度为16~24位的数字,实际字符串长度以开发者获取的付款码长度为准 | 28763443825664394 |
| product_code | String | 可选 | 32 | 销售产品码 | FACE_TO_FACE_PAYMENT |
| subject | String | 必须 | 256 | 订单标题 | Iphone6 16G |
| buyer_id | String | 可选 | 28 | 买家的支付宝用户id,如果为空,会从传入了码值信息中获取买家ID | 2088202954065786 |
| seller_id | String | 可选 | 28 | 如果该值为空,则默认为商户签约账号对应的支付宝用户ID | 2088102146225135 |
| total_amount | Price | 可选 | 11 | 订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]
如果同时传入【可打折金额】和【不可打折金额】,该参数可以不用传入; 如果同时传入了【可打折金额】,【不可打折金额】,【订单总金额】三者,则必须满足如下条件:【订单总金额】=【可打折金额】+【不可打折金额】 |
88.88 |
| discountable_amount | Price | 可选 | 11 | 参与优惠计算的金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]。
如果该值未传入,但传入了【订单总金额】和【不可打折金额】,则该值默认为【订单总金额】-【不可打折金额】 |
8.88 |
| body | String | 可选 | 128 | 订单描述 | Iphone6 16G |
| goods_detail | GoodsDetail [] | 可选 | - | 订单包含的商品列表信息,Json格式,其它说明详见商品明细说明 | |
|
|||||
| operator_id | String | 可选 | 28 | 商户操作员编号 | yx_001 |
| store_id | String | 可选 | 32 | 商户门店编号 | NJ_001 |
| terminal_id | String | 可选 | 32 | 商户机具终端编号 | NJ_T_001 |
| extend_params | ExtendParams | 可选 | - | 业务扩展参数 | |
|
|||||
| timeout_express | String | 可选 | 6 | 该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m | 90m |
| auth_confirm_mode | String | 可选 | 32 | 预授权确认模式,授权转交易请求中传入,适用于预授权转交易业务使用,目前只支持PRE_AUTH(预授权产品码)
COMPLETE:转交易支付完成结束预授权,解冻剩余金额; NOT_COMPLETE:转交易支付完成不结束预授权,不解冻剩余金额 |
COMPLETE:转交易支付完成结束预授权;NOT_COMPLETE:转交易支付完成不结束预授权 |
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| 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= |
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| trade_no | String | 必填 | 64 | 支付宝交易号 | 2013112011001004330000121536 |
| out_trade_no | String | 必填 | 64 | 商户订单号 | 6823789339978248 |
| buyer_logon_id | String | 必填 | 100 | 买家支付宝账号 | 159****5620 |
| total_amount | Price | 必填 | 11 | 交易金额 | 120.88 |
| receipt_amount | String | 必填 | 11 | 实收金额 | 88.88 |
| buyer_pay_amount | Price | 选填 | 11 | 买家付款的金额 | 8.88 |
| point_amount | Price | 选填 | 11 | 使用集分宝付款的金额 | 8.12 |
| invoice_amount | Price | 选填 | 11 | 交易中可给用户开具发票的金额 | 12.50 |
| gmt_payment | Date | 必填 | 32 | 交易支付时间 | 2014-11-27 15:45:57 |
| fund_bill_list | TradeFundBill [] | 必填 | - | 交易支付使用的资金渠道 | |
|
|||||
| card_balance | Price | 选填 | 11 | 支付宝卡余额 | 98.23 |
| store_name | String | 选填 | 512 | 发生支付交易的商户门店名称 | 证大五道口店 |
| buyer_user_id | String | 必填 | 28 | 买家在支付宝的用户id | 2088101117955611 |
| discount_goods_detail | String | 选填 | 1024 | 本次交易支付所使用的单品券优惠的商品优惠信息 | [{"goods_id":"STANDARD1026181538","goods_name":"雪碧","discount_amount":"100.00","voucher_id":"2015102600073002039000002D5O"}] |
| voucher_detail_list | VoucherDetail [] | 选填 | - | 本交易支付时使用的所有优惠券信息 | |
|
|||||
| business_params | String | 选填 | 512 |
商户传入业务信息,具体值要和支付宝约定
将商户传入信息分发给相应系统,应用于安全,营销等参数直传场景 格式为json格式 |
{"data":"123"} |
| buyer_user_type | String | 选填 | 18 | 买家用户类型。CORPORATE:企业用户;PRIVATE:个人用户。 | PRIVATE |
| mdiscount_amount | String | 选填 | 11 | 商家优惠金额 | 88.88 |
| discount_amount | String | 选填 | 11 | 平台优惠金额 | 88.88 |
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2");
AlipayTradePayRequest request = new AlipayTradePayRequest();
request.setBizContent("{" +
"\"out_trade_no\":\"20150320010101001\"," +
"\"scene\":\"bar_code\"," +
"\"auth_code\":\"28763443825664394\"," +
"\"product_code\":\"FACE_TO_FACE_PAYMENT\"," +
"\"subject\":\"Iphone6 16G\"," +
"\"buyer_id\":\"2088202954065786\"," +
"\"seller_id\":\"2088102146225135\"," +
"\"total_amount\":88.88," +
"\"discountable_amount\":8.88," +
"\"body\":\"Iphone6 16G\"," +
" \"goods_detail\":[{" +
" \"goods_id\":\"apple-01\"," +
"\"goods_name\":\"ipad\"," +
"\"quantity\":1," +
"\"price\":2000," +
"\"goods_category\":\"34543238\"," +
"\"body\":\"特价手机\"," +
"\"show_url\":\"http://www.alipay.com/xxx.jpg\"" +
" }]," +
"\"operator_id\":\"yx_001\"," +
"\"store_id\":\"NJ_001\"," +
"\"terminal_id\":\"NJ_T_001\"," +
"\"extend_params\":{" +
"\"sys_service_provider_id\":\"2088511833207846\"," +
"\"industry_reflux_info\":\"{\\\\\\\"scene_code\\\\\\\":\\\\\\\"metro_tradeorder\\\\\\\",\\\\\\\"channel\\\\\\\":\\\\\\\"xxxx\\\\\\\",\\\\\\\"scene_data\\\\\\\":{\\\\\\\"asset_name\\\\\\\":\\\\\\\"ALIPAY\\\\\\\"}}\"," +
"\"card_type\":\"S0JP0000\"" +
" }," +
"\"timeout_express\":\"90m\"," +
"\"auth_confirm_mode\":\"COMPLETE:转交易支付完成结束预授权;NOT_COMPLETE:转交易支付完成不结束预授权\"" +
" }");
AlipayTradePayResponse response = alipayClient.execute(request);
if(response.isSuccess()){
System.out.println("调用成功");
} else {
System.out.println("调用失败");
}
{
"alipay_trade_pay_response":{
"msg":"Success",
"gmt_payment":"2014-11-27 15:45:57",
"code":"10000",
"mdiscount_amount":"88.88",
"discount_amount":"88.88",
"buyer_user_id":"2088101117955611",
"invoice_amount":12.50,
"fund_bill_list":[
{
"bank_code":"CEB",
"real_amount":11.21,
"amount":10,
"fund_channel":"ALIPAYACCOUNT"
}
],
"card_balance":98.23,
"voucher_detail_list":[
{
"purchase_ant_contribute":0.82,
"amount":10.00,
"merchant_contribute":9.00,
"purchase_buyer_contribute":2.01,
"name":"XX超市5折优惠",
"memo":"学生专用优惠",
"purchase_merchant_contribute":1.03,
"other_contribute":1.00,
"template_id":"20171030000730015359000EMZP0",
"id":"2015102600073002039000002D5O",
"type":"ALIPAY_FIX_VOUCHER"
}
],
"out_trade_no":"6823789339978248",
"total_amount":120.88,
"business_params":"{\"data\":\"123\"}",
"buyer_user_type":"PRIVATE",
"trade_no":"2013112011001004330000121536",
"store_name":"证大五道口店",
"buyer_logon_id":"159****5620",
"receipt_amount":"88.88",
"point_amount":8.12,
"discount_goods_detail":"[{\"goods_id\":\"STANDARD1026181538\",\"goods_name\":\"雪碧\",\"discount_amount\":\"100.00\",\"voucher_id\":\"2015102600073002039000002D5O\"}]",
"buyer_pay_amount":8.88
},
"sign":"ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}
{
"alipay_trade_pay_response":{
"msg":"Service Currently Unavailable",
"code":"20000",
"sub_msg":"系统繁忙",
"sub_code":"isp.unknow-error"
},
"sign":"ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}
| 错误码 | 错误描述 | 解决方案 |
|---|---|---|
| ACQ.SYSTEM_ERROR | 接口返回错误 | 请立即调用查询订单API,查询当前订单的状态,并根据订单状态决定下一步的操作,如果多次调用依然报此错误码,请联系支付宝客服 |
| ACQ.INVALID_PARAMETER | 参数无效 | 检查请求参数,修改后重新发起请求 |
| ACQ.ACCESS_FORBIDDEN | 无权限使用接口 | 未签约条码支付或者合同已到期 |
| ACQ.EXIST_FORBIDDEN_WORD | 订单信息中包含违禁词 | 修改订单信息后,重新发起请求 |
| ACQ.PARTNER_ERROR | 应用APP_ID填写错误 | 联系支付宝小二(联系支付宝文档右边的客服头像或到支持中心咨询),确认APP_ID的状态 |
| ACQ.TOTAL_FEE_EXCEED | 订单总金额超过限额 | 修改订单金额再发起请求 |
| ACQ.PAYMENT_AUTH_CODE_INVALID | 支付授权码无效 | 用户刷新条码后,重新扫码发起请求 |
| ACQ.CONTEXT_INCONSISTENT | 交易信息被篡改 | 更换商家订单号后,重新发起请求 |
| ACQ.TRADE_HAS_SUCCESS | 交易已被支付 | 确认该笔交易信息是否为当前买家的,如果是则认为交易付款成功,如果不是则更换商家订单号后,重新发起请求 |
| ACQ.TRADE_HAS_CLOSE | 交易已经关闭 | 更换商家订单号后,重新发起请求 |
| ACQ.BUYER_BALANCE_NOT_ENOUGH | 买家余额不足 | 买家绑定新的银行卡或者支付宝余额有钱后再发起支付 |
| ACQ.BUYER_BANKCARD_BALANCE_NOT_ENOUGH | 用户银行卡余额不足 | 建议买家更换支付宝进行支付或者更换其它付款方式 |
| ACQ.ERROR_BALANCE_PAYMENT_DISABLE | 余额支付功能关闭 | 用户打开余额支付开关后,再重新进行支付 |
| ACQ.BUYER_SELLER_EQUAL | 买卖家不能相同 | 更换买家重新付款 |
| ACQ.TRADE_BUYER_NOT_MATCH | 交易买家不匹配 | 更换商家订单号后,重新发起请求 |
| ACQ.BUYER_ENABLE_STATUS_FORBID | 买家状态非法 | 用户联系支付宝小二(联系支付宝文档右边的客服头像或到支持中心咨询),确认买家状态为什么非法 |
| ACQ.PULL_MOBILE_CASHIER_FAIL | 唤起移动收银台失败 | 用户刷新条码后,重新扫码发起请求 |
| ACQ.MOBILE_PAYMENT_SWITCH_OFF | 用户的无线支付开关关闭 | 用户在PC上打开无线支付开关后,再重新发起支付 |
| ACQ.PAYMENT_FAIL | 支付失败 | 用户刷新条码后,重新发起请求,如果重试一次后仍未成功,更换其它方式付款 |
| ACQ.BUYER_PAYMENT_AMOUNT_DAY_LIMIT_ERROR | 买家付款日限额超限 | 更换买家进行支付 |
| ACQ.BEYOND_PAY_RESTRICTION | 商户收款额度超限 | 联系支付宝小二提高限额(联系电话:0571-88158090) |
| ACQ.BEYOND_PER_RECEIPT_RESTRICTION | 商户收款金额超过月限额 | 联系支付宝小二提高限额(联系电话:0571-88158090) |
| ACQ.BUYER_PAYMENT_AMOUNT_MONTH_LIMIT_ERROR | 买家付款月额度超限 | 让买家更换账号后,重新付款或者更换其它付款方式 |
| ACQ.SELLER_BEEN_BLOCKED | 商家账号被冻结 | 联系支付宝小二,解冻账号(联系电话:95188) |
| ACQ.ERROR_BUYER_CERTIFY_LEVEL_LIMIT | 买家未通过人行认证 | 让用户联系支付宝小二并更换其它付款方式(联系电话:95188) |
| ACQ.PAYMENT_REQUEST_HAS_RISK | 支付有风险 | 更换其它付款方式 |
| ACQ.NO_PAYMENT_INSTRUMENTS_AVAILABLE | 没用可用的支付工具 | 更换其它付款方式 |
| ACQ.USER_FACE_PAYMENT_SWITCH_OFF | 用户当面付付款开关关闭 | 让用户在手机上打开当面付付款开关 |
| ACQ.INVALID_STORE_ID | 商户门店编号无效 | 检查传入的门店编号是否有效 |
| ACQ.SUB_MERCHANT_CREATE_FAIL | 二级商户创建失败 | 检查上送的二级商户信息是否有效 |
| ACQ.SUB_MERCHANT_TYPE_INVALID | 二级商户类型非法 | 检查上传的二级商户类型是否有效 |
| ACQ.AGREEMENT_NOT_EXIST | 用户协议不存在 | 确认代扣业务传入的协议号对应的协议是否已解约 |
| ACQ.AGREEMENT_INVALID | 用户协议失效 | 代扣业务传入的协议号对应的用户协议已经失效,需要用户重新签约 |
| ACQ.AGREEMENT_STATUS_NOT_NORMAL | 用户协议状态非NORMAL | 代扣业务用户协议状态非正常状态,需要用户解约后重新签约 |
| ACQ.MERCHANT_AGREEMENT_NOT_EXIST | 商户协议不存在 | 确认商户与支付宝是否已签约 |
| ACQ.MERCHANT_AGREEMENT_INVALID | 商户协议已失效 | 商户与支付宝合同已失效,需要重新签约 |
| ACQ.MERCHANT_STATUS_NOT_NORMAL | 商户协议状态非正常状态 | 商户与支付宝的合同非正常状态,需要重新签商户合同 |
| 通知类型 | 描述 | 默认开启 |
|---|---|---|
| tradeStatus.TRADE_CLOSED | 交易关闭 | 0 |
| tradeStatus.TRADE_FINISHED | 交易完结 | 0 |
| tradeStatus.TRADE_SUCCESS | 支付成功 | 1 |
| tradeStatus.WAIT_BUYER_PAY | 交易创建 | 0 |
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| notify_action_type | String | 选填 | 50 | 通知动作类型 | payByAccountAction/closeTradeAction/reverseAction/finishFPAction |
| discount_amount | String | 选填 | 11 | 平台优惠金额 | 88.88 |
| mdiscount_amount | String | 选填 | 11 | 商家优惠金额 | 88.88 |
| unfreeze_amount | String | 选填 | 11 | 该笔预授权完成后,剩余的解冻还给买家的人民币金额。 | 18.18 |
| auth_trade_pay_mode | String | 必填 | 64 | 预授权支付模式,该参数仅在信用预授权支付场景下返回。信用预授权支付:CREDIT_PREAUTH_PAY | CREDIT_PREAUTH_PAY |
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=¬ify_action_type=payByAccountAction/closeTradeAction/reverseAction/finishFPAction&discount_amount=88.88&mdiscount_amount=88.88&unfreeze_amount=18.18&auth_trade_pay_mode=CREDIT_PREAUTH_PAY