Heim  >  Artikel  >  Backend-Entwicklung  >  thinkPHP3.2-Methode zur Implementierung des WeChat-Zugriffs und zur Abfrage des Token-Werts

thinkPHP3.2-Methode zur Implementierung des WeChat-Zugriffs und zur Abfrage des Token-Werts

不言
不言Original
2018-06-07 17:18:511923Durchsuche

In diesem Artikel wird hauptsächlich die Methode zur Realisierung des WeChat-Zugriffs und zur Abfrage des Token-Werts basierend auf thinkPHP3.2 vorgestellt. Er analysiert die spezifischen Implementierungsschritte und die damit verbundenen Betriebsfähigkeiten von thinkPHP, die die Token-Wert-Abfrage der WeChat-Schnittstelle integrieren Ich brauche es. Als Referenz:

Das Beispiel in diesem Artikel beschreibt die Methode zur Implementierung des WeChat-Zugriffs und zur Abfrage des Token-Werts basierend auf thinkPHP3.2. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

1 Konfigurieren Sie TOKEN-, APPID- und APPSECRET-Werte in der config-Datei

2 🎜>

<?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(&#39;TOKEN&#39;);
    $this->appid=C(&#39;APPID&#39;);
    $this->appsecret=C(&#39;APPSECRET&#39;);
    //获取微信服务器GET请求的4个参数
    $signature = I(&#39;signature&#39;);
    $timestamp = I(&#39;timestamp&#39;);
    $nonce = I(&#39;nonce&#39;);
    $echostr = I(&#39;echostr&#39;);
    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[&#39;access_token&#39;];
    }
    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;
  }
}

Ich hoffe, dass es für alle beim Lernen hilfreich ist Achten Sie auf die chinesische PHP-Website!

Verwandte Empfehlungen:

Wie PHP Token verwendet, um das wiederholte Senden von Formularen zu verhindern, Token-Formular

Das obige ist der detaillierte Inhalt vonthinkPHP3.2-Methode zur Implementierung des WeChat-Zugriffs und zur Abfrage des Token-Werts. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn