微信公众号 access_token缓存

创建access_token.json文件,将access_token 和 生成时间expires 保存在其中,

{"access_token":"xxxx","expires":1478799661}

function getToken(){
    $appid=‘你的appid‘;
    $appsecret=‘你的appsecret‘;
    $file = file_get_contents("./access_token.json",true);
    $result = json_decode($file,true);
    echo time() - $result[‘expires‘].":";
    if (time() > $result[‘expires‘]){
       $data = array();
        $data[‘access_token‘] = getNewToken($appid,$appsecret);
        $data[‘expires‘]=time()+7000;
        $jsonStr =  json_encode($data);
        $fp = fopen("./access_token.json", "w");
        fwrite($fp, $jsonStr);
        fclose($fp);
        return $data[‘access_token‘];
    }else{
        return $result[‘access_token‘];
    }
}
function getNewToken($appid,$appsecret){
    $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$appsecret}";
    $access_token_Arr =  https_request($url);
    return $access_token_Arr[‘access_token‘];
}
function https_request ($url){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        $out = curl_exec($ch);
        curl_close($ch);
        return  json_decode($out,true);
}
时间: 2024-10-10 08:14:41

微信公众号 access_token缓存的相关文章

微信公众号 access_token 没有过期 却失效

最近在开发微信项目的时候 access_token   缓存到 redis里面的,明明在两个小时的有效期内  微信却提示 "errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint 经过在网上找资料查询  解决方案如下 调用微信一个没有次数限制的接口,把access_token传过去,接受返回值判断token的有效性 获取微信服务器IP地址

微信公众号access_token的获取与存储

如果是一个用户触发,那么只要将access_token放在数据库,文件,nosql就行,取时判断时间是否过期,过期重新去微信获取再放入. 如果是很多用户,多进程并发,特别是分布式那种架构呢?进程A判断access_token过期了,然后去微信抓取新的:在A尚未成功,进程B也进行了这个动作, 必然导致A的被B的覆盖,依然A的不能使用. 如果是在同一台机器上,文件读写互斥就可保证一个进程访问,数据库的行锁也可以,redis的锁事务也行. 如果是多台机器呢?数据库行锁可以:redis也可以:这时候像n

C#微信公众号开发 -- (四)获取API调用所需的全局唯一票据access_token

access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.开发者需要进行妥善保存.access_token的存储至少要保留512个字符空间.access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效. 获取access_token请求说明 是以http请求的GET方式通过访问:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_crede

微信公众号平台接口开发:基础支持,获取access_token

新建Asp.net MVC 4.0项目 WeChatSubscript是项目UI层 WeChatTools是封装操作访问公众号接口的一些方法类库 获取AccssToken 我们要的得到AccessToken,这是所有接口访问的基础,我们看看官方给出的接口调用文档 很简单明了,grant_type=client_credential,这是固定的不会变 appid与secret就是前面一章我叫大家记起来的那个认证口令数据. 下边我们来实现这个功能,新建WeCharBase.cs 1 public c

【微信公众号开发】获取并保存access_token、jsapi_ticket票据(可用于微信分享、语音识别等等)

步骤一:首先得开通公众号(目的是 获得appid.AppSecret.设置安全域名)~ [公众号设置]→[功能设置] 设置相应的域名 步骤二:编写帮助类WeixinLuyinHelper中的代码 #region 请求Url,不发送数据/// <summary>/// 请求Url,不发送数据/// </summary>public static string RequestUrl(string url){return RequestUrl(url, "POST")

微信公众号之微信支付

感觉很多程序都是只要一有关钱这一方面,我磨磨唧唧,文档也写的简直了! 前排提示:微信文档坑很多,在没有前辈或者有经验的情况下,千万不要死怼代码,一个人思考,最好遇到问题直接去找微信客服,发邮箱就发邮箱嘛~~~ 微信openId那一块,磨磨唧唧的弄完后,明明APP还没有支持会员系统,就已经叫我去弄微信支付充值会员了~~~(什么鬼~~~) 看了两天微信文档,结果翻来翻去就那两种方法,简直无奈啊~~~ 其一:JS-SDK,文档接口https://mp.weixin.qq.com/wiki?t=reso

微信公众号开发前期准备工作

随着移动互联网越来越普及,众多企业都注册了微信公众号,于是微信公众号的开发也越来越多,为了不被世界所淘汰,特地学习下微信公众号的开发,已备不时之需! 按照惯例,学习一门新技术或者新框架,咱们还是从官方提供的文档开始,于是找到微信公众平台开发者文档(http://mp.weixin.qq.com/wiki/home/index.html) 1.微信公众平台接口测试号申请 按照文档指引,咱们得先申请一个微信公众平台接口测试账号(http://mp.weixin.qq.com/debug/cgi-bi

微信公众号开发系列-开发模式创建自定义菜单

通过程序方式实现自定义菜单,通过http请求封装类交互微信自定义菜单接口 1.得到AccessToken access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.正常情况下access_token有效期为7200秒,重复获取将导致上次获取的access_token失效.由于获取access_token的api调用次数非常有限,建议开发者全局存储与更新access_token,频繁刷新access_token会导致api调用受限,影响自身业务. 请开发者

抛砖微信公众号应用开发

现在微信营销,真是炙手可热,各行各业都在利用微信这个社交平台,基于微信服务器这个服务网关,开发自己的应用服务,通过微信进行传播,真是方便快捷高效!大体的通信架构如下图所示. 由于工作的需要,我也着手研究微信公众平台的开发,在这过去的一周的时间,折腾了一个小实验环境,打通微信的两个基本验证关卡. 第一道验证,就是URL,Token填写完成后,点击提交的过程.(后面会详述) 第二道验证,就是公众号服务器上面的帖子进行分享等操作时,为了让别人看到友好的“标题”+“描述”+“缩略图”这种模式的帖子,必须