一、概述
支付宝支付API是支持沙箱环境支付的,下载阿里提供的支付宝沙箱版,后台配置好沙箱环境的参数,便可以进行支付测试。
本文主要讲述uniApp进行沙箱环境支付时,在唤起支付宝过程中,会直接进入失败回调的问题。
二、解决方法
一开始这个问题让我以为uniApp不支持支付宝支付,但是试了一下正式环境的支付宝支付,是可以正常唤起的。
后面,在仔细翻阅了文档之后,才知道支付宝支付的SDK,是分生产环境和沙箱环境的,如果不进行设置,默认是生产环境。
如果要进行沙箱环境测试,需要将其设置为沙箱环境才可以正常支付。示例如下。
设置支付宝SDK为沙箱环境
let EnvUtils = plus.android.importClass("com.alipay.sdk.app.EnvUtils");
EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX);
通过上面的代码,执行之后,支付宝的沙箱环境支付就可以正常使用了。
但是,如果是在生产环境,千万不可以执行上述语句!!!
为了防止打正式包的时候,来来回回切换不方便,可以使用uniApp的环境判断来区分当前是生产环境还是测试环境。
增加生产与测试环境判断
if(process.env.NODE_ENV === 'development'){
// 开发环境,设置支付宝支付为沙箱环境
let EnvUtils = plus.android.importClass("com.alipay.sdk.app.EnvUtils");
EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX);
console.log("Init alipay sandbox complete.");
}
三、结语
相比微信,支付宝的沙箱环境还是很方便的,可以帮助我们在测试的时候进行一些大额的支付。