微信支付签名配置正确,但返回-1,调不出支付界面(有的手机能调起,有的不能)

首先,我反复确认了三次以上,配置的签名没有问题,打包后的签名没有问题, request.checkArgs()返回true,然后——

同一个包,在测试机上有的手机能调出支付界面,有的不能,然而在调起支付失败的手机上,登录我的微信就可以调出,登录我同事的就不行。

最后发现的问题是:微信会对之前的调用生成缓存,如果你之前安的本来是debug(未签名)的包,那时候点击微信支付失败了,微信缓存下了这个状态,当你重新安装release(已签名)的包再调用时,会依然返回-1调起失败。这个问题我试过的是这样,甚至在我先安了release调起成功之后,卸载App,安装debug版,这时候的第一次点击也是可以唤起支付界面的。

so,解决办法是:

1.重启下手机或者清理下微信的缓存

如果不行,先表摔手机——>

2.清空微信数据

要还是不行——>

3.卸载重装微信

一般这样是OK了

当然了,得看具体情况,如果你试了我说这些依然不OK,那么你可以摔手机,但是不能骂人

顺便记录一下,微信支付成功后,回调界面关闭时会有一个闪屏(有的手机是没有的),这是因为WXPayEntryActivity本身是一个空白界面,finish时会有闪屏的效果,

解决这个问题只需要将WXPayEntryActivity变成透明:

android:theme="@android:style/Theme.Translucent"

这样视觉上就感受不到它的finish效果。

微信登录与微信分享同回调WXEntryAcitivity,区别是BaseResp.getType()返回值不同

BaseResp.getType() == 1;则为微信登陆,

BaseResp.getType() == 2;则为微信分享(之前好像是0)

原文地址:https://www.cnblogs.com/Sharley/p/10790089.html