Iain
Iain
  • 发布:2019-03-15 17:03
  • 更新:2021-10-11 17:35
  • 阅读:16024

uni-app 解决 app中调用微信支付一直返回 -1 的错误

分类:uni-app

官方文档和示例并没有写清楚。导致app中调用微信支付一直返回 -1 的错误,最终通过百度找到一位大佬成功接通iOS版微信支付、支付宝的案例,结合文档iOS和安卓版orderInfo字段数据格式不一致的情况,稍加修改后调用微信支付成功。以下为安卓版微信支付的调用代码。苹果版请参考点击此处查看iOS版完整案例

                // 安卓调用微信支付  
                uni.requestPayment({  
                    provider: "wxpay",  
                    timeStamp: JSON.stringify(result2.timestamp),  
                    nonceStr: result2.noncestr,  
                    package: result2.package,  
                    signType:"MD5",  
                    paySign: result2.sign,  
                    orderInfo: JSON.stringify({  
                        appid: result2.appid,  
                        noncestr: result2.noncestr,  
                        package: result2.package,  
                        partnerid: result2.partnerid,  
                        prepayid: result2.prepayid,  
                        timestamp: result2.timestamp,  
                        sign: result2.sign,  
                    }),  
                    success:function(res){  
                        uni.showToast({  
                            title:"支付成功",  
                            icon:"success",  
                            duration:2000,  
                            complete:function(){  

                            }  
                        });  
                    },  
                    fail:function(res){  
                        // console.log(JSON.stringify(res));  
                        uni.showModal({  
                             content: "支付失败,原因为: "   res.errMsg,  
                             showCancel: false  
                         })  
                        console.log('fail:'   JSON.stringify(res));  
                    }  
                });
1 关注 分享
c***@163.com

要回复文章请先登录注册

1***@qq.com

1***@qq.com

回复 1***@qq.com :
你好,请问解决了吗
2019-09-12 15:52
我是一棵小草

我是一棵小草

回复 我是一棵小草 :
orderInfo里面是一个json对象,不是字符串
2019-08-24 16:45
我是一棵小草

我是一棵小草

真机调试不行,代签名打包后就可以了,可以看官方demo
uni.requestPayment({
provider: "wxpay",
orderInfo: {
appid: result2.appid,
noncestr: result2.noncestr,
package: result2.package,
partnerid: result2.partnerid,
prepayid: result2.prepayid,
timestamp: result2.timestamp,
sign: result2.sign,
},
2019-08-24 16:44
1***@qq.com

1***@qq.com

楼主请问用了一模一样的代码,并没有吊起微信支付,一直返回-1,求帮助,很着急
2019-08-01 17:01
xiaolan

xiaolan

回复 z***@qq.com :
已经解决了
2019-07-10 11:54
St23eh1i

St23eh1i

orderInfo在安卓app必须是string类型,你用JSON.stringify转完就报JSON Parse error: Unexpected identifier "object";at api request success callback function这个错误
2019-07-10 10:12
St23eh1i

St23eh1i

楼主,我刚才用了你的这个方法可以成功吊起微信支付,但是报了一个JSON Parse error: Unexpected identifier "object";at api request success callback function的错误
2019-07-10 10:04
xiaolan

xiaolan

回复 z***@qq.com :
兄弟 你什么参数传错了 能借鉴一下你的微信支付吗
2019-07-09 14:35
xiaolan

xiaolan

兄弟 你什么参数传错了 能借鉴一下你的微信支付吗
2019-07-09 14:34
z***@qq.com

z***@qq.com

回复 xiaolan :
我这边可以了,我这边是有一个参数传错导致的
2019-07-08 10:10