框架简介
更新日志
准备工作
安装使用
基础支持
接收消息
发送消息
用户管理
自定义菜单
实例演示
多客服功能
智能接口
推广支持
安全性
序
快速开始
接口
链接
定时器
协议
测试
建议
更新日志
1、类简介:除了被动相应用户之外,在主动给用户发送消息,用户组管理等高级操作,是需要AccessToken授权的,我们调用一个URL给微信服务器,微信服务器会返回给我们一个散列字符串,在高级操作的时候需要将此串以参数的形式发送。散列字符串10分钟内有效,过期需要重新获取,获取新的后之前的全部失效。
2、使用命名空间:use LaneWeChat\Core\AccessToken;
3、参数:无
4、获取AccessToken
AccessToken::getAccessToken(); 该调用会返回微信服务器散列后的AccessToken字符串。
5、温馨提示
如果暂且用不到此功能,请跳过。最后来看这里!
6、功能补充
有一个地方需要用户自行完善,根据介绍我们已经知道了,获取AccessToken只有10分钟的有效期,过期需要重新获取。因此,我们需要存储这个AccessToken。
由于大家的存储方式各不相同,有Mysql的,有Redis的,有MongoDB的,还有Session的。所以这里我讲存储和读取给留空了。
流程:AccessToken类,public方法只有一个,就是getAccessToken()。这个方法会调用一个私有方法_checkAccessToken()来检测AccessToken是否存在并且是否过期,如果不存在或过期,则调用私有方法_getAccessToken()
完善步骤:
1)、打开core/accesstoken.lib.php文件。
2)、私有方法_getAccessToken()的倒数第二行(return是倒数第一行),在这个地方,请讲变量$accessTokenJson存储起来,变量$accessTokenJson是一个字符串。
3)、私有方法_checkAccessToken()的第一行就是读取操作(有一行伪代码$accessToken = YourDatabase::get('access_token');),将刚才第二步的存储的东西给读出来,并且赋值给$accessToken。
4)、在第二步的存储,第三部的读取的时候,请不要修改数据,仅仅完善一个读和存的操作就可以了。
Reply: izhi On 2015-06-18 22:57:58
请问$accessToken = YourDatabase::get('access_token');这局是把YourDatabase换成是自己的数据库名吗?我用的SAE,替换之后显示错误。Fatal error: Class 'LaneWeChat\Core\SAE_MYSQL_DB' not found in core/accesstoken.lib.php on line 58。
Reply: eden_cola On 2016-01-08 17:43:52
目前的最新版本中,缓存accessToken的文件使用的是相对路径,这在同时存在多个不同目录下的入口文件时会产生冲突,比如尝试将LaneWechat引入到ThinkPhp的项目中使用时,thinkphp的index.php经常和LaneWechat的wechat.php不在同一目录
Reply: eden_cola On 2016-01-08 17:51:41
我是新程序员……不是很清楚该怎么反馈问题,我这次的解决方法是在config.php中添加了一个新的配置项,设定一个固定的缓存目录
Reply: yxs On 2014-12-08 09:27:50
现在 AccessToken 的 有效期 增加为了 7200
回复