thinkPHP3.2實現微信接入及查詢token值的方法

來源:互聯網
上載者:User
這篇文章主要介紹了基於thinkPHP3.2實現接入及查詢tooken值的方法,結合執行個體形式分析了thinkPHP整合介面操作token值查詢的具體實現步驟與相關操作技巧,需要的朋友可以參考下

本文執行個體講述了基於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;  }}

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.