mysql设置Tooken过期时间_基于thinkPHP3.2实现微信接入及查询token值的方法
1.在con.fig文件里面配置TOKEN,APPID,APPSECRET值
2.控制器WeixinController代码:<?php
/**
* 微信父类控制器
* @author Songle
*
*/
namespace WeixinController;
use ThinkController;
class WeixinController extends Controller {
private $last_time=null;
private $appid=null;
private $appsecret=null;
function __construct(){
parent::__construct();
$token=C('TOKEN');
$this->appid=C('APPID');
$this->appsecret=C('APPSECRET');
//获取微信服务器GET请求的4个参数
$signature = I('signature');
$timestamp = I('timestamp');
$nonce = I('nonce');
$echostr = I('echostr');
if (! empty ( $echostr) && ! empty ( $signature ) && ! empty ($nonce )) {
//定义一个数组,存储其中3个参数,分别是timestamp,nonce和token
$tempArr = array($nonce,$timestamp,$token);
//进行排序
sort($tempArr,SORT_STRING);
//将数组转换成字符串
$tmpStr = implode($tempArr);
//进行sha1加密算法
$tmpStr = sha1($tmpStr);
//判断请求是否来自微信服务器,对比$tmpStr和$signature
if($tmpStr == $signature)
{
echo $echostr;
}
exit();
}
}
/**
* 获取tooken值
*/
public function getTooken(){
$this->last_time = 1448012924;
$access_token = "填写上一次的token值"; //需要替换成自己的
if(time() > ($this->last_time + 7200))
{
//GET请求的地址
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$this->appid}&secret={$this->appsecret}";
$access_token_Arr = $this->https_request($url);
$this->last_time = time();
return $access_token_Arr['access_token'];
}
return $access_token;
}
//https请求(支持GET和POST)
public function https_request($url,$data = null)
{
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
if(!empty($data))
{
curl_setopt($ch,CURLOPT_POST,1); //模拟POST
curl_setopt($ch,CURLOPT_POSTFIELDS,$data); //POST内容
}
$outopt = curl_exec($ch);
curl_close($ch);
$outopt = json_decode($outopt,true);
return $outopt;
}
}
mysql设置Tooken过期时间_基于thinkPHP3.2实现微信接入及查询token值的方法相关推荐
- Mysql设置binlog过期时间并自动删除
问题: Mysql数据库由于业务原因,数据量增长迅速,binlog日志会增加较多,占用大部分磁盘空间.解决方案: 出于节约空间考虑,可进行删除多余binary日志,并设置定期删除操作.1.查看binl ...
- mysql创建新闻发布时间_基于PHP+mysql实现新闻发布系统的开发
新闻发布系统 1. 系统简介 一个简单的新闻系统,包含了四个功能,增删改查,利用PHP语言,结合了MySQL数据库,开发工具用的是Dreamweaver. 2.数据库设计 -- 数据库: `newsd ...
- @cacheable 设置过期时间_缓存面试三连击——聊聊Redis过期策略?内存淘汰机制?再手写一个LRU 吧!...
大家好,今天我和大家想聊一聊有关redis的过期策略的话题. 听到这里你也许会觉得:"我去,我只是个日常搬砖的,这种偏底层的知识点,我需要care吗?" 话虽如此·,但是兄die, ...
- redis查看key的过期时间_面试官:你在Redis中设置过带过期时间的Key吗?
点击上方小伟后端笔记关注公众号 每天阅读Java干货文章 熟悉Redis的同学应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的时候,这个key就会被自动删除. 在为key设置过 ...
- redis list设置过期时间_面试官:你在Redis中设置过带过期时间的Key吗?
点击上方小伟后端笔记关注公众号 每天阅读Java干货文章 熟悉Redis的同学应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的时候,这个key就会被自动删除. 在为key设置过 ...
- 设置过期时间_在Redis中设置了过期时间的Key,需要注意哪些问题?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:千山qianshan juejin.im/post/5d6b ...
- apache 设置session超时时间_深入分析 Session 和 Cookie,看这篇就对了
点击上方 "程序员小乐"关注, 星标或置顶一起成长 第一时间与你相约 每日英文 Promise yourself to be so strong that nothing can ...
- mysql8 设置binlog过期时间
mysql8 设置binlog过期时间 mysql8中 使用binlog_expire_logs_seconds 设置日志过期时间,废弃参数:expire_logs_days mysql> sh ...
- 在Redis中设置了过期时间的Key,需要注意哪些问题?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:千山qianshan juejin.im/post/5d6b ...
最新文章
- R语言绘制堆叠的环状条形图
- 人工智能改变未来教育的5大方式
- monkeyrunner无法运行的问题解决方案总结
- 【BOM精讲】BOM 入门基本常识
- hadoop java访问_Hadoop(五)搭建Hadoop客户端与Java访问HDFS集群
- 将 75000 行原生 iOS 应用程序移植到 Flutter 后,结果太惊讶!
- NO.164 禅道的自定义功能:导航和主页的自定义
- chromium/chrome内核修改、SEO快排搭建(2022最新源码)
- k620显卡 unreal_nvidia quadro k620是什么显卡
- linux zip -e,在 Linux 上压缩文件:zip 命令的各种变体及用法
- 80004005错误代码_0x80004005,手把手教你解决0x80004005错误代码的方法
- 韩咏梅:幸福只需要七分饱(转自新加坡联合早报)
- 拼多多搜索词统计 API接口操作展示说明
- android平板电脑的虚拟键盘,win10平板电脑不弹出虚拟键盘的两种解决方法
- 【标准】Oracle Optimal Flexible Architecture(OFA)简介
- 嵌入式应用软件任务划分的原则
- package.json中private选项的作用
- ubuntu/linux trash-cli 删除文件到回收站 类似回收站机制的删除
- 还不知道怎么制作用户体验地图?这份超全攻略送给你
- 文章摘要智能提取【基于BERT技术】