最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php獲取微信openid方法總結(jié)

 更新時間:2019年10月10日 15:29:54   投稿:laozhang  
在本篇文章里小編給大家整理了關(guān)于php獲取微信openid方法總結(jié),有需要的朋友們參考學習下。

使用微信接口,無論是自動登錄還是微信支付我們首先需要獲取的就是openid,獲取openid的方式有兩種,一種是在關(guān)注的時候進行獲取,這種訂閱號就可以獲取的到,第二種是通過網(wǎng)頁授權(quán)獲取,這種獲取需要的是認證服務號。

今天我要說的是第二種網(wǎng)頁授權(quán)獲取openid。下面是我寫的一個關(guān)于獲取openid的類

<?php

/**

 * 微信授權(quán)相關(guān)接口

 * 

 * @link http://www.phpddt.com

 */

class Wchat

{

   private $app_id = 'wx444444444444';

   private $app_secret = '77777777';

   private $state='aaaa';

  /**

   * 獲取微信授權(quán)鏈接

   * 

   * @param string $redirect_uri 跳轉(zhuǎn)地址

   * @param mixed $state 參數(shù)

   */

  public function get_authorize_url($redirect_uri = '', $state = '')

  {

    $redirect_uri = urlencode($redirect_uri);

    return "https://open.weixin.qq.com/connect/oauth2/authorize?appid={$this->app_id}&redirect_uri={$redirect_uri}&response_type=code&scope=snsapi_userinfo&state={$state}#wechat_redirect";

  }

   /**

   * 獲取微信openid

   */

  public function getOpenid($turl)

  {

    if (!isset($_GET['code'])){

      //觸發(fā)微信返回code碼

       

       $url=$this->get_authorize_url($turl, $this->state);

       

      Header("Location: $url");

      exit();

    } else {

      //獲取code碼,以獲取openid

      $code = $_GET['code'];

      $access_info = $this->get_access_token($code);

      return $access_info;

    }

     

  }

  /**

   * 獲取授權(quán)token網(wǎng)頁授權(quán)

   * 

   * @param string $code 通過get_authorize_url獲取到的code

   */

  public function get_access_token($code = '')

  {

   $appid=$this->app_id;

   $appsecret=$this->app_secret;

    

    $token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".$appsecret."&code=".$code."&grant_type=authorization_code";

    //echo $token_url;

    $token_data = $this->http($token_url);

    // var_dump( $token_data);

    if($token_data[0] == 200)

    {

      $ar=json_decode($token_data[1], TRUE);

      return $ar;

    }

     

    return $token_data[1];

  }

   

   

  public function http($url, $method='', $postfields = null, $headers = array(), $debug = false)

  {

    $ci = curl_init();

    /* Curl settings */

    curl_setopt($ci, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);

    curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 30);

    curl_setopt($ci, CURLOPT_TIMEOUT, 30);

    curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);

 

    switch ($method) {

      case 'POST':

        curl_setopt($ci, CURLOPT_POST, true);

        if (!empty($postfields)) {

          curl_setopt($ci, CURLOPT_POSTFIELDS, $postfields);

          $this->postdata = $postfields;

        }

        break;

    }

    curl_setopt($ci, CURLOPT_URL, $url);

    curl_setopt($ci, CURLOPT_HTTPHEADER, $headers);

    curl_setopt($ci, CURLINFO_HEADER_OUT, true);

 

    $response = curl_exec($ci);

    $http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);

 

    if ($debug) {

      echo "=====post data======\r\n";

      var_dump($postfields);

 

      echo '=====info=====' . "\r\n";

      print_r(curl_getinfo($ci));

 

      echo '=====$response=====' . "\r\n";

      print_r($response);

    }

    curl_close($ci);

    return array($http_code, $response);

  }

 

}

?>

getOpenid($turl)這個方法就是獲取openid的方法。前端調(diào)用代碼如下:

$openid=isset($_COOKIE['openid'])?$_COOKIE['openid']:'';

  

   if(empty($openid))

   {

     $wchat=new wchat();

     $t_url='http://'.$_SERVER['HTTP_HOST'].'/user.php?act=register';

      

     $info=$wchat->getOpenid($t_url);

      

     if($info){

        $openid=$info['openid'];

      setcookie('openid',$openid,time()+86400*30);  

        

     }

      

   }

以上就是我總結(jié)的獲取openid的方法啦。

以上就是php獲取微信openid的詳細內(nèi)容,更多請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 解析MySql與Java的時間類型

    解析MySql與Java的時間類型

    本篇文章是對MySql與Java的時間類型進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • Linux平臺php命令行程序處理管道數(shù)據(jù)的方法

    Linux平臺php命令行程序處理管道數(shù)據(jù)的方法

    這篇文章主要介紹了Linux平臺php命令行程序處理管道數(shù)據(jù)的方法,結(jié)合實例形式分析了Linux平臺管道提示符的功能及php使用命令行處理管道數(shù)據(jù)的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2016-11-11
  • php圖片處理函數(shù)獲取類型及擴展名實例

    php圖片處理函數(shù)獲取類型及擴展名實例

    這篇文章主要介紹了php圖片處理函數(shù)獲取類型及擴展名的方法,包括image2wbmp、image_type_to_extension、image_type_to_mime_type等函數(shù)的具體使用,具有不錯的借鑒與學習價值,需要的朋友可以參考下
    2014-11-11
  • 如何用php獲取程序執(zhí)行的時間

    如何用php獲取程序執(zhí)行的時間

    本篇文章是對使用php獲取程序執(zhí)行的時間進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP的攔截器實例分析

    PHP的攔截器實例分析

    這篇文章主要介紹了PHP的攔截器,以實例形式分析了常見的各類攔截器的用法,非常具有實用價值,需要的朋友可以參考下
    2014-11-11
  • PHP連接MySql數(shù)據(jù)庫方法簡化版

    PHP連接MySql數(shù)據(jù)庫方法簡化版

    MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL?AB?公司開發(fā),屬于?Oracle?旗下產(chǎn)品。MySQL?是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,這篇文章主要介紹了PHP連接mysql數(shù)據(jù)庫,數(shù)據(jù)庫連接靜態(tài)工具類,簡化連接
    2022-07-07
  • php抓取https的內(nèi)容的代碼

    php抓取https的內(nèi)容的代碼

    有時候需要獲取https網(wǎng)頁的內(nèi)容,下面得方法,可以參考下。
    2010-04-04
  • PHP使用trim函數(shù)去除字符串左右空格及特殊字符實例

    PHP使用trim函數(shù)去除字符串左右空格及特殊字符實例

    這篇文章主要介紹了PHP使用trim函數(shù)去除字符串左右空格及特殊字符的用法,結(jié)合實例簡單分析了trim函數(shù)不帶附加參數(shù)去除空格及使用附加參數(shù)去除指定字符的使用技巧,需要的朋友可以參考下
    2016-01-01
  • PHP利用MySQL保存session的實現(xiàn)思路及示例代碼

    PHP利用MySQL保存session的實現(xiàn)思路及示例代碼

    使用MySQL保存session,需要保存三個關(guān)鍵性的數(shù)據(jù):session id、session數(shù)據(jù)、session生命期,下面的示例,大家可以看看
    2014-09-09
  • php 生成簽名及驗證簽名詳解

    php 生成簽名及驗證簽名詳解

    這篇文章主要介紹了php 生成簽名及驗證簽名詳解的相關(guān)資料,需要的朋友可以參考下
    2016-10-10

最新評論

车险| 临沂市| 炎陵县| 望谟县| 巧家县| 永修县| 双牌县| 宣化县| 宣恩县| 芦山县| 高淳县| 天长市| 获嘉县| 西林县| 越西县| 宾阳县| 宜宾市| 富宁县| 绥棱县| 锡林浩特市| 赣州市| 辛集市| 湄潭县| 泰兴市| 离岛区| 鹿泉市| 汽车| 关岭| 岳阳市| 龙陵县| 宁远县| 塔城市| 南皮县| 象山县| 隆安县| 钟山县| 阳东县| 安陆市| 东兰县| 龙泉市| 宾阳县|