博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 关于微信原生登录和友盟第三方微信登录来获取code那些坑(40029问题)
阅读量:1825 次
发布时间:2019-04-25

本文共 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个小程序」,即可免费领取享有导入就能跑的微信小程序

在这里插入图片描述


转载地址:http://kbxkf.baihongyu.com/

你可能感兴趣的文章
Java-Activiti插件(eclipse、idea)-包含说明书
查看>>
nginx更改Error页面404等等页面指向
查看>>
原生JS解决复制文本或内容到剪贴板...追加解决jsp中js拼接onclick非数字情况报错的问题
查看>>
jdk1.8新特性 lambda Optional 备忘记录
查看>>
Goland-golang:could not launch process: decoding dwarf section info at offset 0x0: too short
查看>>
个人第一个go样例,gin+gorm
查看>>
go-redis,最简单的增删改查还有json
查看>>
gorm的坑很多,无限填坑中error pq: got 6 parameters but the statement requires 5
查看>>
go get失败解决方案,推荐解决方案
查看>>
Mac上UltraEdit v18.00.0.22 分享
查看>>
go转换json,并且打印报文
查看>>
go中gorm和pg的common数据库配置
查看>>
go中gin框架支持的简单上传下载读取csv等文件
查看>>
go 闭包
查看>>
go 捕获处理error
查看>>
goland 点不出类或方法.
查看>>
go原生库简单合成一张图
查看>>
如何用 Python 预测房价走势?
查看>>
10 行 Python 代码,批量压缩图片 500 张,简直太强大了
查看>>
不到70行Python代码,轻松玩转RFM用户分析模型
查看>>