激情五月婷婷综合网_奇米精品一区二区三区四区_91在线码无精品_国产精品久久久久一区二区三区_日韩一区二区在线看_99国产欧美另类久久久精品_日韩电影免费一区_亚洲欧美在线另类_9色porny自拍视频一区二区_久久一区二区三区四区_日本在线不卡视频_欧美日韩三级一区二区_亚洲欧美日韩国产综合在线_国产精品影视网_欧美中文字幕一区_制服.丝袜.亚洲.中文.综合

0712-2888027 189-8648-0214
微信公眾號

孝感風信網絡科技有限公司微信公眾號

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

laravel+easywechat開發微信公眾號

時間:2017-11-01來源:風信官網 點擊: 6241次

在laravel中使用easywechat

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

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

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

Overtrue\LaravelWechat\ServiceProvider::class,

創建配置文件:在命令行中執行

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

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

providers數組中是否有
laravel+easywechat開發微信公眾號

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

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

 

然后修改config/wechat.php中對應的參數

'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參數錯誤,則可能是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
,下面繼續說微信授權的

然后創建控制器 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();
    }
}

然后將這個代碼上傳到云服務器(注:服務器一定要在公網中(或通過某種工具使自己的電腦映射到公網上),否則微信無法驗證)
默認配置好虛擬主機,(必須用80端口),指向:項目名/public
然后打開微信公眾號后臺(我用測試賬號來說明問題,如果是真正的服務號的話,要開啟開發者模式)

2.在公眾號后臺修改配置信息
例:

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

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

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

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

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

 

下面正式進行微信公眾平臺開發:

將上面的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') {
        //取消關注時執行的操作,(注意下面返回的信息用戶不會收到,因為你已經取消關注,但別的操作還是會執行的<如:取消關注的時候,要把記錄該用戶從記錄微信用戶信息的表中刪掉>)
                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);
}
這個具體文檔上面都有,將這些方法加到一個控制器中,注冊路由,上傳到云服務器上,然后使用瀏覽器訪問一下這些方法,就會出相應的結果


微信網頁授權:
注:使用微信網頁授權之前,一定要檢查一下你所使用的微信公眾號是否有網頁授權接口的權限
在laravel版的easywechat中自帶一個微信授權的中間件,使用非常簡單
只需要在配置文件將有關授權的配置填寫完整,然后在laravel 
中注冊一下

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

 

例:

 

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

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

 

public function handle($request,Closure $next, $guard = null)
{
    if (empty(session("id"))){
        $user = session('wechat.oauth_user');
        $openid = $user['id'];
      //檢測數據庫中用戶賬號和微信號是否綁定
        $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錯誤,這時候極有可能是網頁授權的鏈接沒有更改成現在需要授權的網址,這時候只需要去公眾號后臺改一下要授權的網址即可
例:

 

這樣授權部分的就介紹完了,下面來說一下微信公眾號向已關注的用戶推送模板消息

模板消息
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;   //點擊模板消息的跳轉的地址
            //循環給多個用戶發送消息
//                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.'發布了一個新的班級公告',
//                            "keyword1"=>'',
//                            "keyword2"=>'',
//                            "remark"=>'請及時查看班級公告',
//                        );
//                        $notice->uses($template_id)->withUrl($url)->andData($data)->andReceiver($open_id)->send();
//                    }
//                }
模板消息如果發不出去的話,你要檢查一下微信公眾號是否有該接口的權限,這個接口的調用次數好像是有限制


下面來說一下調用微信的掃碼接口
這個是微信的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 微信公眾號
欄目列表
推薦內容
熱點內容
展開
激情五月婷婷综合网_奇米精品一区二区三区四区_91在线码无精品_国产精品久久久久一区二区三区_日韩一区二区在线看_99国产欧美另类久久久精品_日韩电影免费一区_亚洲欧美在线另类_9色porny自拍视频一区二区_久久一区二区三区四区_日本在线不卡视频_欧美日韩三级一区二区_亚洲欧美日韩国产综合在线_国产精品影视网_欧美中文字幕一区_制服.丝袜.亚洲.中文.综合
精品少妇一区二区三区免费观看| wwwwxxxxx欧美| 制服丝袜激情欧洲亚洲| 国产色爱av资源综合区| 日韩精品一级二级| 91在线视频播放| 久久久久久久久久久电影| 性久久久久久久| 99精品久久只有精品| 国产婷婷色一区二区三区四区| 全国精品久久少妇| 欧美亚洲综合久久| 亚洲欧美日韩国产综合在线| 国产麻豆欧美日韩一区| 日韩欧美在线一区二区三区| 五月天亚洲精品| 欧美体内she精视频| 亚洲欧美另类久久久精品| 风流少妇一区二区| 日韩欧美国产1| 蜜桃视频一区二区三区在线观看 | 51精品秘密在线观看| 亚洲欧美日韩国产综合| 波多野结衣的一区二区三区| 久久嫩草精品久久久精品一| 久久精品国产亚洲高清剧情介绍| 欧美剧情片在线观看| 欧美成人在线直播| 免费一级片91| 在线成人高清不卡| 亚洲小少妇裸体bbw| 色综合 综合色| 亚洲色图一区二区| 国产精品888| xvideos.蜜桃一区二区| 国产一区二区三区免费| 亚洲精品一区二区三区精华液| 蜜臀久久久久久久| 欧美xxx久久| 国产精品资源站在线| 日本一区二区三级电影在线观看 | 久久综合九色欧美综合狠狠| 韩国av一区二区三区四区| 大尺度一区二区| 欧美国产精品中文字幕| 国产suv精品一区二区883| 中文字幕+乱码+中文字幕一区| 欧美色视频在线| 欧美视频精品在线观看| 亚洲视频在线观看三级| 成人激情免费视频| 中文字幕一区av| 色婷婷av一区二区三区软件| 亚洲一区精品在线| 欧美日韩精品欧美日韩精品一| 天天av天天翘天天综合网| 欧美日韩国产高清一区二区三区 | 午夜精品福利视频网站| 欧美日韩国产电影| 亚洲18影院在线观看| 欧美一区二区三区视频| 久久er99精品| 国产日产欧美精品一区二区三区| 成人av动漫在线| 自拍偷拍亚洲综合| 欧美日韩色一区| 日韩高清不卡一区| 久久精品欧美一区二区三区不卡 | 91影院在线观看| 亚洲综合视频网| 91精品国产色综合久久久蜜香臀| 国内精品久久久久影院色| 国产精品乱人伦| 欧美性生活久久| 麻豆精品一区二区| 欧美高清在线一区| 精品视频在线看| 日本美女一区二区三区| 国产婷婷色一区二区三区在线| 91老司机福利 在线| 石原莉奈在线亚洲三区| 国产亚洲欧美一级| 欧洲一区二区av| 精品一区二区三区免费视频| 中文字幕中文字幕一区| 欧美精品第1页| 岛国精品在线播放| 亚洲国产成人porn| 日韩情涩欧美日韩视频| 91在线观看地址| 久久se这里有精品| 一区二区在线观看视频在线观看| 日韩欧美黄色影院| 99久久久免费精品国产一区二区| 爽好久久久欧美精品| 日本一区二区视频在线| 欧美日韩成人在线一区| 国产精品一卡二卡| 亚洲超碰精品一区二区| 久久精品视频网| 欧美日韩免费观看一区二区三区| 久久99精品久久久| 一区二区三区成人| 久久久久9999亚洲精品| 欧美日韩一区二区三区不卡| 国产成人在线视频网址| 天天亚洲美女在线视频| 中文字幕在线一区免费| 欧美不卡一区二区| 色狠狠色狠狠综合| 老司机午夜精品| 亚洲在线视频一区| 国产精品女人毛片| 精品国产乱码久久久久久影片| 欧洲国内综合视频| 成人黄色777网| 韩国中文字幕2020精品| 亚洲成人av在线电影| 国产精品久久久久天堂| 精品一二三四区| 一区二区三区在线视频免费| 久久精品人人爽人人爽| 日韩一区二区三区高清免费看看| 一本大道久久a久久综合| 国产精品自产自拍| 免费看黄色91| 亚洲午夜久久久久久久久电影院 | 婷婷综合在线观看| 亚洲欧美另类综合偷拍| 欧美国产精品一区| 精品国产精品一区二区夜夜嗨| 欧美日韩一区三区| 91色婷婷久久久久合中文| 国产成人免费视频精品含羞草妖精| 免费人成网站在线观看欧美高清| 亚洲综合视频网| 亚洲欧美成aⅴ人在线观看| 亚洲国产成人自拍| 久久久久久久久伊人| 欧美成人aa大片| 91精品在线观看入口| 欧美日韩中文国产| 91福利在线导航| 91视频一区二区| 99免费精品在线| 高清不卡在线观看| 国产一区不卡在线| 国产一区91精品张津瑜| 久久99精品久久久久久| 蜜桃在线一区二区三区| 日产精品久久久久久久性色| 性感美女极品91精品| 亚洲超丰满肉感bbw| 亚洲丶国产丶欧美一区二区三区| 一区二区三区电影在线播| 亚洲精品ww久久久久久p站| 国产精品成人一区二区艾草 | 麻豆精品蜜桃视频网站| 日韩av网站免费在线| 天天免费综合色| 日精品一区二区三区| 天天爽夜夜爽夜夜爽精品视频| 亚洲高清久久久| 午夜视黄欧洲亚洲| 午夜精品成人在线| 日本欧美肥老太交大片| 美国毛片一区二区| 激情亚洲综合在线| 国产一区二区精品久久| 国产成人丝袜美腿| 成人一级片在线观看| 成人性生交大片免费看中文| 成人福利在线看| 91亚洲精华国产精华精华液| 91一区在线观看| 91行情网站电视在线观看高清版| 日本高清免费不卡视频| 欧美日韩色一区| 日韩午夜av一区| 久久久久国色av免费看影院| 国产欧美综合在线观看第十页| 国产精品色婷婷久久58| 亚洲伦理在线免费看| 亚洲444eee在线观看| 免费三级欧美电影| 国产乱人伦偷精品视频免下载| 高清不卡一二三区| 色天使色偷偷av一区二区| 精品视频一区二区三区免费| 欧美一级片在线| 久久久精品国产免费观看同学| 国产精品国产三级国产普通话99 | 色综合久久综合网97色综合| 色就色 综合激情| 欧美高清视频在线高清观看mv色露露十八| 欧美一区二区三区四区久久| 久久久久久久国产精品影院| 最新国产の精品合集bt伙计| 午夜精品久久久久| 国产乱国产乱300精品|