基于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&amp;&amp;mysql)六
Oct 09 PHP
PHP 变量类型的强制转换
Oct 23 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
Nov 13 PHP
百度ping方法使用示例 自动ping百度
Jan 26 PHP
php中Y2K38的漏洞解决方法实例分析
Sep 22 PHP
Yii框架获取当前controlle和action对应id的方法
Dec 03 PHP
php中动态调用函数的方法
Mar 16 PHP
PHP的Yii框架使用中的一些错误解决方法与建议
Aug 21 PHP
汇总PHPmailer群发Gmail的常见问题
Feb 24 PHP
详解PHP版本兼容之openssl调用参数
Jul 25 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 18 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验证手机号码(支持归属地查询及编码为UTF8)
2013/02/01 PHP
浅析php原型模式
2014/11/25 PHP
PHP substr()函数参数解释及用法讲解
2017/11/23 PHP
thinkPHP5框架接口写法简单示例
2019/08/05 PHP
仿中关村在线首页弹出式广告插件(jQuery版)
2012/05/03 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
2014/01/23 Javascript
JavaScript保留两位小数的2个自定义函数
2014/05/05 Javascript
Node.js(安装,启动,测试)
2014/06/09 Javascript
vue.js绑定class和style样式(6)
2016/12/09 Javascript
jQuery 获取select选中值及清除选中状态
2016/12/13 Javascript
一个基于react的图片裁剪组件示例
2018/04/18 Javascript
从0到1搭建Element的后台框架的方法步骤
2019/04/10 Javascript
ES6小技巧之代替lodash
2019/06/07 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
Vue实现多页签组件
2021/01/14 Vue.js
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
[00:10]DOTA2 TI9勇士令状明日上线
2019/05/07 DOTA
python中定义结构体的方法
2013/03/04 Python
Python实现动态加载模块、类、函数的方法分析
2017/07/18 Python
使用Python写一个贪吃蛇游戏实例代码
2017/08/21 Python
Python玩转Excel的读写改实例
2019/02/22 Python
Python如何实现动态数组
2019/11/02 Python
Python的几种主动结束程序方式
2019/11/22 Python
关于css中margin的值和垂直外边距重叠问题
2020/10/27 HTML / CSS
Petmate品牌官方网站:宠物用品
2018/11/25 全球购物
Fox Racing英国官网:越野摩托车和山地自行车服装
2020/02/26 全球购物
高中生校园生活自我评价
2013/09/19 职场文书
咖啡蛋糕店创业计划书
2014/01/28 职场文书
《蚕姑娘》教学反思
2014/04/15 职场文书
临床护理求职信
2014/04/26 职场文书
青春无悔演讲稿
2014/05/08 职场文书
医德医魂心得体会
2014/09/11 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
社交电商模式的兴起:这些新的商机千万别错过
2019/07/26 职场文书
小学生六年级作文之关于感恩
2019/08/16 职场文书
写给消防战士们的一封慰问信
2019/10/07 职场文书