1. 程式人生 > >微信授權登入及儲存使用者資訊(fastadmin開發專案)

微信授權登入及儲存使用者資訊(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的時候很是惱火 如果哪位大神能夠解決文中問題,還望大神能夠指點一二,感激不盡