1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問(wèn)題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
      thinkphp5.1easywechat4微信第三方開(kāi)放平臺(tái)的示例分析

      小編給大家分享一下thinkphp5.1 easywechat4微信第三方開(kāi)放平臺(tái)的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

      目前創(chuàng)新互聯(lián)建站已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、博山網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

      thinkphp5.1 easywechat4 微信第三方開(kāi)放平臺(tái)

      需求描述

      1. 當(dāng)前商城(uid標(biāo)識(shí))授權(quán)第三方開(kāi)發(fā)平臺(tái).

      2. 網(wǎng)頁(yè)授權(quán)成功后跳轉(zhuǎn)到另一個(gè)商城項(xiàng)目鏈接并帶上當(dāng)前微信用戶信息和微信初始化驗(yàn)證簽名.

      第三方平臺(tái)授權(quán)

      安裝easywechat4
      $ composer require overtrue/wechat:~4.0 -vvv
      引用
      use EasyWeChat\Factory;
      創(chuàng)建一個(gè)跳轉(zhuǎn)到微信掃二維碼授權(quán)頁(yè)面
      /**
       * 開(kāi)發(fā)平臺(tái)授權(quán)跳轉(zhuǎn)
       *
       * @return void
       */
      public function accessView(){
          // 
          $uid = Request()->route('uid' , 0);
          $url = 'http://qgcloud.capsui.com/public/index/wxopen/config?uid=' . $uid;
          $this->assign('url' , $url);
          return $this->fetch();
      }
      跳轉(zhuǎn)方法(為什么我不寫到上一個(gè)方法呢 因?yàn)槲⑿乓笸粋€(gè)地址)
      /**
       * 開(kāi)發(fā)平臺(tái)跳轉(zhuǎn)授權(quán)掃碼頁(yè)
       *
       * @return void
       */
      public function config(){
          $uid = Request()->get('uid' , 0);
          $config = [
              'app_id'   => '開(kāi)放平臺(tái)第三方平臺(tái) APPID',
              'secret'   => '開(kāi)放平臺(tái)第三方平臺(tái) Secret',
              'token'    => '開(kāi)放平臺(tái)第三方平臺(tái) Token',
              'aes_key'  => '開(kāi)放平臺(tái)第三方平臺(tái) AES Key'
          ];
          $openPlatform = Factory::openPlatform($config);
          
          $url = $openPlatform->getPreAuthorizationUrl('http://qgcloud.capsui.com/public/index/wxopen/wxcallback?uid=' . $uid);
      
          $this->redirect($url);
      }
      授權(quán)回調(diào)(注意:掃碼確認(rèn)授權(quán)后他第一次回調(diào)不會(huì)帶uid參數(shù),)
      引入 
      use EasyWeChat\OpenPlatform\Server\Guard;
      /**
       * 開(kāi)發(fā)平臺(tái)授權(quán)回調(diào)
       *
       * @return void
       */
      public function wxcallback(){
          // 這個(gè)表是記錄授權(quán)成功的
          //$Wxpublic   = new Wxpublic;
          // 這個(gè)表是記錄授權(quán)成功后傳過(guò)來(lái)所屬uid商城綁定appid
          //$ShopConfig = new ShopConfig;
      
          $get = Request()->param();
          
          $config = [
              'app_id'   => '開(kāi)放平臺(tái)第三方平臺(tái) APPID',
              'secret'   => '開(kāi)放平臺(tái)第三方平臺(tái) Secret',
              'token'    => '開(kāi)放平臺(tái)第三方平臺(tái) Token',
              'aes_key'  => '開(kāi)放平臺(tái)第三方平臺(tái) AES Key'
          ];
          $openPlatform = Factory::openPlatform($config);
          $server       = $openPlatform->server;
      
          
          // 處理授權(quán)成功事件-第一次回調(diào)
          // 閉包方法!里面調(diào)用外面的方法請(qǐng)?jiān)趗se里面填寫
          $server->push(function ($message) use ($openPlatform /*, $Wxpublic*/) {
              
              $authCode = $message['AuthorizationCode'];
              $res      = $openPlatform->handleAuthorize($authCode);
      
              if($res['authorization_info']['authorizer_refresh_token']){
                  //授權(quán)成功記錄到數(shù)據(jù)庫(kù)
                  //$Wxpublic->insert(['appid' => $res['authorization_info']['authorizer_appid'] , 'createtime' => time()]);
              }
      
          }, Guard::EVENT_AUTHORIZED);
      
          // 處理授權(quán)取消事件-第一次回調(diào)
          // 閉包方法!里面調(diào)用外面的方法請(qǐng)?jiān)趗se里面填寫
          $server->push(function ($message) use(/*$Wxpublic , $ShopConfig*/) {
              //處理數(shù)據(jù)庫(kù)邏輯
              //$Wxpublic::appid($message['AppId'])->delete();
              //$ShopConfig::appid($message['AppId'])->update(['token' => '']);
          }, Guard::EVENT_UNAUTHORIZED);
          
          // 第二次回調(diào)會(huì)帶一個(gè)授權(quán)code和自定義參數(shù)商城id(uid)
          if(isset($get['auth_code']) && isset($get['uid'])){
              
              $res      = $openPlatform->handleAuthorize($get['auth_code']);
              $appid    = $res['authorization_info']['authorizer_appid'];
              //數(shù)據(jù)庫(kù)邏輯
              //$isConfig = $Wxpublic::appid($appid)->count();
              
              //if($isConfig){
              //$add = $ShopConfig->where('uid' , $get['uid'])->update(['token' => $appid]);
              //}
          }
      
          return $server->serve();
      }

      第三方平臺(tái) 網(wǎng)頁(yè)授權(quán)&微信JSSDK初始化簽名生成

      /**
       * 網(wǎng)頁(yè)授權(quán)調(diào)起
       *
       * @return void
       */
      public function htmlAccess(){
          $appid = Request()->get('appid' , 0);
          
          $config = [
              'app_id'   => '開(kāi)放平臺(tái)第三方平臺(tái) APPID',
              'secret'   => '開(kāi)放平臺(tái)第三方平臺(tái) Secret',
              'token'    => '開(kāi)放平臺(tái)第三方平臺(tái) Token',
              'aes_key'  => '開(kāi)放平臺(tái)第三方平臺(tái) AES Key'
          ];
          $openPlatform = Factory::openPlatform($config);
          $data         = $openPlatform->getAuthorizer($appid);
          $appid        = $data['authorization_info']['authorizer_appid'];
          $refreshToken = $data['authorization_info']['authorizer_refresh_token'];
      
          $officialAccount = $openPlatform->officialAccount($appid , $refreshToken);
          $oauth           = $officialAccount->oauth;
          
          // 回調(diào)授權(quán)地址
          $url      = "http://qgcloud.capsui.com/public/index/wxopen/callbackOpenid";
          $response = $officialAccount->oauth->scopes(['snsapi_userinfo'])->redirect($url)->send();
      
      }
      網(wǎng)頁(yè)授權(quán)回調(diào)方法
      /**
       * 網(wǎng)頁(yè)授權(quán)回調(diào)
       *
       * @return void
       */
      public function callbackOpenid(){
          $appid = Request()->get('appid' , null);
          
          $config = [
              'app_id'   => '開(kāi)放平臺(tái)第三方平臺(tái) APPID',
              'secret'   => '開(kāi)放平臺(tái)第三方平臺(tái) Secret',
              'token'    => '開(kāi)放平臺(tái)第三方平臺(tái) Token',
              'aes_key'  => '開(kāi)放平臺(tái)第三方平臺(tái) AES Key'
          ];
          $openPlatform = Factory::openPlatform($config);
          $data         = $openPlatform->getAuthorizer($appid);
          
          $appid        = $data['authorization_info']['authorizer_appid'];
          $refreshToken = $data['authorization_info']['authorizer_refresh_token'];
          
          // 獲取微信用戶信息 如openid nickname等信息
          $officialAccount = $openPlatform->officialAccount($appid , $refreshToken);
          $oauth           = $officialAccount->oauth;
          $user            = $oauth->user();
          
          // 處理wxconfig初始化JSSDK
          $officialAccount->jssdk->setUrl('http://quguoshop.capsui.com/');
          $wxconfig = $officialAccount->jssdk->buildConfig(['chooseWXPay'], $debug = true, $beta = false, $json = true);
      
          $ShopConfig = new ShopConfig;
          $shopInfo   = $ShopConfig::appid($appid)->find();
          
          // 注意 這里我是帶參數(shù)跳轉(zhuǎn)到其他TP5項(xiàng)目里面再用緩存處理一下
          $url = 'http://quguoshop.capsui.com/public/wxoauthCallback?data=' . json_encode($user->toArray()) . '&token=' . $shopInfo['id'] . '&wxconfig=' . $wxconfig;
          $this->redirect($url);
      }

      以上是“thinkphp5.1 easywechat4微信第三方開(kāi)放平臺(tái)的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


      當(dāng)前名稱:thinkphp5.1easywechat4微信第三方開(kāi)放平臺(tái)的示例分析
      文章URL:http://www.ef60e0e.cn/article/gedoej.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        堆龙德庆县| 高安市| 萨迦县| 滨海县| 冷水江市| 凤山县| 陕西省| 如东县| 邮箱| 安仁县| 上饶市| 无极县| 安泽县| 新源县| 永德县| 孙吴县| 广灵县| 鹤山市| 阜平县| 固始县| 定远县| 麟游县| 比如县| 商都县| 宣武区| 南川市| 江川县| 芷江| 噶尔县| 溧阳市| 柳江县| 探索| 盘锦市| 弥勒县| 白河县| 永川市| 大悟县| 红河县| 汾西县| 蓬安县| 墨竹工卡县|