微信登录-收不到token

2024-05-06

我只是遵循了本文中提到的所有内容example https://github.com/aaronbruckner/wechatAndroidLoginDemo来自亚伦·布鲁克纳。尝试使用和不使用布尔标志来启用checkSignature.

初始化API:

api = WXAPIFactory.createWXAPI(getContext(), WXEntryActivity.APP_ID,
            true);

发送寄存器:

api.registerApp(WXEntryActivity.APP_ID);

发送登录信息:

SendAuth.Req req = new SendAuth.Req();
      req.scope = "snsapi_userinfo";
      req.state = "none";
      api.sendReq(req);

当尝试登录时,我收到微信的确认屏幕。当点击“确认登录”时,我被重定向到我的应用程序,但没有任何反应。

The WXEntryActivity.class没有被调用 - 所以我没有收到任何令牌来继续我的身份验证。

签名设置为时的日志false:

D/MicroMsg.PaySdk.WXFactory: createWXAPI, appId = wx41XXXXXXXXX41, checkSignature = false
D/MicroMsg.SDK.WXApiImplV10: <init>, appId = wx41XXXXXXXXX41, checkSignature = false
D/MicroMsg.SDK.WXMsgImplComm: ignore wechat app signature validation
D/MicroMsg.SDK.WXApiImplV10: registerApp, appId = wx41XXXXXXXXX41
D/MicroMsg.SDK.WXApiImplV10: registerApp, appId = wx41XXXXXXXXX41
D/MicroMsg.SDK.WXApiImplV10: register app com.my.packagename.debug
D/MicroMsg.SDK.MMessage: send mm message, intent=Intent { act=com.tencent.mm.plugin.openapi.Intent.ACTION_HANDLE_APP_REGISTER (has extras) }, perm=co
D/MicroMsg.SDK.WXMsgImplComm: ignore wechat app signature validation
I/MicroMsg.SDK.WXApiImplV10: sendReq, req type = 1
D/MicroMsg.SDK.MMessageAct: send, targetPkgName = com.tencent.mm, targetClassName = com.tencent.mm.plugin.base.stub.WXEntryActivity
D/MicroMsg.SDK.MMessageAct: send mm message, intent=Intent { flg=0x18000000 cmp=com.tencent.mm/.plugin.base.stub.WXEntryActivity (has extras) }

签名时的日志true基本相同,除了:

D/MicroMsg.SDK.WXMsgImplComm: check signature:3XXXXXXXXX02eb30820254a00302010202XXXXXXXXXXXXXXXXXXXXXXXXX
D/MicroMsg.SDK.WXMsgImplComm: pass

我有正确的应用程序签名 MD5,没有:添加到微信开发控制台以及packageNamecom.my.packaname.debug因为我正在使用我的 debug.keystore 来签署我的调试版本。WXEntryActivity在我里面com.my.packagename.wxapi并在我的中注册AndroidManifest.xmlexported旗帜。 我还添加了一条规则proguard-rules.pro为了安全起见:

 -keep class com.tencent.mm.sdk.** {
      *;
  }

只是不明白为什么onCreate and onResp of the WxEntryActivity没有被调用来获取令牌。


找到解决方案:

问题是由包名引起的。

正如我使用两个构建变体release & debug, 我期望包名是com.my.packagename.debug对于我的调试构建(设置在build.gradle)所以在微信的管理中心我使用com.my.packagename.debug。 问题是WxEntryActivity通过反射调用,我的WxEntryActivity位于我的com.my.packagename.wxapi.

因此找不到该类,需要将其放入“手动”包中.debug.wxapi.

因此,在使用发布和调试时,您需要位于两个不同包中的两个活动。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信登录-收不到token 的相关文章

随机推荐