久久久久精品国产,丰满少妇粗大猛烈进高清播放,久久久97,在线18禁

<wbr id="x3zex"><nav id="x3zex"><em id="x3zex"></em></nav></wbr>

        <s id="x3zex"></s>
        1. <ruby id="x3zex"><nav id="x3zex"><acronym id="x3zex"></acronym></nav></ruby>
          <font id="x3zex"><noscript id="x3zex"></noscript></font>
          0712-2888027 189-8648-0214
          微信公眾號

          孝感風信網(wǎng)絡科技有限公司微信公眾號

          當前位置:主頁 > 技術支持 > PHP > laravel+easywechat開發(fā)微信公眾號

          laravel+easywechat開發(fā)微信公眾號

          時間:2017-11-01來源:風信官網(wǎng) 點擊: 6241次

          在laravel中使用easywechat

          1.安裝包文件:(如果使用更高版本,請查看easywechat文檔)

          composer require "overtrue/laravel-wechat:~3.0"

          注冊ServiceProvider:在config下的app.php中的 providers 數(shù)組中添加:

          Overtrue\LaravelWechat\ServiceProvider::class,

          創(chuàng)建配置文件:在命令行中執(zhí)行

          php artisan vendor:publish --provider="Overtrue\LaravelWechat\ServiceProvider"
          
          

          如果執(zhí)行該命令后顯示已發(fā)布但是在config中找不到配置文件的話,看一下 config/app.php  

          providers數(shù)組中是否有
          laravel+easywechat開發(fā)微信公眾號

          如果有的話將其先注釋掉,重新執(zhí)行上面發(fā)布服務的命令,即可生成配置文件 config/wechat.php,如果需要使用到 laravel\thinker的話,生成配置文件以后,將剛剛注釋的還原

          (關于laravel\thinker 詳情請查看 http://laravelacademy.org/post/4935.html)

           

          然后修改config/wechat.php中對應的參數(shù)

          'app_id'  => env('WECHAT_APPID', ''),         // AppID
           'secret'  => env('WECHAT_SECRET', ''),     // AppSecret
           'token'   => env('WECHAT_TOKEN', ''),          // Token
           'aes_key' => env('WECHAT_AES_KEY', ''), 
          
          
          'log' => [
              'level' => env('WECHAT_LOG_LEVEL', 'debug'),
              'file'  => env('WECHAT_LOG_FILE', storage_path('logs/wechat.log')),
          ],
          'oauth' => [
              'only_wechat_browser' => false,
              'scopes'   => ['snsapi_userinfo'],
               'callback' => '',
          ],
          //如果使用微信自帶的中間件,callback可以不填,如果是自己使用重定向完成的授權的話,這個callback就是回調的地址
          如果在進行微信授權的時候,報scopes參數(shù)錯誤,則可能是scopes這個配置錯誤了,(注意看清楚自己是公眾平臺還是開放平臺)
          
          然后在控制器中定義一個路由 Route::any('/wechat','WechatController@serve');
          
          注意:在laravel中需要token驗證,所以有兩種方法:
          1》在將csrf驗證關閉(不安全,不推薦)  詳情:http://www.cnblogs.com/HD/p/4555369.html
          2》我們在項目中使用:
          在中間件VerifyCsrfToken.php中修改內容為:
          
          protected function tokensMatch($request)
          {
              // If request is an ajax request, then check to see if token matches token provider in
              // the header. This way, we can use CSRF protection in ajax requests also.
              $token = $request->ajax() ? $request->header('X-CSRF-TOKEN') : $request->input('_token');
              return $request->session()->token() == $token;
          }
          
          
          public function handle($request,\Closure $next){
              //todo:需要在添加了登錄驗證之后,取消
              if($request->method() == 'POST')
              {
                  return $next($request);
              }
              
              return parent::handle($request,$next);
          }
          然后在vue中的bootstrap.js中的引入axios中添加
          
          window.axios.defaults.headers.common = {
              'X-CSRF-TOKEN': document.querySelector('meta[name="X-CSRF-TOKEN"]').content,
              'X-Requested-With': 'XMLHttpRequest'
          };
          在index.blade.php中添加
          <meta name="X-CSRF-TOKEN" content="{{csrf_token()}}">
          關于laravel 的 csrf token的更多詳情,請看:http://www.cnblogs.com/zhuchenglin/p/7723997.html
          ,下面繼續(xù)說微信授權的

          然后創(chuàng)建控制器 WechatController:

          <?php
          
          namespace App\Http\Controllers;
          
          use Log;
          
          class WechatController extends Controller
          {
          
              /**
               * 處理微信的請求消息
               *
               * @return string
               */
              public function serve()
              {
                  Log::info('request arrived.'); # 注意:Log 為 Laravel 組件,所以它記的日志去 Laravel 日志看,而不是 EasyWeChat 日志
          
                  $wechat = app('wechat');
                  $wechat->server->setMessageHandler(function($message){
                      return "歡迎關注 overtrue!";
                  });
          
                  Log::info('return response.');
          
                  return $wechat->server->serve();
              }
          }
          
          然后將這個代碼上傳到云服務器(注:服務器一定要在公網(wǎng)中(或通過某種工具使自己的電腦映射到公網(wǎng)上),否則微信無法驗證)
          默認配置好虛擬主機,(必須用80端口),指向:項目名/public
          然后打開微信公眾號后臺(我用測試賬號來說明問題,如果是真正的服務號的話,要開啟開發(fā)者模式)
          
          2.在公眾號后臺修改配置信息
          例:
          

          填寫的url要能找到你那個控制器中的serve()方法

          Token要和上面的配置文件中填寫的一樣

          如果按照上面的步驟一步一步來的話,應該可以保存成功(即初步驗證成功)

           下面有一個js接口,下面填上你的已經(jīng)經(jīng)過備案的域名,這樣你就能在你域名指向的服務器中使用微信的jssdk

          這樣,配置基本上就完成了,下面就可以進行微信開發(fā)了。

           

          下面正式進行微信公眾平臺開發(fā):

          將上面的serve()改成類似下面的:

          public function serve()
          {  
              Log::info('request arrived.');
              $app = app('wechat');
              $app->server->setMessageHandler(function($message) use ($app){
                  if ($message->MsgType=='event') {
                       $user_openid = $message->FromUserName;
                      if ($message->Event=='subscribe') {
                  //下面是你點擊關注時,進行的操作
                          $user_info['unionid'] = $message->ToUserName;
                          $user_info['openid'] = $user_openid;
                          $userService = $app->user;
                          $user = $userService->get($user_info['openid']);
                          $user_info['subscribe_time'] = $user['subscribe_time'];
                          $user_info['nickname'] = $user['nickname'];
                          $user_info['avatar'] = $user['headimgurl'];
                          $user_info['sex'] = $user['sex'];
                          $user_info['province'] = $user['province'];
                          $user_info['city'] = $user['city'];
                          $user_info['country'] = $user['country'];
                          $user_info['is_subscribe'] = 1;
                          if (WxStudent::weixin_attention($user_info)) {
                              return '歡迎關注';
                          }else{
                              return '您的信息由于某種原因沒有保存,請重新關注';
                          }
                      }else if ($message->Event=='unsubscribe') {
                  //取消關注時執(zhí)行的操作,(注意下面返回的信息用戶不會收到,因為你已經(jīng)取消關注,但別的操作還是會執(zhí)行的<如:取消關注的時候,要把記錄該用戶從記錄微信用戶信息的表中刪掉>)
                          if (WxStudent::weixin_cancel_attention($user_openid)) {
                              return '已取消關注';
                          }
                      }
                  }
                  
              });
              
              Log::info('return response.');
               return $app->server->serve();
          }
          
          這時,更新服務器上的代碼后,應該達到,你關注該公眾號的時候,會提示你歡迎關注…………
          注:
          
          微信公眾號的菜單設置:
           /**
               * 添加菜單
               */
          //    public  function  menu_add(){
          //        $app = app('wechat');
          //        $menu = $app->menu;
          //        $buttons = [
          //            [
          //                "type"=>"view",
          //                "name"=>"進入課堂",
          //                "url"=>BASE_URL."/wx_student#/main"
          //            ],
          //        ];
          //        $menu->add($buttons);
          //    }
          
          
          
             /**
               * 刪除菜單
               */
          //    public  function  menu_destroy(){
          //        $app = app('wechat');
          //        $menu = $app->menu;
          //        $menu->destroy();
          //    }
          
          
          /**
           * 查看微信公眾號當前的菜單
           */
          public  function  menu_current(){
              $app = app('wechat');
              $menu = $app->menu;
              $menus = $menu->all();
              var_dump($menus);
          }
          這個具體文檔上面都有,將這些方法加到一個控制器中,注冊路由,上傳到云服務器上,然后使用瀏覽器訪問一下這些方法,就會出相應的結果
          
          
          微信網(wǎng)頁授權:
          注:使用微信網(wǎng)頁授權之前,一定要檢查一下你所使用的微信公眾號是否有網(wǎng)頁授權接口的權限
          在laravel版的easywechat中自帶一個微信授權的中間件,使用非常簡單
          只需要在配置文件將有關授權的配置填寫完整,然后在laravel 
          中注冊一下

          然后在 路由中使用該中間件(注:使用web中間件是為了防止出現(xiàn)session不共享的情況)

           

          例:

           

          就可以在session中獲取授權用戶的信息

          例:這是一個關于檢測登錄的中間件

           

          public function handle($request,Closure $next, $guard = null)
          {
              if (empty(session("id"))){
                  $user = session('wechat.oauth_user');
                  $openid = $user['id'];
                //檢測數(shù)據(jù)庫中用戶賬號和微信號是否綁定
                  $result = WxStudent::check_boundwechat($openid);
                  if ($result=='200'){
                      return $next($request);
                  }else{
                      return response("請登錄", 403)->header("X-CSRF-TOKEN", csrf_token());
                  }
              } else if(!empty(session("id"))) {
                  return $next($request);
              }
          }
          
          
          注:如果報redirect_uri錯誤,這時候極有可能是網(wǎng)頁授權的鏈接沒有更改成現(xiàn)在需要授權的網(wǎng)址,這時候只需要去公眾號后臺改一下要授權的網(wǎng)址即可
          例:

           

          這樣授權部分的就介紹完了,下面來說一下微信公眾號向已關注的用戶推送模板消息
          
          模板消息
          ps:要先看一下微信公眾號是否支持模板消息接口,然后要先把該模板消息的摸板添加到你的微信公眾號上(通過公眾號后臺),然后要知道你要使用模板消息的模板id
          如:$template_id = 'XQ3uJilYd5elz-TUHzkvKF4-nfB6Yu3WBm0B45dRtbY';
              
          示例:    
                $app = app('wechat');
                $notice = $app->notice;
                    $template_id = 'XQ3uJilYd5elz-TUHzkvKF4-nfB6Yu3WBm0B45dRtbY';  //消息模板的id
          
                $url = BASE_URL.'/wx_student#/bulletininfo/'.$course_id.'/'.$bu_id;   //點擊模板消息的跳轉的地址
                      //循環(huán)給多個用戶發(fā)送消息
          //                foreach ($users as $user){
          //                    if ($user['openid']!=""&&$user['openid']!='0'&&!empty($user['openid'])){
          //                        $open_id = $user['openid'];
          
          //              注:不同的模板,$data的內容可能不太一樣,具體要看你微信公眾號后臺所使用的模板,上面都有示例的
          //                        $data = array(
          //                            "first"=>$user['name']."同學你好,你的".$course_nam.'課教師'.$create_name.'發(fā)布了一個新的班級公告',
          //                            "keyword1"=>'',
          //                            "keyword2"=>'',
          //                            "remark"=>'請及時查看班級公告',
          //                        );
          //                        $notice->uses($template_id)->withUrl($url)->andData($data)->andReceiver($open_id)->send();
          //                    }
          //                }
          模板消息如果發(fā)不出去的話,你要檢查一下微信公眾號是否有該接口的權限,這個接口的調用次數(shù)好像是有限制
          
          
          下面來說一下調用微信的掃碼接口
          這個是微信的jssdk
          后臺jssdk的域名不要填寫http://
          直接寫就行。如ydjx.gm365.cc   要不然可能jssdk就無法調
          
          
          1.先在html里面引入
          <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js" type="text/javascript" charset="utf-8"></script>
          <script type="text/javascript" charset="utf-8">
              wx.config(<?php echo app('wechat')->js->config(array('scanQRCode'), false) ?>);
          </script>
          然后在js中加上這個方法
          scan_code(){
              wx.scanQRCode({
                  needResult: 1, // 默認為0,掃描結果由微信處理,1則直接返回掃描結果,
                  success: function (res) {
                      var result = res.resultStr; // 當needResult 為 1 時,掃碼返回的結果
          
                  }
              });
          }
          然后再對你掃到的內容進行相應的處理即可。
          熱門關鍵詞: laravel easywechat 微信公眾號
          欄目列表
          推薦內容
          熱點內容
          展開