支付接口(条码支付)

调用此接口发送支付请求。收到付款请求后,支付宝首先验证请求,验证成功后从buyer_identity_code字段标识的付款人帐户自动扣除资金。


#网关URL

环境HTTPS请求URL
生产环境

推荐使用:https://globalmapi.alipay.com/gateway.do

备用:https://intlmapi.alipay.com/gateway.do

测试环境https://mapi.alipaydev.com/gateway.do


#请求参数

参数描述

基本参数

service

String 不可空

接口名称

示例:alipay.acquire.overseas.spot.pay

sign

String 不可空

签名值

示例:c8il4epm90wyn768fijgqhy8tay37gqa

sign_type

String 不可空

签名类型。支持RSA,RSA2和MD5。请使用大写形式。

示例:MD5

partner

String 不可空

支付宝分配的用于标识支付宝帐户的合作伙伴ID。合作伙伴ID是2088开头的16位数字。

示例:2088*********662

_input_charset

String

请求数据的编码集,支持UTF-8,GBK和GB2312。

示例:UTF-8

notify_url

URL (200)

交易完成之后用来接收异步通知的URL

注意:为了保证可以尽快得到支付结果,如果未收到异步通知,请使用QUERY接口查询付款结果。

示例:http://notify.msp.hk/notify.htm

业务参数

alipay_seller_id

String 不可空

支付宝卖家 ID,与合作伙伴ID的值相同。

示例:2088102012343978

quantity

Number

商品数量

示例:1

trans_name

String(256) 不可空

交易名称,该名称将显示在交易文件列表中。

示例:iPhone

partner_trans_id

String(64) 不可空

商户系统中商户分配的唯一交易记录 ID,可以是销售订单 ID 或付款订单 ID。

示例:2010121000000002

currency

String(8) 不可空

标价币种,用于标记交易价格。此货币也是支付宝与合作伙伴结算的结算货币。使用大写。有关支持货币的详细信息,请参阅支持货币。

注:目前支持货币英镑:GBP、港币:HKD、美元:USD、新加坡元:SGD、日元:JPY、加拿大元:CAD、澳元:AUD、欧元:EUR、新西兰元:NZD、韩元:KRW、泰铢:THB、瑞士法郎:CHF、瑞典克朗:SEK、丹麦克朗:DKK、挪威克朗:NOK、马来西亚林吉特:MYR、印尼卢比:IDR、菲律宾比索:PHP、毛里求斯卢比:MUR、以色列新谢克尔:ILS、斯里兰卡卢比:LKR、俄罗斯卢布:RUB、阿联酋迪拉姆:AED、捷克克朗:CZK、南非兰特:ZAR、人民币:CNY

示例:USD

trans_amount

Number(11,2) 不可空

以标价币种表示的交易金额。范围 0.01 - 100000000.00,精确到小数点后两位。

示例:39.25

buyer_identity_code

String(32) 不可空

16 - 24 位的动态码,用于识别支付宝用户。代码以 25、26、27、28、29 或 30 开头,必须实时从用户的支付宝钱包中读取。

示例:283323458639276347

identity_code_type

String(16) 不可空

标识代码类型。该字段的值为barcode。

示例:barcode

trans_create_time

String(16)

商户系统创建交易的时间,格式为yyyyMMddHHmmss。

示例:20131120153059

memo

String(256)

交易说明

示例:Iphone with special promotion discount

biz_product

String(256) 不可空

产品名称,该字段的值为OVERSEAS_MBARCODE_PAY。

示例:OVERSEAS_MBARCODE_PAY

extend_info

String(512) 不可空

扩展信息,其中包含扩展参数和商户业务信息。详细信息请参阅extend_info

示例:{"secondary_merchant_name":"Lotte","secondary_merchant_id":"123","secondary_merchant_industry":"5812","store_id":"A101","store_name":"McDonald in 966 3rd Ave, New York","terminal_id":"212133131" }

trade_information

String(6000)

交易信息, 详情参见trade_information

示例:{"business_type":"1","hotel_name":"zlidu, sluhg-987, 889utng","check_in_time":"2018-10-20","check_out_time":"2018-10-22"}


#extend_info

参数

描述

secondary_merchant_id

String(64) 不可空

合作伙伴分配的用于标识二级商户的唯一ID。ID可以包含字母、数字和下划线。

示例:A80001

secondary_merchant_name

String(128) 不可空

二级商户的法定注册名称,将显示在钱包和对账文件中,用于标识二级商户。

示例:Muku

secondary_merchant_industry

String(4) 不可空

支付宝分配的用于表示二级商户所属行业的MCC代码。关于MCC代码,详情参见MCC list

示例:7011

store_name

String 不可空

店铺名称

示例:Muku in the Dreieichstrabe

store_id

String(64) 不可空

合作伙伴分配的用于标识二级商户商店的唯一ID。ID可以包含字母、数字和下划线。

示例:BJ_ZZ_001

terminal_id

String

终端 ID

示例:T80001

sys_service_provider_id

String(32)

系统服务提供商ID,用于标识支付服务提供方。

示例:R00998889911


#trade_information

参数描述

business_type

String

业务类型。该字段仅支持以下5种值:

1: 酒店

2: 航空

3: 留学

4: 贸易

5: 其他, 包含所有不属于前四类的其他业务类型。例如,流量充值,机场接机服务等。

若业务类型超过一种,则传入多个且用竖线(|)分隔。

示例:1|2|3|4|5 or 1

hotel_name

String

酒店名称,仅支持数字,字母,空格及,.<>()[]/\-等特殊字符。若存在多个酒店名称,则传入多个且用竖线(|)分隔。

注意:仅在business_type字段值为1时,本字段为必填。

示例:zlidu, sluhg-987, 889utng

check_in_time

Date

入住酒店时间,格式为yyyy-MM-dd。时区为GMT +8。

注意:仅在business_type字段值为1时,本字段为必填。

示例:2018-10-20

check_out_time

Date

离开酒店的时间。格式为yyyy-MM-dd。时区为GMT +8。

注意:仅在business_type字段值为1时,本字段为必填。

示例:2018-10-22

flight_number

String

飞机乘客对应的飞机航班号,如存在转机场景,则传入多个且用竖线(|)分隔。

注意:仅在business_type字段值为2时,本字段为必填。

示例:NWS 996|TWF 8854

departure_time

Date

起飞时间。格式为yyyy-MM-dd HH:mm。时区为GMT +8。如存在转机场景,则传入多个且用竖线(|)分隔。

注意:仅在business_type字段值为2时,本字段为必填

示例:2018-10-22 20:49

admission_notice_url

String

学生的留学录取通知书图片链接

注意:仅在business_type字段值为3时,本字段为必填。

示例:https://www.iconfont.cn/search/index?test

goods_info

String

商品信息,包含商品的SKU名和相应的数量,格式为 SKU_名^数量。若存在超过一件商品,用竖线(|)分隔。

注意:仅在business_type字段值为4时,本字段为必填。

示例:pencil^2|eraser^5|iPhone XS 256G^1

total_quantity

Number

一个订单中的商品总量。

注意:仅在business_type字段值为4时,本字段为必填。

示例:8

other_business_type

String

如果business_type字段值为5(其他),请务必在此字段写明具体从事的行业类型。

示例:Airport pick up service


注意:

金额的小数位数精度(如trans_amount的值)取决于货币值。如果currency的值为JPY或KRW,则金额必须为整数,如100 JPY。其他货币金额精确到小数点后两位,如100.00 USD。其他格式将导致报错,如100.999 USD。


#同步返回参数

被支付宝网关接受的参数:

参数描述

is_success

String(1) 不可空

接口调用的状态,用于指示支付宝网关是否接受该请求。

T:已接受

F:已拒绝

示例:T

sign_type

String 不可空

签名类型,支持RSA,RSA2和MD5。请使用大写形式。如果收到错误码ILLEGAL_SIGN,则不返回此字段。

示例:MD5

sign

String(32) 不可空

签名。如果收到错误代码ILLEGAL_SIGN,则不返回此字段。

示例:59c7275cf3c82f038b7c0076f9888926

result_code

String(32) 不可空

请求处理结果,以下为可能的值:

  • SUCCESS: 支付成功
  • FAILED: 支付失败。当支付失败时,商户可将对应失败结果展示给收银台。
  • UNKNOW: 支付结果未知。对于离线无网交易,商户必须立即撤销交易;对于离线无网转在线有网交易,建议商户系统以一定的频率查询交易状态,直到确定的状态被返回,或者商户在一定的时间后撤销交易。

示例:SUCCESS

error

String(48)

请求不成功时返回的错误码。仅当result_code值为FAILED或者UNKNOW时,返回该字段。具体参见本文档中的错误码

示例:BEYOND_PAY_RESTRICTION

alipay_buyer_login_id

String(64)

买家的支付宝登录ID,可为邮箱地址或者手机号码。实际值已脱敏。

示例:caoxxx@126.com or 186xxx22156

alipay_buyer_user_id

String(16) 不可空

支付宝账号的唯一ID,以2088开头。

示例:2088102130896433

partner_trans_id

String(64) 不可空

与请求中partner_trans_id的值相同。

示例:2010121000000002

alipay_trans_id

String(64)

支付宝为商户请求分配的支付宝交易号。该字段与partner和partner_trans_id形成映射关系。

示例:201311221703338463

alipay_pay_time

String(16)

交易支付的时间,格式为yyyyMMddHHmmss。

示例:201311212323

currency

String(8) 不可空

标价币种,用于标记交易的价格。

示例:USD

trans_amount

Number(11,2) 不可空

以标价币种表示的交易金额。范围 0.01 - 100000000.00,精确到小数点后两位。

示例:39.25

exchange_rate

Number(8,6)

支付请求中的外币与人民币之间的汇率。汇率换算在支付宝交易订单创建时发生。

示例:6.09390000

trans_amount_cny

Number(9,2)

以人民币表示的交易金额,即买家实际支付的金额。

示例:239.19

m_discount_forex_amount

Number(9,2)

如果交易中使用了优惠券/代金券, 此参数会返回结算币种对应的核销金额,否则,无返回金额。

示例:2.19


被支付宝网关拒绝的参数:

参数

描述

is_success

String(1) 不可空

接口调用的状态,用于指示支付宝网关是否接受该请求。

T:已接受

F:已拒绝

示例:F

sign_type

String 不可空

签名类型,支持RSA,RSA2 和 MD5。请使用大写形式。

示例:MD5

sign

String(32) 不可空

签名值

示例:59c7275cf3c82f038b7c0076f9888926

error

String(48)

请求不成功时返回的错误码,用以描述请求失败的原因。详细信息参见本文档中的错误码

示例:BEYOND_PAY_RESTRICTION


#异步返回参数

参数描述
基本参数

notify_time

Timestamp 不可空

通知发送的时间,格式为yyyy-MM-dd HH:mm:ss。

示例:2013-11-27 15:45:58

notify_type

String 不可空

通知类型

示例:trade_status_sync

notify_id

String 不可空

通知ID,合作伙伴可使用通知ID验证通知的合法性。

示例:ac05099524730693a8b330c5ecf72da978

sign_type

String 不可空

签名类型,支持RSA,RSA2和MD5。请使用大写形式。

示例:MD5

sign

String 不可空

签名值

示例:601510b7970e52cc63db0f44997cf70e

notify_action_type

String

收到通知后需要执行的操作,以下为可能的值:

  • createDirectPayTradeByBuyerAction: 创建交易
  • payByAccountAction: 进行支付
  • refundFPAction: 进行退款
  • reverseAction: 撤销交易
  • closeTradeAction: 关闭交易
  • finishFPAction: 完成交易

示例:payByAccountAction

业务参数

out_trade_no

String

商户网站订单系统中的订单号,非支付宝交易号,需确保在商户系统中订单号的唯一性。该字段的值与请求中传入的值保持一致。

示例:990xxxxxxx8989

subject

String(256)

Brief description of the transaction.This parameter is in the first column of Alipay trade details and is important for account checking. This parameter is transmitted by the corresponding request and needs to be returned with its original value. 

交易的简要描述。该字段位于支付宝交易明细中的第一列,对于对账很重要。返回值和请求传入值相同。

示例:kids clothing

trade_no

String(64)

支付宝分配的用来标识一笔交易的流水号。长度16-64字节。

示例:2013112711001004940000394507

trade_status

String

交易状态,详细信息参见交易状态

示例:WAIT_BUYER_PAY

gmt_create

Date

The time when the trade transaction is created. Format: yyyy-MM-dd HH:mm:ss. Use GMT+8. 

交易创建的时间,格式为yyyy-MM-dd HH:mm:ss,时区为GMT+8。

示例:2013-11-27 15:45:57

gmt_payment

Date

支付完成的时间,格式为yyyy-MM-dd HH:mm:ss,时区为GMT+8。

示例:2013-11-27 15:45:57

buyer_email

String

买家的支付宝 ID,可以是电子邮件地址或电话号码。

示例:6xxxxx@qq.com

seller_id

String

买家的唯一支付宝用户ID,由2088开头的16位数字组成。

示例:208xxxxxxxxx8155

buyer_id

String

买家的唯一支付宝用户ID,由2088开头的16位数字组成。

示例:208xxxxxxxxx1127

price

Number

以人民币表示的商品价格,该返回值和请求传入值相同。如果请求中的币种为人民币,以相同的值返回。如果请求中的币种为外币,按照汇率换算成人民币金额。

示例:1.00

quantity

Number

商品数量。返回值和请求传入值相同。

示例:10

total_fee

Number(11,2)

以人民币表示的交易总金额。该字段在请求中被传入,如果请求中的币种为人民币,以相同的值返回。如果请求中的币种为外币,按照汇率换算成人民币金额。

示例:10.00

body

String

对一笔交易的具体描述信息。返回值和请求传入值相同。

示例:Glitter leggings

refund_fee

Number

退款金额,单位为人民币元。

示例:1.00

paytools_pay_amount

String

不同渠道所有成功的支付交易的支付金额。

示例:[{"MCARD":"7.94"},{"TMPOINT":"1.69"},{"BANKCARD":"5.55"}]

extra_common_param

String

该字段返回的值与请求中passback_parameters的值相同。

示例:{"qrcode":"https://qr.alipay.com/9446219319446735"}

m_discount_forex_amount

Number

如果交易中使用了优惠券/代金券, 此参数会返回结算币种对应的核销金额,否则,无返回金额。

示例:2.19


#错误码

错误码

描述

SYSTEM_ERROR

支付宝系统错误

解决方案:调用查询接口alipay.acquire.overseas.query查询此支付交易的状态。有关详细信息,请参阅案例 2。

ILLEGAL_SIGN

签名不正确

解决方案:使用正确的签名,然后重试。

INVALID_PARAMETER

参数错误

解决方案:根据接口说明检查每个请求参数。您可以登录到 iSandbox 并使用 iDiagnose 来精确定位错误。

ILLEGAL_ARGUMENT

参数错误

解决方案:根据接口说明检查每个请求参数。您可以登录到 iSandbox 并使用 iDiagnose 来精确定位错误。如果此错误仍然存在,请联系支付宝技术支持。

ILLEGAL_PARTNER

商户ID不正确

解决方案:确保partner 值与支付宝分配的值一致。如果此错误仍然存在,请联系支付宝技术支持。

ILLEGAL_EXTERFACE

接口配置错误

解决方案:确保service参数的值同接口说明中的值一致。如果此错误仍然存在,联系支付宝技术支持。

ILLEGAL_PARTNER_EXTERFACE

商家无权使用该接口

解决方案:确保您与支付宝的协议已签订。如果需要,请联系支付宝技术支持。

ILLEGAL_SIGN_TYPE

签名类型错误

解决方案:确保sign_type值为 MD5、RSA 或 RSA2。如果此错误仍然存在,请联系支付宝技术支持。

HAS_NO_PRIVILEGE

无权访问

解决方案:请联系支付宝技术支持。

TRADE_BUYER_NOT_MATCH

买家信息不匹配。

解决方案:商家可以要求用户显示或扫描用于上一笔付款的最后一个条形码。或者商家可以刷新partner_trans_id以生成新的付款请求。如果此错误仍然存在,请联系支付宝技术支持寻求帮助。

TRADE_HAS_CLOSE

相应交易已关闭,不允许当前操作。

解决方案:商家可以发送新的付款请求。

TRADE_STATUS_ERROR

当前交易状态不允许此操作。

解决方案:商户系统可以用新partner_trans_id生成付款请求。如果返回相同的错误代码,请使用其他付款方式,如现金或信用卡。

EXIST_FORBIDDEN_WORD

存在违反中国法律内容。

解决方案:商户需要检查trans_name参数的内容。

SELLER_NOT_EXIST

alipay_seller_id的值不正确,找不到相应的帐户。

解决方案:检查卖家 ID 是否正确。

BUYER_NOT_EXIST

buyer_identity_code的值不正确,找不到相应的帐户。

解决方案:建议用户使用其他付款方式,如现金或信用卡。

BUYER_ENABLE_STATUS_FORBID

由于安全原因,买方帐户被禁用。

解决方案:用户需要完成实名验证。用户可以联系支付宝客户服务热线寻求帮助。此功能目前不支持港澳或外国用户使用

BUYER_SELLER_EQUAL

买方帐户和卖方帐户信息相同。

解决方案:更改用户的支付宝帐户信息。

CLIENT_VERSION_NOT_MATCH

客户端版本不匹配。

解决方案:将支付宝钱包更新为最新版本。

SOUNDWAVE_PARSER_FAIL

条形码错误

解决方案:引导用户使用正确的支付宝条码或 QR 码。此外,请收银员检查扫描设备使用是否正确,并确保没有重复扫描用户的条码。

CONTEXT_INCONSISTENT

交易信息不一致。

解决方案:商家需要检查请求数据是否与先前的数据一致。

PRODUCT_AMOUNT_LIMIT_ERROR

产国产品配额。

解决方案:请联系支付宝技术支持。

BUYER_BALANCE_NOT_ENOUGH

买方的支付宝账户没有足够的余额用于当前操作。

解决方案:收银员引导用户充值支付宝余额或将绑定有足够资金的新银行卡

TOTAL_FEE_EXCEED

交易额度超限。

解决方案:建议用户使用其他付款方式,如现金或信用卡。

BUYER_PAYMENT_AMOUNT_DAY_LIMIT_ERROR

买方的总交易金额超过日额度上限。

解决方案:建议用户使用其他付款方式,如现金或信用卡。

BUYER_PAYMENT_AMOUNT_MONTH_LIMIT_ERROR

买方的总交易金额超过月额度上限。

解决方案:建议用户使用其他付款方式,如现金或信用卡。

ERROR_BUYER_CERTIFY_LEVEL_LIMIT

买家未能通过中国人民银行(PBoC)的验证。

解决方案:用户需要完成实名验证。

ERROR_SELLER_CERTIFY_LEVEL_LIMIT

卖方未能通过中国人民银行(中国人民银行)的验证。

解决方案:商家需要补充营业执照和其他一些材料(海外合作伙伴遇到这种情况的可能性较低)。

PAYMENT_REQUEST_HAS_RISK

支付宝检测到当前交易包含风险。

解决方案:用户可以联系支付宝客户服务寻求帮助,或使用其他付款方式,如现金或信用卡。

NO_PAYMENT_INSTRUMENTS_AVAILABLE

当前操作没有可用的付款工具。

解决方案:引导用户再次付款。如果问题仍然存在,请与支付宝技术支持联系寻求帮助。

BUYER_BANKCARD_BALANCE_NOT_ENOUGH

买方的银行账户没有足够的余额用于当前操作。

解决方案:引导用户充值其支付宝帐户或使用另一张银行卡再次支付订单费用。

PAYMENT_FAIL

交易失败。

解决方案:商户可以使用相同的partner_trans_id重试付款。

MOBILE_PAYMENT_SWITCH_OFF

买方关闭了支付宝钱包支付功能,因此无法执行操作。

解决方案:引导用户访问www.alipay.com,转到 [账户管理]- [支付宝钱包设置],并启用 [支付宝钱包支付]。

USER_FACE_PAYMENT_SWITCH_OFF

买方关闭了面对面付款功能,无法执行操作。

解决方案:引导用户关闭其支付宝钱包右上角的 [付款码],然后再次打开它。

ERROR_BALANCE_PAYMENT_DISABLE

买方关闭了余额付款功能,因此无法执行操作。

解决方案:引导用户访问www.alipay.com,转到 [账户管理] - [付款方式和额度],然后打开 [账户支付功能]。

EXCHANGE_AMOUNT_OR_CURRENCY_ERROR

当前操作中的兑换金额或货币不被允许。

解决方案:商家需要检查金额和货币参数是否正确。

ILLEGAL_SECURITY_PROFILE

密钥配置文件不正确。

解决方案:请确保在调用 API 之前已上传公钥。

ILLEGAL_EXTERFACE_FOR_CA_VERIFY

不允许该接口使用证书验证服务。

解决方案:请联系支付宝技术支持寻求帮助

PULL_MOBILE_CASHIER_FAIL

无法唤出移动收银台。

解决方案:请联系支付宝技术支持寻求帮助。

BEYOND_PAY_RESTRICTION

超出支付限额。

解决方案:用户可以使用其他付款方式,如现金或信用卡。

NOT_SUPPORT_PAYMENT_INST

不支持用户使用的支付宝钱包版本。

解决方案:请联系支付宝技术支持寻求帮助。

INVALID_RECEIVE_ACCOUNT

卖方不在收款人名单上。

解决方案:请联系支付宝技术支持寻求帮助。

FORBIDDEN_MERCHANT_INDUSTRY

交易类型不允许。

解决方案:检查secondary_merchant_industry的值,或联系支付宝技术支持。

ILLEGAL_MERCHANT_INDUSTRY

MCC 格式不准确。

解决方案:确保secondary_merchant_industry的值是在MCC 列表中有定义

CURRENCY_NOT_SUPPORT

不支持该货币。

解决方案:参照您与支付宝的协议。

TRADE_TOTAL_FEE_ERROR

总交易费用不正确。

解决方案:检查金额相关参数的值。

RESTRICTED_MERCHANT_INDUSTRY

付款不能超过该行业的金额限定。

解决方案:检查您与支付宝的协议。

ACCESS_FORBIDDEN

商户无权使用该产品。

解决方案:请检查您与支付宝的协议。

SECONDARY_MERCHANT_ID_BLANK

二级商户ID未提供。

解决方案:上传二级商户ID

SECONDARY_MERCHANT_ID_INVALID

二级商户未在支付宝注册。

解决方案:检查所提供的二级商户ID是否正确,以及二级商户是否已在支付宝注册。如果二级商户未在支付宝注册,请立即向支付宝注册二级商户。

STORE_NOT_MATCH

二级商户未在支付宝注册。

解决方案:检查所提供的store ID是否正确,以及二级商户是否已在支付宝注册。如果二级商户未在支付宝注册,请立即向支付宝注册二级商户。

SECONDARY_MERCHANT_STATUS_ERROR

支付宝系统中二级商户的状态不正常。

解决方案:通过发送电子邮件给global.service@alipay.com联系支付宝业务支持。


#结果处理

案例1:当调用因网络问题或请求超时而失败,并且从支付宝无响应时,执行以下操作:

  • 调用alipay.acquire.overseas.query 查询接口获取支付订单的状态。
  • 如果状态为TRADE_SUCCESS,则订单已成功支付。无需采取进一步行动。
  • 如果状态为TRADE_SUCCESS,调用alipay.acquire.cancel接口取消此交易,然后发起新订单。

案例2:如果收到支付宝响应,且以下结果之一被返回,

  • is_success=F,error=SYSTEM_ERROR
  • is_success=T,result_code=FAIL,error=SYSTEM_ERROR
  • is_success=T,result_code=UNKNOW

执行以下操作:

  • 调用alipay.acquire.overseas.query 查询接口获取支付订单的状态;
  • 如果状态为TRADE_SUCCESS,则订单已成功支付。无需采取进一步行动;
  • 如果状态为TRADE_SUCCESS,调用alipay.acquire.cancel接口取消此交易,然后发起新订单。

案例3:如果您收到支付宝is_success=T ,result_code=SUCCESS,则订单已成功支付。

案例4:如果收到以下支付宝响应,表明商家未能取消订单:

  • is_success=F,错误码YSTEM_ERROR
  • is_success=T, result_code=FAIL,错误码SYSTEM_ERROR

参考具体错误码以了解更多信息。


#伪代码

copy
try{
  if(isCase3){ //CASE 3
    doSuccessProcess();
  }
  else if(isCase4){ //CASE 4
    doFailureProcess();
  }
  else{ //CASE 2

    isTradeSuccess = doQuery();

    if(isTradeSuccess){
      doSuccessProcess();
    }
    else{
      doCancelThenStartNewTxnProcess();
    }    
  }

}catch (Exception ex){ //CASE 1
   
    isTradeSuccess = doQuery();

    if(isTradeSuccess){
      doSuccessProcess();
    }
    else{
      doCancelThenStartNewTxnProcess();
    }   
}

#示例

#请求示例

https://intlmapi.alipay.com/gateway.do?service=alipay.acquire.overseas.spot.pay&sign_type=MD5&partner=208xxxxxxxxx8155&_input_charset=UTF-8&currency=USD&alipay_seller_id=208xxxxxxxxx8155&trans_name=IPhone%207%20Plus&partner_trans_id=partner_trans_id_20190904_000035&trans_amount=0.01&buyer_identity_code=282xxxxxxxxxxx0161&identity_code_type=barcode&biz_product=OVERSEAS_MBARCODE_PAY&extend_info=%7B%22secondary_merchant_id%22%3A%221314520%22%2C%22secondary_merchant_name%22%3A%22Mika's%20coffee%20shop%22%2C%22secondary_merchant_industry%22%3A%225499%22%2C%22store_name%22%3A%22Mika's%20coffee%20shop%22%2C%22store_id%22%3A%221993%22%7D&sign=a24bb9a1e7f0e0983841f0e5f9d05189


#返回示例

#同步返回

请求发送成功,业务处理成功:

copy
<alipay>
    <is_success>T</is_success>
    <request>
        <param name="biz_product">OVERSEAS_MBARCODE_PAY</param>
        <param name="_input_charset">UTF-8</param>
        <param name="identity_code_type">barcode</param>
        <param name="sign">a24bb9a1e7f0e0983841f0e5f9d05189</param>
        <param name="alipay_seller_id">208xxxxxxxxx8155</param>
        <param name="trans_name">IPhone 7 Plus</param>
        <param name="trans_amount">0.01</param>
        <param name="extend_info">
        {"secondary_merchant_id":"1314520","secondary_merchant_name":"Mika's coffee shop","secondary_merchant_industry":"5499","store_name":"Mika's coffee shop","store_id":"1993"}
        </param>
        <param name="partner_trans_id">partner_trans_id_20190904_000035</param>
        <param name="partner">208xxxxxxxxx8155</param>
        <param name="service">alipay.acquire.overseas.spot.pay</param>
        <param name="currency">USD</param>
        <param name="sign_type">MD5</param>
        <param name="buyer_identity_code">282xxxxxxxxxxx0161</param>
    </request>
    <response>
        <alipay>
            <alipay_buyer_login_id>186xxxx9365</alipay_buyer_login_id>
            <alipay_buyer_mobile_no>186xxxx9365</alipay_buyer_mobile_no>
            <alipay_buyer_user_id>208xxxxxxxxx6535</alipay_buyer_user_id>
            <alipay_pay_time>201xxxxxxx3538</alipay_pay_time>
            <alipay_trans_id>201xxxxxxxxxxxxxxxxxxxxx3264</alipay_trans_id>
            <currency>USD</currency>
            <exchange_rate>7.19750000</exchange_rate>
            <forex_total_fee>0.01</forex_total_fee>
            <partner_trans_id>partner_trans_id_20190904_000035</partner_trans_id>
            <result_code>SUCCESS</result_code>
            <trans_amount>0.01</trans_amount>
            <trans_amount_cny>0.07</trans_amount_cny>
            <trans_forex_rate>1</trans_forex_rate>
        </alipay>
    </response>
    <sign>64c334190cc57f1d349298d9219fe24b</sign>
    <sign_type>MD5</sign_type>
</alipay>


请求发送成功,业务处理失败

copy
<alipay> 
  <is_success>T</is_success> 
  <request> 
   <param name="trans_create_time">201xxxxxxx0200</param> 
   <param name="memo">alipay internal testing</param> 
   <param name="identity_code_type">barcode</param> 
   <param name="alipay_seller_id">208xxxxxxxxx5594</param> 
   <param name="trans_amount">1</param> 
   <param name="sign_type">MD5</param> 
   <param name="trans_name">iphone</param> 
   <param name="buyer_identity_code">145xxxxxxxxxxxxx5693</param> 
   <param name="partner_trans_id">test04</param> 
   <param name="password">SJV88po0XvIptqWGM4rxP5EQ</param> 
   <param name="sendFormat">normal</param> 
   <param name="sign">c99780c20d9f97b1a8fc2eb3f1506aa2</param> 
   <param name="_input_charset">UTF-8</param> 
   <param name="title">test title</param> 
   <param name="biz_product">OVERSEAS_MBARCODE_PAY</param> 
   <param name="service">alipay.acquire.overseas.spot.pay</param> 
   <param name="quantity">1</param> 
   <param name="partner">208xxxxxxxxx5594</param> 
  </request> 
  <response> 
   <alipay> 
   <error>INVALID_PARAMETER</error> 
   <result_code>FAILED</result_code> 
   </alipay> 
  </response> 
  <sign>1708693b8fc97390087aad556a9ba733</sign> 
  <sign_type>MD5</sign_type> 
 </alipay>


请求失败或上传数据错误:

copy
<?xml version="1.0" encoding="utf-8"?>
<alipay>
    <is_success>F</is_success>
    <error>ILLEGAL_SIGN</error>
</alipay>


#异步返回

copy
https://www.mikascoffee.com/notify?
currency=USD
trade_no=2019120522001461120594234048
subject=123123
paytools_pay_amount=[{"BANKCARD":"0.07"}]
buyer_email=6******@qq.com
gmt_create=2019-12-05 15:18:44
notify_type=trade_status_sync
forex_rate=7.06910000
quantity=1
out_trade_no=partner_trans_id_20191205_151755
seller_id=2088021966388155
notify_time=2019-12-05  15:18:45
trade_status=TRADE_SUCCESS
total_fee=0.07
gmt_payment=2019-12-05  15:18:45
notify_action_type=payByAccountAction
price=0.07
buyer_id=2088812485361127
notify_id=2019120500222151845061120549216429
sign_type=MD5
sign=$$


#更多信息

离线无网转在线有网模式

在大多数情况下,离线无网转在线有网模式将在以下方案中激活:

  • 客户关闭支付宝主页上的离线功能 (www.alipay.com)
  • 支付宝的风险系统检测到支付有风险
  • 用户余额通道已关闭或冻结
  • 系统错误 (支付宝侧支付渠道错误)
  • 支付宝检查支付渠道时检测到资金不足时
  • 交易额度超过阈值,包括当天累计交易额度阈值超过或当月累计交易阈值超过







#