环境 | HTTPS网关 |
正式环境 | https://mapi.alipay.com/gateway.do |
参数 | 参数名称 | 类型(字节长度) | 参数说明 | 是否为空 | 样例 |
基本参数 | |||||
service | 接口名称 | String | 接口名称。 | 不可空 | alipay.acquire.createandpay |
partner | 合作者身份ID | String(16) | 签约的支付宝账号对应的支付宝唯一用户号。以 2088 开头的 16 位纯数字组成。 | 不可空 | 2088101106499364 |
_input_charset | 参数编码字符集 | String | 商户网站使用的编码格式,如 utf-8、gbk、gb2312 等。 | 不可空 | utf-8 |
sign_type | 签名方式 | String | RSA或MD5,必须大写。 | 不可空 | MD5 |
sign | 签名 | String | 请参见 签名机制 | 不可空 | 85bf83f78d5cefb804bd805532fc688e |
notify_url | 服务器异步通知页面路径 | String(190) | 支付宝服务器主动通知商户网站里指定的页面 http 路径。 | 可空 | http://api.test.alipay.net/atinterface/receive_notify.htm |
alipay_ca_request | 签名类型 | String | 签名类型 1:证书签名 2:其他密钥签名 如果为空,默认为 2。 |
可空 | 2 |
业务参数 | |||||
out_trade_no | 商户网站唯一订单号 | String(64) | 支付宝合作商户网站唯一订单号。 | 不可空 | 4652151518967003 |
subject | 订单标题 | String(256) | 商品的标题/交易标题/订单标题/订单关键字等。该参数最长为 128 个汉字。 | 不可空 | 声波支付-分账-sky |
product_code | 订单业务类型 | String(32) | 用来区分是哪种业务类型的下单,目前支持: BARCODE_PAY_OFFLINE:条码支付 SOUNDWAVE_PAY_OFFLINE:声波支付 MEMBER_CARD_QR_OFFLINE:会员卡支付 FUND_TRADE_FAST_PAY:预授权产品 FINGERPRINT_FAST_PAY:指纹支付 |
不可空 | BARCODE_PAY_OFFLINE |
total_fee | 订单金额 | number(9,2) | 该笔订单的资金总额,取值范围[0.01,100000000],精确到小数点后 2 位。 | 不可空 | 0.01 |
seller_id | 卖家支付宝用户号 | String(28) | 卖家支付宝账号对应的支付宝唯一用户号。以 2088 开头的纯 16 位数字。如果和 seller_email 同时为空,则本参数默认填充partner 的值。 | 可空 | 2088101106499364 |
seller_email | 卖家支付宝账号 | String(100) | 卖家支付宝账号,可以为email 或者手机号。如果 seller_id 不为空,则以seller_id 的值作为卖家账号,忽略本参数。 | 可空 | test@alitest.com |
buyer_id | 买家支付宝用户号 | String(28) | 买家支付宝账号对应的支付宝唯一用户号。以 2088 开头的纯 16 位数字。buyer_id 和 dynamic_id 不可同时为空。 | 可空 | 2088101568338364 |
buyer_email | 买家支付宝账号 | String(100) | 买家支付宝账号,可以为email 或者手机号。 | 可空 | test11@alitest.com |
operator_type | 操作员类型 | String(1) | 操作员的类型: 0:支付宝操作员 1:商户的操作员 如果传入其它值或者为空,则默认设置为 1。 |
可空 | 1 |
operator_id | 操作员号 | String(28) | 卖家的操作员 ID。 | 可空 | 55 |
body | 订单描述 | String(400) | 对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。 | 可空 | iphone 手机 |
show_url | 商品展示网址 | String(400) | 收银台页面上,商品展示的超链接。 | 可空 | http://www.taobao.com/product/113714.html |
currency | 订单金额币种 | String(10) | 订单金额币种。目前只支持传入 156(人民币)。如果为空,则默认设置为156。 | 可空 | 156 |
price | 商品单价 | number(9,2) | 订单中商品的单价。如果请求时传入本参数,则必须满足 total_fee=price×quantity 的条件。 | 可空 | 1 |
quantity | 商品数量 | String(100) | 订单中商品的数量。如果请求时传入本参数,则必须满足 total_fee=price×quantity 的条件。 | 可空 | 10 |
goods_detail | 商品明细 | String | 描述商品明细信息,json格式,具体请参见“4.3 商品明细说明”。最大允许传递商品信息条数为 50 条。 | 可空 | [{"goodsId":"apple-01","goodsName":"ipad","goodsCategory":"7788230","price":"2000.00","quantity":"1"}] |
extend_params | 公用业务扩展信息 | String(128) | 用于商户的特定业务信息的传递,只有商户与支付宝约定了传递此参数且约定了参数含义,此参数才有效。比如可传递声波支付场景下的门店ID等信息,以json格式传输,具体请参见“4.7 业务扩展参数说明”。 | 可空 | {"TERMINAL_ID":"BJ_001","AGENT_ID":"A80001","STORE_ID":"BJ_ZZ_001","STORE_TYPE":"0","SHOP_ID":"only"} |
it_b_pay | 订单支付超时时间 | String(200) | 设置未付款交易的超时时间,一旦超时,该笔交易就会自动被关闭。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(无论交易何时创建,都在 0 点关闭)。该参数数值不接受小数点,如 1.5h,可转换为 90m。该功能需要联系支付宝配置关闭时间。 | 可空 | 1d |
royalty_type | 分账类型 | String(150) | 卖家的分账类型,目前只支持传入 ROYALTY(普通分账类型)。商户需要进行分账时,该参数不可空。 | 可空 | ROYALTY |
royalty_parameters | 分账信息 | String(2000) | 描述分账明细信息,json格式,具体请参见“4.4 分账明细说明”。 | 可空 | [{"serialNo":"1","transOut":"2088101126765726","transIn":"2088101126708402","amount":"0.10","desc":"分账测试1"},{"serialNo":"2","transOut":"2088101126765726","transIn":"2088101126707869","amount":"0.10","desc":"分账测试 2"}] |
channel_parameters | 渠道参数 | String(256) | 描述多渠道收单的渠道明细信息,json格式,具体请参见“4.5 渠道明细说明”。 | 可空 | [{"equipment_no":"E001","termId":"12233","termType":"pos","termOsType":"ios","clientVersion":"2.1","payeeEquipmentNo":"F001","payeeTermId":"X001","payeeTermType":"phone","payeeTermOsType":"ios","payeeClientVersion":"2.0"}] |
dynamic_id_type | 动态 ID 类型 | String(32) | 当动态 ID 不为空时必填。wave_code:声波bar_code:条码 | 可空 | bar_code |
dynamic_id | 动态 ID | String(32) | buyer_id 和 dynamic_id 不可同时为空。 | 可空 | kff3hjwqzxrbvrrkd0 |
ref_ids | 关联 ID 集合 | String(256) | 业务关联ID集合,用于放置商户的订单号、支付流水号等信息,json格式,具体请参见“4.6 业务关联ID集合说明”。 | 可空 | [{"id_type":"orig_out_request_no","id":"HZ0001"},{"id_type":"orig_out_order_no","id":"HZ0001"}] |
mcard_parameters | 预付卡相关参数 | String(256) | 描述预付卡相关的明细信息,json格式,具体请参见“4.8 预付卡明细参数说明”。 | 可空 | {"mcard_issuer_id":"2088101126765726"} |
auth_no | 授权号 | String(32) | 用于解冻资金的授权号。当 product_code 为FUND_TRADE_FAST_PAY时不可空,否则必须为空。 | 可空 | 2014032400002001210000000972 |
promo_params | 优惠参数 | String(256) | 描述优惠明细信息,json格式,具体请参见 优惠明细参数说明 | 可空 | {“camp_flag”:”2013041301”} |
passback_parameters | 业务透传参数 | String(256) | 如果商户请求时传递了该参数,则异步通知中会回传给商户(参数名为extra_common_param)。 | 可空 | 你好,这是测试商户的广告。 |
agreement_info | 协议信息 | String(256) | 用于传递用户和支付宝的协议相关信息,json格式,具体请参见 协议信息参数说明 | 可空 | {"agreement_no":"20141107000377985008"} |
参数 | 参数名称 | 类型(字节长度) | 参数说明 | 是否为空 | 样例 |
goodsId | 商品编号 | String | 商品的编号。 | 不可空 | apple-01 |
goodsName | 商品名称 | String | 商品名称。 | 不可空 | ipad |
goodsCategory | 商品类目 | String | 商品类目。 | 可空 | 34543238 |
showUrl | 商品展示网址 | String | 收银台页面上,商品展示的超链接。 | 可空 | http://www.taobao.com |
quantity | 商品数量 | String | 商品数量。 | 不可空 | 1 |
body | 商品描述 | String | 商品描述信息。 | 可空 | 特价手机 |
price | 商品单价 | String | 商品单价。 | 不可空 | 2000 |
商品明细示例
业务需求:商品编号 apple-01,商品名称 ipad,商品类目 7788230,数量 1个,价格 2000 元 参数赋值:goods_detail=[{"goodsId":"apple-01","goodsName":"ipad","goodsCategory":"7788230","price":"2000.00","quantity":"1"}]
参数 | 参数名称 | 类型(字节长度) | 参数说明 | 是否可为空 | 样例 |
serialNo | 分账序列号 | String | 分账序列号,表示分账执行的顺序,必须为正整数。 | 不可空 | 1 |
outRelationId | 分账关联号 | String | 商户分账的外部关联号,用于关联到每一笔分账信息,商户需保证其唯一性。如果为空,该值则默认为“商户网站唯一订单号+分账序列号”。 | 可空 | 20131124001 |
transOutType | 转出账号类型 | String | 要分账的账户类型。目前只支持 userId:支付宝账号对应的支付宝唯一用户号。默认值为 userId。 | 可空 | userId |
transOut | 出账支付宝用户号 | String | 如果转出账号类型为 userId,本参数为要分账的支付宝账号对应的支付宝唯一用户号。以2088 开头的纯 16 位数字。 | 不可空 | 2088101126765726 |
transInType | 转入账号类型 | String | 接受分账金额的账户类型:userId:支付宝账号对应的支付宝唯一用户号。bankIndex:分账到银行账户的银行编号。目前暂时只支持分账到一个银行编号。默认值为 userId。 | 可空 | userId |
transIn | 入账账号 | String | 如果转入账号类型为userId,本参数为接受分账金额的支付宝账号对应的支付宝唯一用户号。以2088 开头的纯 16 位数字。如果转入账号类型为bankIndex,本参数为 28位的银行编号(商户和支付宝签约时确定)。 | 不可空 | 2088101126708402 |
batchNo | 分账批次号 | String | 12 位分账批次号。目前需要和转入账号类型为bankIndex 配合使用。 | 可空 | 123 |
amount | 分账金额 | String | 分账的金额。 | 不可空 | 0.10 |
desc | 分账描述 | String | 分账描述信息。 | 可空 | 分账测试 1 |
分账明细示例
业务需求:按顺序执行 2 笔分账 参数赋值:royalty_parameters=[{"serialNo":"1","transOut":"2088101126765726","tran sIn":"2088101126708402","amount":"0.10","desc":" 分 账 测 试 1"},{"serialNo":"2","transOut":"2088101126765726","transIn":"2088101126707869","amount":"0.10","desc":"分账测试 2"}]
参数 | 参数名称 | 类型(长度范围) | 参数说明 | 是否可为空 | 样例 | |||
基本参数 | ||||||||
is_success | 请求是否成功 | String | 请求是否成功。请求成功不代表业务处理成功。T 代表成功F 代表失败 | 不可空 | T | |||
sign_type | 签名方式 | String | DSA、RSA、MD5 三个值可选,必须大写。 | 可空 | MD5 | |||
sign | 签名 | String | 请参见“8 签名机制”。 | 可空 | 97ef60dd5015aa311058fcaf2d2ac8e3 | |||
error | 错误代码 | String | 请求成功时,不存在本参数;请求失败时,本参数为错误代码,参见“10.3 接入错误码”和“10.4 系统错误码”。 | 可空 | ILLEGAL_SIGN | |||
业务参数 | ||||||||
result_code | 响应码 | String(32) | 下单并支付处理结果响应码,请参见“10.1 业务响应码”。 | 不可空 | ORDER_SUCCESS_PAY_SUCCESS | |||
trade_no | 支付宝交易号 | String(64) | 该交易在支付宝系统中的交易流水号。最短 16 位,最长 64 位。 | 可空 | 2013112311001004940000384027 | |||
out_trade_no | 商户网站唯一订单号 | String(64) | 对应商户网站的订单系统中的唯一订单号,非支付宝交易号。需保证在商户网站中的唯一性。是请求时对应的参数,原样返回。 | 可空 | 7085502131376415 | |||
buyer_user_id | 买家支付宝用户号 | String(30) | 买家支付宝账号对应的支付宝唯一用户号。以 2088 开头的纯 16 位数字。 | 可空 | 2088102105236945 | |||
buyer_logon_id | 买家支付宝账号 | String(100) | 买家支付宝账号,可以为email 或者手机号。对部分信息进行了隐藏。 | 可空 | 138****0011 | |||
total_fee | 交易金额 | Number | 该笔订单的总金额。请求时对应的参数,原样返回。 | 可空 | 10.00 | |||
gmt_payment | 交易付款时间 | Date | 该笔交易的买家付款时间。格式为 yyyy-MM-ddHH:mm:ss。 | 可空 | 2013-11-27 15:45:57 | |||
detail_error_code | 详细错误码 | String(48) | 对返回响应码进行原因说明,请参见“10.2 业务错误码”。当 result_code 响应码为ORDER_SUCCESS_PAY_SUCCESS 时,不返回该参数。 | 可空 | TRADE_BUYER_NOT_MATCH | |||
detail_error_des | 详细错误描述 | String(64) | 对详细错误码进行文字说明。当result_code响应码为ORDER_SUCCESS_PAY_SUCCESS时,不返回该参数。 | 可空 | 交易买家不匹配 | |||
extend_info | 返回扩展信息 | String(256) | 支付后返回的其他信息,如预付卡金额,key值mcard_fee,以Json格式返回。 | 可空 | [{"mcard_fee":"10.35"}] | |||
fund_bill_list | 本次交易支付单据信息集合 | List | 本次交易使用的支付渠道信息,xml格式,可包含多个渠道信息子节点
|
可空 | 参见“5.3 支付单据信息说明” |
业务正常受理并下单成功:
<?xml version="1.0" encoding="utf-8"?> <alipay> <is_success>T</is_success> <request> <param name="body">声波支付-分账-sky</param> <param name="operator_id">55</param> <param name="subject">声波支付-分账-sky</param> <param name="sign_type">MD5</param> <param name="out_trade_no">7085502131376415</param> <param name="dynamic_id">kfylrwezsbeqhh553e</param> <param name="royalty_parameters"> [{"serialNo":"1","transOut":"2088101126765726","transIn":"208810112670840 2","amount":"1.00","desc":"分账测试 1"}] </param> <param name="royalty_type">ROYALTY</param> <param name="total_fee">10</param> <param name="partner">2088101106499364</param> <param name="quantity">10</param> <param name="dynamic_id_type">wave_code</param> <param name="alipay_ca_request">2</param> <param name="sign">a1cb41a4019351965d4418c9cb933f0f</param> <param name="_input_charset">UTF-8</param> <param name="price">1</param> <param name="it_b_pay">1d</param> <param name="product_code">SOUNDWAVE_PAY_OFFLINE</param> <param name="service">alipay.acquire.createandpay</param> <param name="seller_id">2088101106499364</param> </request> <response> <alipay> <buyer_logon_id>138****0011</buyer_logon_id> <buyer_user_id>2088102105236945</buyer_user_id> <out_trade_no>7085502131376415</out_trade_no> <result_code>ORDER_SUCCESS_PAY_SUCCESS</result_code> <trade_no>2013112311001004940000384027</trade_no> </alipay> </response> <sign>ea489fc31da63253bab52ed77fb45eb7</sign> <sign_type>MD5</sign_type> </alipay>
请求成功,业务处理失败:
<?xml version="1.0" encoding="utf-8"?> <alipay> <is_success>T</is_success> <request> <param name="body">声波支付-分账-sky</param> <param name="operator_id">55</param> <param name="subject">声波支付-分账-sky</param> <param name="sign_type">MD5</param> <param name="out_trade_no">7085502131376415</param> <param name="dynamic_id">kfylrwezsbeqhh553e</param> <param name="royalty_parameters"> [{"serialNo":"1","transOut":"2088101126765726","transIn":"208810112670840 2", "amount":"1.00", "desc":"分账测试 1"}] </param> <param name="royalty_type">ROYALTY</param> <param name="total_fee">10</param> <param name="partner">2088101106499364</param> <param name="quantity">10</param> <param name="dynamic_id_type">wave_code</param> <param name="alipay_ca_request">2</param> <param name="sign">a1cb41a4019351965d4418c9cb933f0f</param> <param name="_input_charset">UTF-8</param> <param name="price">1</param> <param name="it_b_pay">1d</param> <param name="product_code">SOUNDWAVE_PAY_OFFLINE</param> <param name="service">alipay.acquire.createandpay</param> <param name="seller_id">2088101106499364</param> </request> <response> <alipay> <result_code>ORDER_FAIL</result_code> <detail_error_code>TRADE_BUYER_NOT_MATCH</detail_error_code> <detail_error_des>交易买家不匹配</detail_error_des> <trade_no>2013112311001004940000384027</trade_no> </alipay> </response> <sign>ea489fc31da63253bab52ed77fb45eb7</sign> <sign_type>MD5</sign_type> </alipay>
请求失败或者接入数据错误时输出:
<?xml version="1.0" encoding="utf-8"?> <alipay> <is_success>F</is_success> <error>ILLEGAL_SIGN</error> </alipay>
参数 | 参数名称 | 类型(字节长度) | 参数说明 | 是否可为空 | 样例 |
基本参数 | |||||
notify_time | 通知时间 | Date | 通知的发送时间。格式为 yyyy-MM-ddHH:mm:ss。 | 不可空 | 2013-11-27 15:45:58 |
notify_type | 通知类型 | String | 通知的类型。 | 不可空 | trade_status_sync |
notify_id | 通知校验ID | String | 通知校验 ID。 | 不可空 | ac05099524730693a8b330c5ecf72da978 |
sign_type | 签名方式 | String | DSA、RSA、MD5 三个值可选,必须大写。 | 不可空 | MD5 |
sign | 签名 | String | 请参见“8 签名机制”。 | 不可空 | 601510b7970e52cc63db0f44997cf70e |
notify_action_type | 通知动作类型 | String | 通知动作类型:创建:createDirectPayTradeByBuyerAction支付:payByAccountAction退款:refundFPAction撤销:reverseAction关闭:closeTradeAction交易完成:finishFPAction | 可空 | payByAccountAction |
业务参数 | |||||
out_trade_no | 商户网站唯一订单号 | String(64) | 对应商户网站的订单系统中的唯一订单号,非支付宝交易号。需保证在商户网站中的唯一性。是请求时对应的参数,原样返回。 | 可空 | 5431395578198135 |
subject | 订单标题 | String(256) | 商品的标题/交易标题/订单标题/订单关键字等。它在支付宝的交易明细中排在第一列,对于财务对账尤为重要。是请求时对应的参数,原样通知回来。 | 可空 | 声波支付-分账-sky |
trade_no | 支付宝交易号 | String(64) | 该交易在支付宝系统中的交易流水号。最短 16 位,最长 64 位。 | 可空 | 2013112711001004940000394507 |
trade_status | 交易状态 | String | 交易目前所处的状态,取值范围请参见“10.5 交易状态”。 | 可空 | WAIT_BUYER_PAY |
gmt_create | 交易创建时间 | Date | 该笔交易创建的时间。格式为 yyyy-MM-ddHH:mm:ss。 | 可空 | 2013-11-27 15:45:57 |
gmt_payment | 交易付款时间 | Date | 该笔交易的买家付款时间。格式为 yyyy-MM-ddHH:mm:ss。 | 可空 | 2013-11-27 15:45:57 |
seller_email | 卖家支付宝账号 | String(100) | 卖家支付宝账号,可以是email 和手机号码。 | 可空 | zhuzhanghu@alitest.com |
buyer_email | 买家支付宝账号 | String(100) | 买家支付宝账号,可以是Email 或手机号码。 | 可空 | 13882390011 |
seller_id | 卖家支付宝用户号 | String(30) | 卖家支付宝账号对应的支付宝唯一用户号。以 2088 开头的纯 16 位数字。 | 可空 | 2088101106499364 |
buyer_id | 买家支付宝用户号 | String(30) | 买家支付宝账号对应的支付宝唯一用户号。以 2088 开头的纯 16 位数字。 | 可空 | 2088102105236945 |
price | 商品单价 | Number | 对应请求时的 price 参数,原样通知回来。 | 可空 | 1.00 |
quantity | 购买数量 | Number | 对应请求时的 quantity 参数,原样通知回来。 | 可空 | 10 |
total_fee | 交易金额 | Number | 该笔订单的总金额。请求时对应的参数,原样通知回来。 | 可空 | 10.00 |
body | 商品描述 | String(400) | 该笔订单的备注、描述、明细等。对应请求时的 body 参数,原样通知回来。 | 可空 | Hello |
refund_fee | 退款金额 | Number | 退款通知中,返回退款金额,单位为元。 | 可空 | 1.00 |
out_biz_no | 商户业务号 | String(64) | 商户业务 ID,主要是退款通知中返回退款申请的流水号。 | 可空 | HZRF001 |
paytools_pay_amount | 支付金额信息 | String(512) | 支付成功的各个渠道金额信息,具体请参见“6.3 支付金额信息说明”。 | 可空 | [{"MCARD":"7.94"},{"TMPOINT":"1.69"},{"BANKCARD":"5.55"}] |
extra_common_param | 业务透传参数 | String(256) | 原样返回商户请求下单时的passback_parameters 参数。 | 可空 | 你好,这是测试商户的广告。 |
http://商户自定义地址/alipay/notify_url.php?notify_id=ac05099524730693a8b330c5ecf72da978&seller_email=zhuzhanghu%40alitest.com¬ify_type=trade_status_sync&buyer_email=13882390011&sign=601510b7970e52cc63db0f44997cf70e&trade_no=2013112711001004940000394507&buyer_id=2088102105236945&quantity=10&total_fee=10.00&price=1.00&gmt_create=2013-11-27+15%3A45%3A57&out_trade_no=5431395578198135&seller_id=2088101106499364¬ify_time=2013-11-27+15%3A45%3A58&subject=%E5%A3%B0%E6%B3%A2%E6%94%AF%E4%BB%98-%E5%88%86%E8%B4%A6-sky&trade_status=WAIT_BUYER_PAY&sign_type=MD5