alipayGlobal
概述
产品介绍
随着越来越多的中国消费者在海外商户的网站直接购买商品,商家可集成支付宝移动支付解决方案,提供用户熟悉的用户体验,同时方便商家和消费者关于支付,外汇兑换和结算。 一旦整合,当消费者在商家的网站支付的时候,会看到一个支付宝付款按钮。
- 用户点击支付按钮,选择支付宝来支付
- 用户将被重定向到支付宝站点。他/她可以登录,并完成支付宝付款
- 一旦付款完成后,用户将被重定向到商家网站的支付结果页面。商家可以检查结果,并决定如何进行下一步操作。
- 同时支付宝会将支付结果以异步通知发送给商家。该通知有可靠内置重试机制。
详情参考支付宝国际支付产品介绍。
接入前准备阶段
1、商户在开始技术集成前,需要先跟支付宝签订相关产品的合同。如需帮助,请联系支付宝国际业务团(global.service@alipay.com)。
2、商户签约审核
商户登录global.alipay.com来查看合同的进展情况。
3、商户密钥管理
- 生成步骤
- 上传步骤:商户将RSA密钥发送给支付宝国际技术支持团队(overseas_support@service.alibaba.com)要求在后台上传
正式接入阶段
服务端 负责生成订单及签名,及接受支付异步通知。
客户端 负责使用服务端传来的订单信息调用支付宝支付接口,及根据SDK同步返回的支付结果展示结果页。
服务端接入
私钥必须放在服务端,签名过程必须放在服务端。
1、准备
1) 确定开发语言
2) 确定编码格式
3) 确定签名方式(PID + 密钥)
4) 确定服务器配置
3、通知处理什么时候会通知?收到通知时注意验签。
详情参考支付宝国际支付快速开始。
客户端接入
参考本模块接口
模块概述
alipayGlobal封装了支付宝的国际支付 SDK,开发者只需配置从支付宝申请的相应的参数即可将支付宝国际支付功能集成到自己的 app。若当前设备(客户端)未安装支付宝 app,则调用内嵌网页版支付。支付宝支付处理流程请参考支付宝官方文档 交互流程。 支付宝服务器端代码参考快速开始之 服务器端接入。
不能同时添加的模块:ipayNow,pingpp,aliPay,aliPayTrade,aliPayPlus,aliPayTradePlus
iOS端配置说明:
- 此模块必须在真机环境下使用
- 使用此模块前必需制作
Info.plist
文件以配置ATS,如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>alipay.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
<key>NSTemporaryExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<key>alipayobjects.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
<key>NSTemporaryExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
</dict>
</dict>
</plist>
3.使用此模块前需先配置 config.xml文件,方法如下:
- 名称:alipayGlobal
- 参数:urlScheme
- 配置示例:
```js
<feature name="alipayGlobal">
<param name="urlScheme" value="alipayGlobalA000000011" />
</feature>
字段描述:
urlScheme:(必须配置)用于实现应用间跳转及数据交换,本应用可以启动支付宝客户端,也可以从支付宝客户端跳回本应用(此时需要云编译或自定义loader才能测试本功能)。urlScheme 的 value 值由字符串 ‘alipayGlobal’ 和本应用的 widgetId 拼接而成 ```
4.必须添加白名单,如下:
<preference name="querySchemes" value="alipayshare,alipay,alipaytlshare" />
关于白名单解释详情参考 APICloud 官方文档之——-白名单配置
模块接口
payOrder
调用支付宝客户端支付
payOrder({params}, callback(ret, err))
params
orderInfo:
- 类型:字符串
- 描述:支付信息(由订单信息,签名,签名类型组成),支付信息生成(此过程需放在服务器端)可参照支付宝官方文档请求参数说明
showLoading:
- 类型:布尔类型
- 描述:(可选项)是否显示loading(仅android支持)
- 默认:true
callback(ret)
ret:
- 类型:JSON 对象
- 描述:返回结果需要通过 resultStatus 以及 result 字段的值来综合判断并确定支付结果。在 resultStatus=9000,并且success=“true” 以及 sign=“xxx” 校验通过的情况下,证明支付成功。其它情况归为失败。较低安全级别的场合,也可以只通过检查resultStatus以及success=“true” 来判定支付结果。
- 支付成功的完成信息示例:
{
memo:"",
resultStatus:"9000"
result:"partner=\"2088101568358171\"&out_trade_no=\"0819145412-6177\"&subject=\"测试\"&body=\"测试测试\"&total_fee=\"0.01\"¬ify_url=\"http://notify.msp.hk/notify.htm\"&service=\"mobile.securitypay.pay\"&payment_type=\"1\"&_input_charset=\"utf-8\"&it_b_pay=\"30m\"&success=\"true\"&sign_type=\"RSA\"&sign=\"hkFZr+zE9499nuqDNLZEF7W75RFFPsly876QuRSeN8WMaUgcdR00IKy5ZyBJ4eldhoJ/2zghqrD4E2G2mNjs3aE+HCLiBXrPDNdLKCZgSOIqmv46TfPTEqopYfhs+o5fZzXxt34fwdrzN4mX6S13cr3UwmEV4L3Ffir/02RBVtU=\""
}
示例代码
var alipayGlobal = api.require('alipayGlobal');
alipayGlobal.payOrder({
orderInfo: 'app_id=2015052600090779&biz_content=%7B%22timeout_express%22%3A%2230m%22%2C%22seller_id%22%3A%22%22%2C%22product_code%22%3A%22QUICK_MSECURITY_PAY%22%2C%22total_amount%22%3A%220.01%22%2C%22subject%22%3A%221%22%2C%22body%22%3A%22%E6%88%91%E6%98%AF%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE%22%2C%22out_trade_no%22%3A%22IQJZSRC1YMQB5HU%22%7D&charset=utf-8&format=json&method=alipay.trade.app.pay¬ify_url=http%3A%2F%2Fdomain.merchant.com%2Fpayment_notify&sign_type=RSA2×tamp=2016-08-25%2020%3A26%3A31&version=1.0&sign=cYmuUnKi5QdBsoZEAbMXVMmRWjsuUj%2By48A2DvWAVVBuYkiBj13CFDHu2vZQvmOfkjE0YqCUQE04kqm9Xg3tIX8tPeIGIFtsIyp%2FM45w1ZsDOiduBbduGfRo1XRsvAyVAv2hCrBLLrDI5Vi7uZZ77Lo5J0PpUUWwyQGt0M4cj8g%3D'
}, function(ret) {
api.alert({
title: '支付结果',
msg: JSON.stringify(ret),
buttons: ['确定']
});
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本