微信 getAccessToken方法详解及实例


Posted in PHP onNovember 23, 2016

memcache缓存存储用户信息7000秒

<?php
function getAccessToken($appid,$appsecret) 
{
  $mem = new CacheMemcache();
  $acc = $mem->get('access_token_'.$appid);
  if (!$acc) 
  {
    $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";
    $result = https_request($url);
    $jsoninfo = json_decode($result, true);
    $access_token = $jsoninfo['access_token'];
    if ($access_token) 
    {
      $expire = time() + 7000;
      $mem = new CacheMemcache();
      $mem->set('access_token_'.$appid,$access_token,$expire);
    }
  }
  else 
  {
    $access_token = $acc;
  }
  return $access_token;
}
?>

文件存储access_token

function getAccessToken() {
  // access_token 应该全局存储与更新,以下代码以写入到文件中做示例
  $data = json_decode(file_get_contents("access_token.json"));
  if ($data->expire_time < time()) {
   $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret";
   $res = json_decode($this->httpGet($url));
   $access_token = $res->access_token;
   if ($access_token) {
    $data->expire_time = time() + 7000;
    $data->access_token = $access_token;
    $fp = fopen("access_token.json", "w");
    fwrite($fp, json_encode($data));
    fclose($fp);
   }
  } else {
   $access_token = $data->access_token;
  }
  return $access_token;
 }

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
用Php实现链结人气统计
Oct 09 PHP
杏林同学录(五)
Oct 09 PHP
[原创]PHP中通过ADODB库实现调用Access数据库之修正版本
Dec 31 PHP
php magic_quotes_gpc的一点认识与分析
Aug 18 PHP
ThinkPHP实现将本地文件打包成zip下载
Jun 26 PHP
使用PHPMailer实现邮件发送代码分享
Oct 23 PHP
mac系统下为 php 添加 pcntl 扩展
Aug 28 PHP
php图像处理函数imagecopyresampled用法详解
Dec 02 PHP
yii框架redis结合php实现秒杀效果(实例代码)
Oct 26 PHP
PHP分页显示的方法分析【附PHP通用分页类】
May 10 PHP
python进程与线程小结实例分析
Nov 11 PHP
浅析PHP中json_encode与json_decode的区别
Jul 15 PHP
Yii核心验证器api详解
Nov 23 #PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
Nov 23 #PHP
php in_array() 检查数组中是否存在某个值详解
Nov 23 #PHP
php 数组处理函数extract详解及实例代码
Nov 23 #PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
Nov 22 #PHP
php each 返回数组中当前的键值对并将数组指针向前移动一步实例
Nov 22 #PHP
CI框架中类的自动加载问题分析
Nov 21 #PHP
You might like
php 获取mysql数据库信息代码
2009/03/12 PHP
PHP远程采集图片详细教程
2014/07/01 PHP
ThinkPHP模板输出display用法分析
2014/11/26 PHP
window.open()弹出居中的窗口
2007/02/01 Javascript
使用JavaScript switch case 另类写法
2010/03/14 Javascript
jquery(live)中File input的change方法只起一次作用的解决办法
2011/10/21 Javascript
javascript jq 弹出层实例
2013/08/25 Javascript
jquery 实现两级导航菜单附效果图
2014/03/07 Javascript
JS在IE下缺少标识符的错误
2014/07/23 Javascript
jQuery插件ajaxfileupload.js实现上传文件
2020/10/23 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
2016/09/08 Javascript
JS命令模式例子之菜单程序
2016/10/10 Javascript
jQuery.Validate表单验证插件的使用示例详解
2017/01/04 Javascript
Vue配合iView实现省市二级联动的示例代码
2018/07/27 Javascript
js html实现计算器功能
2018/11/13 Javascript
vue-cli的build的文件夹下没有dev-server.js文件配置mock数据的方法
2019/04/17 Javascript
vue3为什么要用proxy替代defineProperty
2020/10/19 Javascript
[47:03]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第二场 12.10
2020/12/13 DOTA
Python删除指定目录下过期文件的2个脚本分享
2014/04/10 Python
在Python的Django框架中获取单个对象数据的简单方法
2015/07/17 Python
5种Python单例模式的实现方式
2016/01/14 Python
对numpy中布尔型数组的处理方法详解
2018/04/17 Python
python3学生名片管理v2.0版
2018/11/29 Python
玩具反斗城美国官网:Toys"R"Us
2016/09/17 全球购物
SmartBuyGlasses荷兰:购买太阳镜和眼镜
2020/03/16 全球购物
职工运动会邀请函
2014/01/19 职场文书
2014年保险公司工作总结
2014/11/22 职场文书
消费者理赔投诉书
2015/07/02 职场文书
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
2021/05/21 Redis
MySQL中datetime时间字段的四舍五入操作
2021/10/05 MySQL
5种 JavaScript 方式实现数组扁平化
2021/10/05 Javascript
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS
Python必备技巧之函数的使用详解
2022/04/04 Python
Golang 1.18 多模块Multi-Module工作区模式的新特性
2022/04/11 Golang
GTX1660显卡搭配显示器推荐
2022/04/19 数码科技
MySQL数据库配置信息查看与修改方法详解
2022/06/25 MySQL