使用缓存Memcache存储更新微信access token
来源:互联网 发布:python idle打开文件 编辑:程序博客网 时间:2024/04/29 08:02
一、Access Token
access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。正常情况下access_token有效期为7200秒,重复获取将导致上次获取的access_token失效。
公众号可以使用AppID和AppSecret调用本接口来获取access_token。AppID和AppSecret可在开发模式中获得(需要已经成为开发者,且帐号没有异常状态)。注意调用所有微信接口时均需使用https协议。
接口调用请求说明
http请求方式: GEThttps://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
参数说明
返回说明
正常情况下,微信会返回下述JSON数据包给公众号:
{"access_token":"ACCESS_TOKEN","expires_in":7200}
二、Memcache
Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
Memcache是danga的一个项目,最早是LiveJournal 服务的,最初为了加速 LiveJournal 访问速度而开发的,后来被很多大型的网站采用。
Memcached是以守护程序(监听)方式运行于一个或多个服务器中,随时会接收客户端的连接和操作。
三、实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
define(
"APPID"
,
"wx1111111111111111"
);
define(
"APPSECRET"
,
"11111111111111111111111111111111"
);
$weixin
=
new
class_weixin();
var_dump(
$weixin
);
class
class_weixin
{
var
$appid
= APPID;
var
$appsecret
= APPSECRET;
//构造函数,获取Access Token
public
function
__construct(
$appid
= NULL,
$appsecret
= NULL)
{
if
(
$appid
&&
$appsecret
){
$this
->appid =
$appid
;
$this
->appsecret =
$appsecret
;
}
$mem
=
new
Memcache;
$mem
->connect(
'localhost'
, 11211)
or
die
(
"Could not connect"
);
$this
->access_token =
$mem
->get(
'access_token'
);
if
(
empty
(
$this
->access_token)){
$url
=
"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="
.
$this
->appid.
"&secret="
.
$this
->appsecret;
$res
=
$this
->http_request(
$url
);
$result
= json_decode(
$res
, true);
$this
->access_token =
$result
[
"access_token"
];
$mem
->set(
'access_token'
,
$this
->access_token, 0, 7200);
}
}
//HTTP请求(支持HTTP/HTTPS,支持GET/POST)
protected
function
http_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
;
}
}
?>
摘自 http://www.cnblogs.com/txw1958/p/weixin-access_token-memcache.html
0 0
- 使用缓存Memcache存储更新微信access token
- 使用缓存Memcache存储更新微信access token
- 使用缓存Memcache存储更新微信access token
- 使用缓存Memcache存储更新微信access token
- 使用缓存Memcache存储更新微信access token
- 使用缓存解决微信access token每天2000次限制
- 微信 Access Token (二)
- 自动更新微信access token
- 微信公众平台开发 ACCESS TOKEN
- 微信公众平台开发 ACCESS TOKEN
- 微信公众平台开发 ACCESS TOKEN
- 微信公众号开发Access Token
- 微信公众号开发 Token和凭证Access Token
- 使用MySQL UDF更新memcache缓存
- 使用MySQL UDF更新memcache缓存
- 微信开发定时器更新token
- 微信公众平台开发(26) ACCESS TOKEN
- 微信公众平台开发(26) ACCESS TOKEN
- USB的端点与管道以及设备、配置、接口、端点
- 国内一线互联网公司内部面试题库
- 终端(terminal)控制台(console)区别终极理解
- Android中的基础组件
- android第二节
- 使用缓存Memcache存储更新微信access token
- 00后《新白娘子传奇》热度爆棚,最佳翻拍不输雅芝姐
- 深度学习常用的Toolkit
- iOS开发之Xcode的静态分析(Static Code Analysis)与常见内存隐患解决办法
- 11.2.3、搭建RESTFUL API 之 带过滤器的WSGI服务
- Button上的文字显示为大写,已解决
- [读书笔记] 深入探索C++对象模型-第六章-执行期语义学(下)
- 1.使用ApplicationContext的方式实例化Spring容器。
- 设计模式学习(二十七)————解释器模式