支付宝的cordova插件其实在github上已经有很多了,但是都已经是以前的版本了。这个插件是基于 alipaySdk-20170710.jar 开发,加入了沙箱测试模式,大多数情况的报错都是,你 74FF app没有上线,在服务端生产的orderinfo,客户端没有配置沙箱模式,请求的是正式支付宝导致,所以有了这个可以通过参数配置,指定连接正式支付宝还是沙箱环境。
- 根据支付宝的说明文档的建议,为保证安全,签名都放到后端去做,前端只需要接收后台传入签名字符串,使用该插件调用支付宝SDK完成支付
- APP_ID:对应开放平台中应用的APPID,主要用于iOS平台xcode构建URL Schemes
- android (alipaySdk-20170710.jar)
- iOS
cordova plugin add https://github.com/ejiyuan/cordova-plugin-alipay.git --variable APP_ID=[your AppId] --variable SANDBOX_MODE=[true]
// 第一步:订单在服务端签名生成订单信息,具体请参考官网 https://docs.open.alipay.com/54/106370/ 进行签名处理
this.payService.getOrder().then(data => {
// 第二步:调用支付插件
cordova.plugins.alipay.payment(data, function success(e) {
console.log(e);
alert(e);
},
function error(e) {
console.log(e);
});
})
//e.resultStatus 状态代码 e.result 本次操作返回的结果数据 e.memo 提示信息
//e.resultStatus 9000 订单支付成功 ;8000 正在处理中 调用function success
//e.resultStatus 4000 订单支付失败 ;6001 用户中途取消 ;6002 网络连接出错 调用function error
//当e.resultStatus为9000时,请去服务端验证支付结果
/**
* 同步返回的结果必须放置到服务端进行验证(验证的规则请看https://doc.open.alipay.com/doc2/
* detail.htm?spm=0.0.0.0.xdvAU6&treeId=59&articleId=103665&
* docType=1) 建议商户依赖异步通知
*/