微信授權登入及儲存使用者資訊(fastadmin開發專案)
最近做了一個微信投票系統,這是第一次開發微信專案,所以特此記錄一下 微信投票系統,最優先想到的就是授權登入,以及獲取使用者資訊 1.首先需要申請微信公眾號(此次使用的是服務號) 2.在微信公眾平臺基本配置裡面,獲取appid和祕鑰,以及填寫白名單,按照要去填寫即可 3.此次是使用自己開發的授權登入外掛,直接將外掛解壓到addons目錄下,然後找到application/extra/addons.php檔案,然後在array裡面新增一下程式碼
'get_weixin_auth' => array ( 0 => 'weixin', ), 'get_weixin_config' => array ( 0 => 'weixin', ), 'wx_login' => array ( 0 => 'weixin', ), 'get_weixin_upload_single' => array ( 0 => 'weixin', ), 'get_weixin_upload_multiple' => array ( 0 => 'weixin', ), 'get_weixin_location' => array ( 0 => 'weixin', ), 'get_weixin_share' => array ( 0 => 'weixin', ),
3.前臺呼叫方法為
public function wxlogin(){
hook('get_weixin_auth',['backUrl'=>'此處填寫回調地址']);
}
4.在跳轉到專案首頁之前就應該執行儲存使用者資訊的操作
public function saveinfo(){ $data=input(''); $res=db('voter')->where('openid',$data['openid'])->find(); if($res){ session('user',$res); $this->user=$res; $this->uid=$res['id']; $this->redirect(url("index/index")); } else{ $udata['nickname']=$data['nickname']; $udata['openid']=$data['openid']; $udata['headimage']=$data['headimgurl']; $out=db('voter')->insert($udata); if($out){ $res=db('voter')->where('openid',$data['openid'])->find(); session('user',$res); $this->user=$res; $this->uid=$res['id']; $this->redirect(url("index/index")); } else{ $this->error('儲存資訊出錯'); } } }
5.配置完成之後,在fastadmin後臺找到放入的外掛(微信開發),然後配置appid和appsecret 6.在微信公眾平臺的介面許可權-》網頁服務-》網頁授權-》網頁授權獲取使用者基本資訊,點選修改,按照要求填寫域名,每個都要填寫。 本人在這一步遇到一個問題,而且至今沒有解決。。。此專案最開始是放在西部數碼的虛擬主機上進行編寫的,但是到了這一步之後,始終不能成功,顯示無法訪問xxx指向的web伺服器(或虛擬主機)的目錄,請檢查網路設定。域名是已備案的域名,也將他指定的檔案下載放到目錄下,通過直接訪問可以成功訪問檔案,但是還是顯示此錯誤,最後各種嘗試都試過了,還是不行,只得聯絡西部數碼的技術,他們讓我聯絡微信客服解決,明明已經可以直接訪問人家指定的檔案了,肯定不是微信那邊的問題,面對這種甩鍋行為,我只能將專案重新放到另一臺伺服器上進行開發,分分鐘搞定,完全沒有出現此種問題。。雖然此次專案解決了,但是仍然存留這樣一個問題無法解決。 7.此專案還犯了一個錯誤,因為是前臺進行套資料,我提供介面,然而並沒有將介面繼承授權登入的這個基類,目錄結構有點凌亂,所以造成後面修改bug的時候很是惱火 如果哪位大神能夠解決文中問題,還望大神能夠指點一二,感激不盡