因爲在easywechat中沒有說起在thinkphp中的使用,後來我在http://www.thinkphp.cn/topic/45416.html中找到了有人已經封裝了一下,我把本身使用的過程寫下來與你們共勉php
在thinkphp中安裝easywechathtml
1.使用composer下載git
使用命令行進入thinkphp根目錄github
而後運行下面的命令:thinkphp
而後發佈配置文件到項目根目錄數據庫
而後你會看到application目錄下多了一個extra文件夾,裏面有一個wechat.php,若是報錯了,請參考 https://www.ailoli.org/archives/72/,這樣就算是引入成功了api
而後微信
填寫配置文件須要填寫的項session
示例:app
'debug' => true,
/**
* 帳號基本信息,請從微信公衆平臺/開放平臺獲取
*/
'app_id' => '......', // AppID
'secret' => '......', // AppSecret
'token' => '......', // Token
'aes_key' => '',
'oauth' => [
'scopes' => ['snsapi_userinfo'],
'callback' => '回調地址',
],
而後,在原代碼基礎上建立一個控制器(與微信相關):Wechat1.php,
在裏面定義一個變量app
$options = Config::get('wechat');
$app = new Application($options);
這樣就可以使用app變量了,其餘的用法參照文檔https://www.easywechat.com/docs便可
配置和原來相似,我是在Wechat1.php中定義一個serve方法
public function serve(){
$server = self::$app->server;
$server->setMessageHandler(function ($message) {
return '你好';
});
$server->serve()->send();
}
在微信公衆號後臺驗證token的url寫可以訪問到這個serve方法的連接便可驗證成功
下面重點說明我使用easywechat進行網頁受權過程
在須要受權的控制器Personal.php中的寫了
static $app;
public function _initialize()
{
if (empty(session('id'))){
self::$app = Wechat1::return_app();
$oauth = self::$app->oauth;
session('target_url',$_SERVER['PATH_INFO']);
if (empty(session('wechat_user'))){
$oauth->redirect()->send();
}else{
$user = session('wechat_user');
$open_id = $user['original']['openid'];
//查詢數據庫中用戶的帳號的openid中是否有值,有值說明用戶的微信與帳號綁定
$student_no = self::check_login($open_id);
if ($student_no!=0){
session('id',$student_no);
$this->redirect(session('target_url'));
}else{
$this->redirect('index/Index/login');
}
}
}
}
而後在Wechat1.php中寫了一個受權回調的方法
public function oauth(){
$oauth = self::$app->oauth;
$user = $oauth->user();
session('wechat_user',$user->toArray());
$targetUrl = session('target_url');
$this->redirect($targetUrl);
}
注:上面的配置文件中的回調函數就寫可以找到oauth方法的地址便可
這樣就可以完成微信網頁受權,受權過的微信的用戶信息存在session中,以後用到該用戶信息的時候,只須要從session中取便可
### 注:如今官方網站上面支持thinkphp了,可使用官方支持的擴展包,應該會更方便一些!!!thinkphp-wechat地址