基于thinkPHP3.2实现微信接入及查询token值的方法


Posted in PHP onApril 18, 2017

本文实例讲述了基于thinkPHP3.2实现微信接入及查询token值的方法。分享给大家供大家参考,具体如下:

1.在con.fig文件里面配置TOKEN,APPID,APPSECRET值

2.控制器WeixinController代码:

<?php
/**
 * 微信父类控制器
 * @author Songle
 *
 */
namespace Weixin\Controller;
use Think\Controller;
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;
  }
}

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP实现下载功能的代码
Sep 29 PHP
php+mysqli实现批量替换数据库表前缀的方法
Dec 29 PHP
详解PHP的Yii框架中的Controller控制器
Mar 29 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
Sep 30 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
Oct 17 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
Nov 05 PHP
php实现产品加入购物车功能(1)
Jul 23 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
Feb 19 PHP
总结PHP代码规范、流程规范、git规范
Jun 18 PHP
php微信开发之谷歌测距
Jun 14 PHP
PHP中quotemeta()函数的用法讲解
Apr 04 PHP
PHP扩展安装方法步骤解析
Nov 24 PHP
PHP递归删除多维数组中的某个值
Apr 17 #PHP
Thinkphp5.0自动生成模块及目录的方法详解
Apr 17 #PHP
php正则表达式基本知识与应用详解【经典教程】
Apr 17 #PHP
PHP中快速生成随机密码的几种方式
Apr 17 #PHP
IIS 7.5 asp Session超时时间设置方法
Apr 17 #PHP
关于php 高并发解决的一点思路
Apr 16 #PHP
PHP无限极分类函数的实现方法详解
Apr 15 #PHP
You might like
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
2011/06/09 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
2012/08/14 PHP
微信支付开发教程(一)微信支付URL配置
2014/05/28 PHP
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
PHP网络操作函数汇总
2015/05/18 PHP
CentOS系统中PHP安装扩展的方式汇总
2017/04/09 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
PHP date_default_timezone_set()设置时区操作实例分析
2020/05/16 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
2020/06/05 PHP
js为空或不是对象问题的快速解决方法
2013/12/11 Javascript
JS中的log对象获取以及debug的写法介绍
2014/03/03 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
2016/08/02 Javascript
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
2017/05/08 jQuery
node.js中cluster的使用教程
2017/06/09 Javascript
浅谈Angular路由复用策略
2017/10/04 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
[02:36]DOTA2上海特锦赛 回忆电竞生涯的重要瞬间
2016/03/25 DOTA
跟老齐学Python之永远强大的函数
2014/09/14 Python
Python中运行并行任务技巧
2015/02/26 Python
jupyter安装小结
2016/03/13 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
python 有效的括号的实现代码示例
2019/11/11 Python
基于python实现上传文件到OSS代码实例
2020/05/09 Python
解决Keras使用GPU资源耗尽的问题
2020/06/22 Python
python进度条显示-tqmd模块的实现示例
2020/08/23 Python
python request 模块详细介绍
2020/11/10 Python
如何向scrapy中的spider传递参数的几种方法
2020/11/18 Python
GANT葡萄牙官方商店:拥有美国运动服传统的生活方式品牌
2018/10/18 全球购物
药剂专业学生求职信范文
2013/12/28 职场文书
《北京的春节》教学反思
2014/04/07 职场文书
幼儿园感恩节活动方案2014
2014/10/11 职场文书
财产保全担保书
2015/01/20 职场文书
广播体操比赛主持词
2015/06/29 职场文书
写给同事的离职感言
2015/08/04 职场文书
2019朋友新婚祝福语精选
2019/10/10 职场文书
上手简单,功能强大的Python爬虫框架——feapder
2021/04/27 Python