Пример #1
0
 public function successCallback($client)
 {
     $mTplogin = new UserThirdPartyLogin();
     $id = $client->getId();
     $key = $client->openid();
     $userAttrs = $client->getUserAttributes();
     $userProfile = $client->getUserInfo();
     $openid = $userAttrs[$key];
     // TODO: 需要调整为获取当前登录用户
     $userid = 100;
     $data = ['type' => $id, 'user_id' => $userid, 'open_id' => $openid, 'profile_info' => json_encode($userProfile)];
     if (isset($userAttr['expire_in'])) {
         $data['expire_time'] = $userAttr['expire_in'];
     }
     try {
         if (!$mTplogin->checkBindByOpenid($openid, $userid)) {
             if ($userAr = $mTplogin->bind($data)) {
                 $userAr['profile'] = $userProfile;
                 $this->setTplSessionToUser($userAr);
             } else {
                 // TODO: 绑定失败
             }
         } else {
             $this->setTplSessionToUser(['type' => $id, 'open_id' => $openid, 'profile' => $userProfile]);
             // TODO: 已经绑定
         }
     } catch (oxception $e) {
         // TODO: 登录异常
     }
 }
Пример #2
0
 public function actionCheckticode()
 {
     $params = Yii::$app->request->post();
     // 联调时需要改成post
     $sid = isset($params['sid']) ? intval($params['sid']) : '';
     $user = PublicLibrary::is_login();
     if (!$user) {
         $output['status'] = 1000;
         $output['res'] = '';
         $output['info'] = 'no login';
         $backurl = Yii::$app->params['idaiyan'] . "/baiying/gamestar?sid=" . $sid;
         $backurl = Publiclibrary::encode_callback($backurl);
         $output['url'] = '/baiying/auth?backurl=' . $backurl;
         $output = PublicLibrary::format_res_encode($output['status'], $output['info'], $output['url']);
         // var_dump($output);
         echo $output;
         exit;
     }
     $session = Yii::$app->session;
     $session->isActive ? '' : $session->open();
     $output = array();
     if ($params) {
         $mobile = intval($params['mobile']);
         $rel_id = isset($params['rel_id']) ? intval($params['rel_id']) : '';
         $truename = isset($params['truename']) ? strip_tags($params['truename']) : '';
         $openid = $_SESSION['user']['openid'];
         // $openid = 'oKeG4jqOTo-wyqSqXAA4hfTFvtZI';
         if (empty($mobile) || empty($openid)) {
             $output['status'] = 1000;
             $output['res'] = '';
             $output['info'] = 'no login';
             $backurl = Yii::$app->params['idaiyan'] . "/baiying/gamestar?sid=" . $sid;
             $backurl = Publiclibrary::encode_callback($backurl);
             $output['url'] = '/baiying/auth?backurl=' . $backurl;
             $output = PublicLibrary::format_res_encode($output['status'], $output['info'], $output['url']);
             // var_dump($output);
             echo $output;
             exit;
         }
         $mutpl = new UserThirdPartyLogin();
         $thirdone = $mutpl->getByOpenId($openid);
         $member_model = new Member();
         $userone = $member_model->getByUserName($mobile);
         //通过手机号查询用户信息
         if ($thirdone) {
             $userone = $member_model->getByUid($thirdone['user_id']);
         }
         if (!empty($userone)) {
             //ru guo
             $output['status'] = 1001;
             $output['res'] = $userone;
             if ($thirdone) {
                 $output['info'] = '该微信号已被绑定!';
             } else {
                 $output['info'] = '是注册,请输入密码或者验证码';
             }
             $output['url'] = '';
         } else {
             $output['status'] = 1002;
             $output['res'] = '';
             $output['info'] = '验证通过,登录成功!';
             $output['url'] = '';
             //注册
             $usercontent = array("mobile" => $mobile, "truename" => $truename, "address" => '', "comefrom" => '一呼百应');
             $member = new Member();
             $res = $member->registration($usercontent);
             if ($res['userid']) {
                 // $_SESSION['user']['nickname'] = 'hongye';
                 // $_SESSION['user']['headimgurl'] = 'http://wx.qlogo.cn/mmopen/Q3auHgzwzM6LiaSic2iaLbgGGQMadoac3M6g3vfEd7CLQVPyWficA679jxbI2OZwVxxExA8ibKopLO4EHKFvnx6yy8IFP2PmiaL8laJHAtw3wiaWNU/0';
                 //绑定第三方信息
                 $thirdone = $mutpl->getByOpenId($openid);
                 if (!$thirdone) {
                     $wxarr['nickname'] = $_SESSION['user']['nickname'];
                     $wxarr['headimgurl'] = $_SESSION['user']['headimgurl'];
                     $thirdcontent['open_id'] = $openid;
                     $thirdcontent['user_id'] = $res['userid'];
                     $thirdcontent['type'] = 'weixin';
                     $thirdcontent['profile_info'] = json_encode($wxarr);
                     $thirdcontent['status'] = 1;
                     $mutpl->store($thirdcontent);
                 }
                 //设置登录状态
                 $_SESSION['user']['uid'] = $res['userid'];
                 $_SESSION['user']['mobile'] = $mobile;
                 $_SESSION['user']['truename'] = $truename;
                 $_SESSION['user']['admin'] = 0;
                 //普通用户登录
                 // $sms_model = new Sms();
                 // $sms_model->mobile = $mobile;
                 // $sms_model->content = '您的密码是'.$res['password'].',您可以使用手机号:'.$mobile.'登录i代言官网,如非本人操作请及时联系客服人员。【i代言】';
                 // $sms_model->from = 'findpassword';  //调用来源
                 // $return = $sms_model->SoapSend();
                 $sms = Yii::$app->dcSMS;
                 $userID = $res['userid'];
                 $data = ['uid' => $userID, 'mobile' => $mobile, 'business' => 'H_AUTO_REG', 'tplno' => 1, 'password' => $res['password'], 'mobile' => $mobile];
                 $resp = $sms->send($data);
             }
         }
     } else {
         $output['status'] = 1003;
         $output['res'] = '';
         $output['info'] = '签名验证出错!';
         $output['url'] = '';
     }
     $output = PublicLibrary::format_res_encode($output['status'], $output['info'], $output['url']);
     // var_dump($output);
     echo $output;
 }