yorkie / react-native-wechat

🚀 WeChat login, share, favorite and payment for React-Native on iOS and Android platforms (QQ: 336021910)
https://npmjs.org/package/react-native-wechat
MIT License
2.91k stars 713 forks source link

微信支付闪退 #383

Open ResponseState200 opened 6 years ago

ResponseState200 commented 6 years ago

react-native : 0.51 react-native-wechat : 1.9.9 微信平台签名已经确认无误,调用分享到朋友圈与微信好友正常,但是调用微信支付,直接闪退APP

代码如下,请大佬拯救一下 let result = await wechat.pay( { partnerId:"这里是正常的商户号", // 商家向财付通申请的商家id prepayId: this.state.payMessage.prepay_id, // 预支付订单 nonceStr: this.state.payMessage.nonceStr, // 随机串,防重发 timeStamp: this.state.payMessage.timeStamp, // 时间戳,防重发 // package: this.state.payMessage.package, // 商家根据财付通文档填写的数据和签名 package: "Sign=WXPay", // 商家根据财付通文档填写的数据和签名 sign: this.state.payMessage.paySign // 商家根据微信开放平台文档对数据做的签名 } ).then((suceess)=>{ console.log("suceess"); console.log(suceess); // ToastAndroid.show(suceess,10000); }).catch((error)=>{ // ToastAndroid.show(error,10000); })

ResponseState200 commented 6 years ago

已经解决了,自己回答一下,在wxapi的文件夹下,写少了一个WXPayEntryActivity.java导致的闪退,具体的内容可以仔细看首页中的说明,是有写的,只是自己看漏了,不过现在是调用会闪一下,然后没有任何反应,也不报错.

ResponseState200 commented 6 years ago

@yorkie 作者大大,目前我有个很棘手的问题,就是我调用支付之后,会闪一下屏,然后就完全没反应了.我也把相关的issuse看过了,签名和包名我核对了很多次了,而且我打包出来的也是正式包,分享没有问题,就是支付调用不成功

dltjiangfeipeng commented 6 years ago

请问 你解决了么?我也是这种情况,我打的包是测试包

ResponseState200 commented 6 years ago

@dltjiangfeipeng 没解决....各种办法都试过了,重新签名,重新打的正式包,核对签名N多次....而且如果微信不是登陆的状态,就能进入到微信的登录界面,如果是登陆状态,那就闪一下,然后什么反应都没有了....你的你要打正式包,测试包每次的签名都会变的,容易对应不上你微信公众号上的签名

Leadrive commented 6 years ago

我昨天也是花了一天时间,发现是自己写错一个值。报的是签名验证失败。 这是我的APP端 wechat.pay({ // appid: params.app_id, // 不需要加这个。 partnerId: params.mch_id, // 商家向财付通申请的商家id prepayId: params.prepay_id, // 预支付订单 package: params.package, // 商家根据财付通文档填写的数据和签名 nonceStr: params.nonce_str, // 随机串,防重发 timeStamp: params.time_stamp, // 时间戳,防重发. sign: params.pay_sign // 商家根据微信开放平台文档对数据做的签名 }).then((requestJson)=>{

服务器端 } else { packageValue = "Sign=WXPay" payParams.SetString("appid", appID) payParams.SetString("partnerid", mchID) payParams.SetString("noncestr", nonceStr) payParams.SetString("prepayid", prepayID) payParams.SetString("timestamp", timeStamp) payParams.SetString("package", packageValue) } paySign := client.Sign(payParams) payParams.SetString("sign", paySign) 返回这几个值给APP。

shan1iu commented 5 years ago

不知道你们有没有用react-native-config这个库, 有的话.env文件也要配的, ios端还需要去XCode配

liuoomei commented 5 years ago

@dltjiangfeipeng 没解决....各种办法都试过了,重新签名,重新打的正式包,核对签名N多次....而且如果微信不是登陆的状态,就能进入到微信的登录界面,如果是登陆状态,那就闪一下,然后什么反应都没有了....你的你要打正式包,测试包每次的签名都会变的,容易对应不上你微信公众号上的签名

老哥解决了吗,我也遇到类似的错误,分享都没有问题,支付的时候微信闪烁一下就没有了,请问解决了吗

KouSyurei commented 4 years ago

大佬们能提供一下你们的解决思路或者方法吗,我也在这个问题上卡了1天了,分享功能正常,参数正确 @liuoomei @dltjiangfeipeng @ResponseState200