reactnative微信支付困扰了将近两周的问题终于得到了解决。

##问题背景:在做react-native微信支付的时候,ios遇到了闪退的问题,我这个项目是两个人开发的,另一个是个安卓转过来的妹子,注意:问题就出在这儿了。
支付的配置是两个人分开配,但是调起支付的代码是一套。
我们采用的是react-native-wechat这个插件来做的。
##问题描述:
1.在ios上,模拟真机运行完全没问题,打包出来就有的手机调不起来,有的可以。在安卓上完全没问题。
2.点击微信支付,那个按钮就会闪退,换了个按钮,直接调微信也闪退。
3.用react-native-wechat这个插件做微信登录没问题,微信支付就会闪退。
4.调不起来微信支付的手机有时候可能调起来。
5.个人猜测与ios版本没关系,因为能调起来微信支付的手机有高版本的也有低版本的。
6.个人猜测与微信版本也没关系,因为同样是最新版本,有的就可以调起来,有的就不行。
但其实问题的真正原因跟这些都没关系。
但是为了解决这个问题,以至于我把微信授权登录,微信分享等都做了试过了没问题。但是就是调支付的时候ios部分机型闪退。
问题解决:

注意看:
wechat.pay(
{
partnerId: data.partnerid, // 商家向财付通申请的商家id
prepayId: data.prepayid, // 预支付订单
nonceStr:data.noncestr, // 随机串,防重发
timeStamp:Number(data.timestamp), // 时间戳,防重发
package:data.package, // 商家根据财付通文档填写的数据和签名
sign: data.sign, // 商家根据微信开放平台文档对数据做的签名
}
).then((requestJson)=>{
//支付成功回调
this.getIsOrderPayState();
}).catch((err)=>{
console.log(err)
BaseToast.getToast(“微信支付失败”);
// BaseToast.getToast(“微信支付失败”);
});

注意看:timeStamp这个东西,在安卓上要接收的是一个字符串,ios上接收的是一个数字。但是安卓的妹子在做的时候就在这之前已经直接给转了,我一直不知道,当时她也不知道不同的平台上边会有这个差异。所以才导致了ios的闪退,后台有时候识别不了这个参数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值