小程序微信登錄+服務端


小程序微信登錄

1.在小程序全局js  app.js文件中,調用小程序微信登錄接口

將小程序獲取到用戶的code  POST方式發送到服務器端

 

//調用登錄接口
wx.login({
success:function(res){

  console.log(res)
  if(res.code){
    //存在code
    wx.request({
      url:'http://shop.yunapply.com/home/user/saveOpenId',
      data: {code:res.code},
      method:'POST',
      header: {
        "content-type": "application/x-www-form-urlencoded"
      },
      success: function(res){
        that.globalData.userId = res.data.info
      },
      fail: function() {
        console.log('服務器請求失敗!')
      },
    })
  }else{
    console.log('獲取用戶信息失敗!'+res.errMsg)
  }
}
})

調用接口成功以后打印出接口對象,可以得到如下信息

 

這里的code,有效時間是5分鍾,需要將這個code發送到服務器,用code換取session_key API,將code換成OPENIDsession_key

 

2.在服務器端將帶有appidsecretjs_codegrant_type數據,發送到微信服務器,換取session_keyopenid

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

這里JSCODE就是放置code的地方

 

3.服務器端代碼

public function saveOpenId(){
    if (IS_POST) {
        $code = I('post.code');
        if($code){
            $url = "https://api.weixin.qq.com/sns/jscode2session?appid=XXXX&js_code=".$code."&grant_type=authorization_code";
            $res = file_get_contents($url); //獲取文件內容或獲取網絡請求的內容
            $result = json_decode($res);
            if($result->openid){
                $openid = $result->openid;
                $user = D('user');
                $userInfo = $user->where(array('openid'=>$openid))->find();
                if(!$userInfo){
                    $data['openid'] = $openid;
                    $data['modifytime'] = date("Y-m-d H:i:s");
                    $userId = $user->add($data);
                    $this->success($userId,'',true);
                }else{
                    $this->success($userInfo['id'],'',true);
                }
            }
            
        }
        
    }

 

流程:發送帶有codeURL,獲取網頁內容,判斷openid是否存在,存在就將用戶ID返回,不存在就添加用戶然后將ID返回。

wx.login成功獲取了用戶ID,再把這個ID賦值給全局變量,UserId

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM