如果你恰好集成了微信原生登录与友盟三方登录。那么可以继续往下看了。
问题描述:
本来在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()这个函

当集成微信原生登录与友盟第三方微信登录时,遇到40029错误,原因是code已被友盟使用。解决方案是在需要时初始化友盟分享,避免在Application中全局初始化,从而防止友盟拦截微信登录的code。
最低0.47元/天 解锁文章
3312

被折叠的 条评论
为什么被折叠?



