本文共 968 字,大约阅读时间需要 3 分钟。
如果你恰好集成了微信原生登录与友盟三方登录。那么可以继续往下看了。
问题描述:
本来在APP端使用openid就可以了的,结果未想到,后台要我们传一个Code过去,就是微信里面的Resp.Error.code这个 code
友盟登录里是直接获取到access_token,将微信信息给返回来。已经将使用过code了,而我使用的微信原生登录,也是用的同一个WXEntryActivity,故再次使用这个code 的时候,会报:code已经使用过一次,不可再使用第二次的错误了。
错误信息如下:
{"errcode":40029,"errmsg":"invalid code, hints: [ req_id: Cf.y.a0389s108 ]"}
问题解决:
一般的,我们会在Application中进行友盟的初始化,例如下面这一行
PlatformConfig.setWeixin("wx96XXXXXXdb68cf", "f9eacd5b25e2XXXXXX8c040589cef");
那么问题来了,我们在一个APP中既需要用到微信原生登录,又得用到友盟分享,怎么弄呢?那么解决的办法就是,在使用友盟分享的时候,进行友盟分享的初始化,而不是在Application中进行初始化。
这样友盟微信登录就无法拦截到原生微信登录的code了。
再多说几句:
微信登录和分享的回调类别都是WXEntryActivity这个类,区分是分享还是登录的字段是 onResp(BaseResp baseResp)中的
baseResp.getType() 1是登录 2是分享
具体原因我跟踪看了下友盟分享也在自己的api里设置那二个参数,如果我们设置为空的话 他就无法拦截了。
友盟分享里面的unregister()这个函数解绑分享功能 和 删除授权的那个函数
deleteOauth()我都调用了,无法解决code被拦截使用的问题! 被这个问题折腾的蛋疼,特此记录…
关注「蛇崽网盘教程资源」公众号 ,在微信后台回复「领取资源」,获取IT资源200G干货大全。
更多资源请访问:
关注「蛇崽网盘教程资源」公众号 ,在微信后台回复「领取资源」,获取IT资源200G干货大全。
在微信后台回复「130个小程序」,即可免费领取享有导入就能跑的微信小程序
转载地址:https://blog.csdn.net/xudailong_blog/article/details/88980461 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!