cordova 打包APP 支付宝支付功能

最近公司开发APP项目 开始是计划使用Vue+Hbuilder打包APP,后期因为其他原因最后选了cordova打包APP,造成了之前h5支付无法使用。最后使用使用支付宝插件cordova-plugin-alipay-v2,在开发过程中刚开始使用支付宝沙箱模式,但是报错40002错误,很头疼,最后百度 发现少了一个配置,下面将是解决方案,希望可以帮助到小伙伴们, 我也是前端新手小白鼠,不喜欢勿喷

1.首先拥有cordova环境,具体方法如下

cordova 环境配置

2.添加支付插件

cordova plugin add cordova-plugin-alipay-v2 --variable APP_ID= your AppId //添加依赖(your AppId在支付宝开放平台APPid)

在你的package.json文件中会有这样的代码
)
添加支付宝插件, 其中APP_ID就是你所申请应用的id值(图片中的是沙箱id)

3.项目中使用支付插件

// An highlighted block
        MoneyTop({ //此函数是向后台发送请求。里面是此订单的参数
        channel:this.type, //支付方式 weChat 或者 aliPay因为这里是支付宝,所有是alipay
        price:this.price,
        type:1
        })
        .then(res=>{
          let payInfo=res //后台返回的结果,是一个订单信息
          //类似于app_id=2015052600090779&biz_content=%7B%22timeout_express%22%3A%2230m%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&notify_url=http%3A%2F%2Fdomain.merchant.com%2Fpayment_notify&sign_type=RSA2&timestamp=2016-08-25%2020%3A26%3A31&version=1.0&sign=cYmuUnKi5QdBsoZEAbMXVMmRWjsuUj%2By48A2DvWAVVBuYkiBj13CFDHu2vZQvmOfkjE0YqCUQE04kqm9Xg3tIX8tPeIGIFtsIyp%2FM45w1ZsDOiduBbduGfRo1XRsvAyVAv2hCrBLLrDI5Vi7uZZ77Lo5J0PpUUWwyQGt0M4cj8g%3D
          cordova.plugins.alipay.payment(payInfo,function success(e){ //调用支付插件,
            alert("支付成功")
          },function error(e){
            alert("支付失败")
          });
        })
        .catch(err=>{
        })

此时打包apk使用时会发现无法调用起沙箱版支付宝 会报错40002

4.找到该文件platforms/android/src/cn/hhjjj/alipay/alipay.java ,在payment中的PayTask前面加一行代码:

com.alipay.sdk.app.EnvUtils.setEnv(com.alipay.sdk.app.EnvUtils.EnvEnum.SANDBOX);
这个时候就可以使用沙箱版支付宝去测试接口是否可以使用,但是这个只限于测试版本,上线之后需要将此代码注释

第一次做APP。第一次使用该插件,第一次写博客,大佬勿喷,

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐