首页新闻找找看学习计划

微信自定义菜单 获取openid慢的问题

0
悬赏园豆:200 [已解决问题] 解决于 2016-07-21 08:16

 使用 Senparc.Weixin.MP SDK

第一次打开 获取openid非常慢,过程:

1.构建连接string baseAuthUrl = OAuthApi.GetAuthorizeUrl;
然后跳转到微信,微信回调时会给到参数code
2.根据code,调用 OAuthApi.GetAccessToken 获取到openid

 

怎么解决慢,大家 是怎么获取openid的?   谢谢!

问题补充:

其实 不是为了 那token,是 为了 拿openid, openid是 区分不同的客户端的。openid 有加到 cookie里、localstorage中,但是 缓存不了多久。 每次打开微信时,openid没了,就要去获取,非常慢。

Qlin的主页 Qlin | 老鸟四级 | 园豆:2403
提问于:2016-07-19 16:16
< >
分享
最佳答案
0

这个是没有办法事情。能够缓存多长,取决于cookie 或者 localstorage 的持续时间。根据我的经验,localstorage持续时间比较长,并没有你说的“每次打开都...”。

收获园豆:40
headchen | 菜鸟二级 |园豆:242 | 2016-07-20 08:39

也不是每次,过了一段时间 没了

Qlin | 园豆:2403 (老鸟四级) | 2016-07-20 15:57
其他回答(4)
0

基本都是这么弄的 第一次没办法 但是 你可以缓存到应用程序中啊 只要不是每次刷新页面都去取不就得了 一次可以用7200秒呢

收获园豆:40
小眼睛老鼠 | 园豆:2774 (老鸟四级) | 2016-07-19 16:17

更新了。是为了获取 openid

支持(0) 反对(0) Qlin | 园豆:2403 (老鸟四级) | 2016-07-19 16:49

@Qlin: openid 是不会变的 只要放到cookie不过期就好了

支持(0) 反对(0) 小眼睛老鼠 | 园豆:2774 (老鸟四级) | 2016-07-19 17:09

@小眼睛老鼠: 

发现 会丢失

支持(0) 反对(0) Qlin | 园豆:2403 (老鸟四级) | 2016-07-20 15:57
0

取得操作Token,缓存到你的数据库,存上你拿到的token时间,下次调用之前判断当前时间和你上一次拿到Token的时间间隔是否在2小时以内,若不是,重新获取操作token,如果2小时以内,则直接拿出来用就行,你每次调用接口都获取操作token的话次数会超过限制的。

收获园豆:40
贫民窟大侠 | 园豆:4270 (老鸟四级) | 2016-07-19 16:23

更新了。是为了获取 openid

支持(0) 反对(0) Qlin | 园豆:2403 (老鸟四级) | 2016-07-19 16:49
0

看问题应该是还没定位到问题出现在哪,所以得先定位问题才能去解决问题。

建议将你的程序记录好日志,记录每一步执行的时间。然后看看到底是哪一个方法导致时间过长。

单单靠猜测的话一步一步的试不如通过日志来查询来的快。

收获园豆:40
smallerpig | 园豆:246 (菜鸟二级) | 2016-07-19 17:08

慢 主要是 请求授权 获取code,再通过code 去http请求获取openid。缓存时间 老是不长

支持(0) 反对(0) Qlin | 园豆:2403 (老鸟四级) | 2016-07-20 15:59
0

可以缓存到应用程序中 每次刷新页面都去取就行了,然后取得操作Token,缓存到你的数据库,存上你拿到的token时间,下次调用之前判断当前时间和你上一次拿到Token的时间间隔是否在2小时以内,若不是,重新获取操作token,如果2小时以内,则直接拿出来用就行,将程序记录好日志,记录每一步执行的时间。然后看看到底是哪一个方法导致时间过长。

收获园豆:40
哈哈练 | 园豆:113 (初学一级) | 2016-07-19 17:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册