>  기사  >  백엔드 개발  >  WeChat 액세스 및 쿼리 토큰 값을 구현하는 thinkPHP3.2 메소드

WeChat 액세스 및 쿼리 토큰 값을 구현하는 thinkPHP3.2 메소드

不言
不言원래의
2018-06-07 17:18:511923검색

이 글에서는 thinkPHP3.2를 기반으로 WeChat 접근을 구현하고 토큰 값을 쿼리하는 방법을 주로 소개합니다. WeChat 인터페이스 작업 토큰 값 쿼리를 통합한 thinkPHP의 구체적인 구현 단계와 관련 작업 기술을 예제 형식으로 분석합니다. 다음을 참고하세요

본 글의 예시에서는 thinkPHP3.2를 기반으로 WeChat 접속 구현 및 토큰 값 조회 방법을 설명하고 있습니다. 참조용으로 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

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(&#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;
  }
}

이 글의 내용은 여기까지입니다. 모든 분들의 학습에 도움이 되기를 바랍니다. 더 많은 관련 내용을 보시려면 PHP 중국어 웹사이트를 주목해주세요!

관련 권장 사항:

양식의 반복 제출을 방지하기 위해 PHP에서 토큰을 사용하는 방법, 토큰 양식

위 내용은 WeChat 액세스 및 쿼리 토큰 값을 구현하는 thinkPHP3.2 메소드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.