微信公众号01: ase实现access_token的存储和被动刷新
来源:互联网 发布:git mac客户端 编辑:程序博客网 时间:2024/04/30 18:36
一 知识点1.1 memcached服务 Memcached 是一个高性能的分布式内存对象缓存系统,可以用于动态 Web 应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。1.2 API使用方法官方文档: (http://php.net/manual/zh/book.memcache.php "PHP: Memcache - Manual")使用方法和标准的一样,唯一不一样的地方是调用 Memcache::connect 不用传任何参数(如果传了会被忽略)。
PHP: Memcache - Manual
二 实践<?php /*************************************************************** *主题:使用ASE的缓存系统实现access_token的存储和被动刷新; ***************************************************************/ echo "Topic: Realize store and Flush access_token "."<br>"; /** * 定义微信公众号access_token的接口信息; * 接口: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET * 返回json数据包:{"access_token":"ACCESS_TOKEN","expires_in":7200} */ $appid = "***"; // 请输入自己的微信开发账号信息; $appsecret = "***"; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret"; // 创建对象; $mmc = new Memcache; // 连接对象;(ASE平台对这个函数做了扩展) $ret = $mmc->connect(); if($ret == false) { echo "Connect to ASE memcache is Failed !"."<br>"; } else { echo "Connect to ASE memcache is OK !"."<br>"; } // 从缓存系统中读取数据; $access_token = $mmc->get("access_token"); if(empty($access_token)) { echo "The access_token is null.Need to write. "."<br>"; $jsonData = https_request($url); $arrayData = json_decode($jsonData,true); $access_token = $arrayData["access_token"]; writeToMemcache($mmc,"access_token",$access_token,30); echo $mmc->get("access_token"); } else { echo "The access_token is ".$access_token."<br>"; } /** * Func: 往缓存系统写入值 * Input: $mmc - Memcache对象; * $key - 键名; * $value - 键值; * $second - 过期时间(单位:秒); */ function writeToMemcache($mmc,$key,$value,$second) { $ret = $mmc->set($key,$value,0,$second); if($ret == false) { echo "write to memcache Failed !"."<br>"; } else { echo "write to memcache Ok !"."<br>"; } } /** * Func: cURL实现网络数据交互; * Input: $url - url地址;支持https协议; * $data - json包; ex:将数组格式数据编码为json包; */ function https_request($url,$data = null) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if (!empty($data)){ curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($curl); curl_close($curl); return $output; }?>
0 0
- 微信公众号01: ase实现access_token的存储和被动刷新
- 微信公众号开发:access_token和jsapi_ticket的缓存和数据库存储方案
- 微信公众平台开发 获得公众号的access_token
- 微信公众号杂文(1)access_token和open_id
- 微信公众号开发获取access_token和jsapiticket
- java中获取微信公众号的access_token
- PHP 获取微信公众号的access_token
- MVC 微信公众号 获取 access_token
- 微信公众号开发获取access_token
- 微信公众号获取access_token
- 4.微信公众号获取Access_token
- 微信公众号开发-获取access_token
- php 获取微信公众号access_token
- 微信公众号获取access_token
- 第五篇 :微信公众平台开发实战Java版之如何获取公众号的access_token以及缓存access_token
- 第五篇 :微信公众平台开发实战Java版之如何获取公众号的access_token以及缓存access_token
- 微信公众平台开发实战Java版之如何获取公众号的access_token以及缓存access_token
- 用java开发微信公众号:公众号接入和access_token管理(二)
- todo ssh框架
- [Swift]不使用storyboard创建视图
- 百度UEditor编辑器ueditor.setContent总是报错
- javaee
- Container With Most Water
- 微信公众号01: ase实现access_token的存储和被动刷新
- node.js实现简单的网络爬虫程序
- Hust oj 2118 Friend number(递推)
- ueditor1_4_3-utf8-jsp 配置实现上传图片的功能遇到的问题,改变图片上传请求地址
- Hibernata的特点
- jdk安装
- todo 基本设计模式
- jQuery 从零开始学习 (六) 工具函数
- Ueditor编辑保存的内容网页显示时背景等信息无效果---参考UEditor官方文档之编辑内容展示