w7corp / easywechat

📦 一个 PHP 微信 SDK
https://easywechat.com
MIT License
10.28k stars 2.4k forks source link

建议 #1184

Closed wang199296 closed 6 years ago

wang199296 commented 6 years ago

我用的环境

PHP 版本:php7.1 overtrue/wechat 版本: 4.0 是否使用了框架?框架名称:laravel

问题及现象

以前公司线上环境总是出现问题,是 {"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint: [TLGyGA0887vr57!]"} 困扰了好久,找了好久的问题,才返现是easywechat 每次在进行jssdk生成的时候都会生成一遍token,导致项目总是重复生成token。

image

wang199296 commented 6 years ago

以前我使用的3.0 是改写了token生成的地方, 现在4.0找了好长时间没找到,不知道我应该怎么改?

overtrue commented 6 years ago

才返现是easywechat 每次在进行jssdk生成的时候都会生成一遍token

从哪里证明的哇?我没发现有刷新 token 的逻辑哦

wang199296 commented 6 years ago

很抱歉,我没有表达清楚 场景是这样的, 我们有一套自己的生成token的逻辑,存入redis中,方便多台服务器统一使用, 比如发送模板消息,生成二维码等 我们也引入了easywechat进行使用 问题在这, 比如我生成了一个token,设置了2小时, 已经存入缓存,但是easywechat在进行获取jssdk的时候又生成了一次,导致我们生成的那个token失效了,而我们的发送模板消息这些还在使用这个以前的token, 我们当时被这个问题困扰了很久都没有发现,后来检查一下easywechat才发现这个问题。 只是建议提醒用户一下~

overtrue commented 6 years ago

但是easywechat在进行获取jssdk的时候又生成了一次

我的意思是我的代码并没有这样做啊,哪里看出来它又生成了一次呢

wang199296 commented 6 years ago

这是3.0的版本的代码 image

image

overtrue commented 6 years ago

3.0 也不会每次都重新取,有缓存

wang199296 commented 6 years ago

image

我们没有用你的生成token 我们自己写了一个token,所以才会出现这个问题

overtrue commented 6 years ago

@wang199296 EasyWeChat 也可以存入 redis 啊,就没有这事儿了。

wang199296 commented 6 years ago

恩恩,我就是建议一下, 我们属于先开发的微信相关的接口,后来才引入easywechat 方便把在外部如何使用token和如何设置为redis存储发一下吗?

overtrue commented 6 years ago

官方文档“自定义”章节

wang199296 commented 6 years ago

谢谢

hick commented 6 years ago

抱歉删掉前面的评论, 看走眼了, 以为是在 自定义 -> access_token 环节讲的, 没注意导航栏有 自定义 -> 缓存 这个, 是在后者这里说的.

fulin0532 commented 6 years ago

遇到相同的情况

fulin0532 commented 6 years ago

@wang199296 怎么解决的?