境外分为两种:
- 普通商户版
- 服务商版
普通商户版:
1.支付方式:
- 刷卡支付
- 公众号支付
- 扫码支付
- APP支付
2.报关接口:
用于商户提交海关需要的订单附近信息服务商版包括的支付方式有:
- 刷卡支付
- 公众号支付
- 扫码支付
1. 普通商户版
1.1 刷卡支付
应用场景:
收银员使用扫码设备读取微信用户刷卡授权码以后,二维码或条码信息传送至商户收银台,由商户收银台或者商户后台调用该接口发起支付。
**⚠️提醒1:**提交支付请求后微信会同步返回支付结果。当返回结果为“系统错误”时,商户系统等待5秒后调用【查询订单API】,查询支付实际交易结果;当返回结果为“USERPAYING”时,商户系统可设置间隔时间(建议10秒)重新查询支付结果,直到支付成功或超时(建议30秒);
**⚠️提醒2:**在调用查询接口返回后,如果交易状况不明晰,请调用【撤销订单API】,此时如果交易失败则关闭订单,该单不能再支付成功;如果交易成功,则将扣款退回到用户账户。当撤销无返回或错误时,请再次调用。注意:请勿扣款后立即调用【撤销订单API】,建议至少15秒后再调用。撤销订单API需要双向证书。
1.1.1 接口url:
- https://apihk.mch.weixin.qq.com/pay/micropay (建议接入点:东南亚)
- https://apius.mch.weixin.qq.com/pay/micropay (建议接入点:其它)
- https://api.mch.weixin.qq.com/pay/micropay (建议接入点:中国国内)
1.1.2 与境内对比参数
除了以下参数,其他都和国内一致。
名称 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
版本号 | version | 否 | String(32) | 1.0 | 固定值 1.0 |
商品详情 | detail | 否 | String(6000) | 商品详细列表,使用Json格式,传输签名前请务必使用CDATA标签将JSON文本串保护起来。 |
- 商品详情类型
{
"goods_detail":[
{
"goods_name":"iPhone6s 16G",
"quantity":1,
},
{
"goods_name":"iPhone6s 32G",
"quantity":1,
}
]
}
复制代码
- 商品详情描述
goods_detail
└ goods_name String 必填 256 商品名称
└ quantity Int 必填4 商品数量
复制代码
1.1.3 支付方式:
- 免密支付流程
- 验密支付流程
1.2 公众号支付
**注意:**商户也可以把商品网页的链接生成二维码,用户扫一扫打开后即可完成购买支付。
交互细节:
以下是支付场景的交互细节,请认真阅读,设计商户页面的逻辑:
- (1)用户打开商户网页选购商品,发起支付,在网页通过JavaScript调用getBrandWCPayRequest接口,发起微信支付请求,用户进入支付流程。
- (2)用户成功支付点击完成按钮后,商户的前端会收到JavaScript的返回值。商户可直接跳转到支付成功的静态页面进行展示。
- (3)商户后台收到来自微信开放平台的支付成功回调通知,标志该笔订单支付成功。
注:(2)和(3)的触发不保证遵循严格的时序。JS API返回值作为触发商户网页跳转的标志,但商户后台应该只在收到微信后台的支付成功回调通知后,才做真正的支付成功的处理。
1.2.1 接口url:
- https://apihk.mch.weixin.qq.com/pay/unifiedorder (建议接入点:东南亚)
- https://apius.mch.weixin.qq.com/pay/unifiedorder (建议接入点:其它)
- https://api.mch.weixin.qq.com/pay/unifiedorder (建议接入点:中国国内)
**注:**商户可根据实际请求情况选择最优域名进行访问,建议在接入时做好兼容,当访问其中一个域名出现异常时,可自动切换为其他域名。
1.2.2 与境内对比参数
和刷卡支付一样的参数区别。
1.3 扫码支付
几乎和公众号支付相同
1.4 APP支付
商户系统先调用该接口在微信支付服务后台生成预支付交易单,返回正确的预支付交易回话标识后再在APP里面调起支付。
除了请求参数“版本号” 和“商品详情” 不一样,其他都和境内一致。
1.5 报关接口
用于商户提交海关需要的订单附件信息。报关接口只支持一个月内的支付订单进行报关申请。 以下为财付通的海关备案信息,一般海关会提供,如果没有请参考下表: 财付通海关备案名称:财付通支付科技有限公司 财付通10位海关注册编码:440316T004
1.5.1 订单附加信息提交接口
1.5.1.1 url
URL地址:https://api.mch.weixin.qq.com/cgi-bin/mch/customs/customdeclareorder
重点注意:请求接口前请先在以下页面提交您的海关信息,所有你需要报关的海关信息都需要提交,且信息真实有效:https://pay.weixin.qq.com/index.php/extend/customs
1.5.2 订单附加信息查询接口
商户通过订单号查询提交的订单附加信息。如果是微信收集的实名信息,查询接口不返回实名信息内容.
2. 服务商版
2.1 刷卡支付
2.1.1 url
https://api.mch.weixin.qq.com/pay/micropay
2.1.1 参数区别
和普通商户版刷卡支付一样的参数区别。
2.2 公众号支付
2.2.1 url
https://api.mch.weixin.qq.com/pay/unifiedorder
2.2.2 参数区别:
名称 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
商品ID | product_id | 否 | String(32) | 12235413214070356458058 | trade_type=NATIVE,此参数必传。此id为二维码中包含的商品ID,商户自行定义。 |
用户标识 | openid | 否 | String(128) | oUpF8uMuAJO_M2pxb1Q9zNjWeS6o | trade_type=JSAPI,此参数必传,用户在主商户appid下的唯一标识。openid和sub_openid可以选传其中之一,如果选择传sub_openid,则必须传sub_appid。下单前需要调用【网页授权获取用户信息】接口获取到用户的Openid。 |
用户子标识 | sub_openid | 否 | String(128) | oUpF8uMuAJO_M2pxb1Q9zNjWeS6o | trade_type=JSAPI,此参数必传,用户在子商户appid下的唯一标识。openid和sub_openid可以选传其中之一,如果选择传sub_openid,则必须传sub_appid。下单前需要调用【网页授权获取用户信息】接口获取到用户的Openid。 |
2.3 扫码支付
和公众号支付一致。