session->get('configData')['uniacid']; $data=WeChat::checkAuth($uniacid,$_GET['code']); $data=json_decode($data,true); if($data){ $access_token=$data['access_token']; $openid=$data['openid']; $url2 = "https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token."&openid=".$openid."&lang=zh_CN"; $resss= httpRequest($url2); $user=json_decode($resss,true); $user['uniacid']=$uniacid; Yii::$app->session->set('wechat_user',$user); if($data['openid']&&$data['unionid']){ $res=(new \yii\db\Query()) ->from('{{%ybwm_member}}') ->where('unionid=:unionid and bindType=1 and uniacid='.$uniacid,[':unionid'=>$data['unionid']]) ->one(); //如果小程序有记录合并记录 if($res){ Yii::$app->db->createCommand()->update('{{%ybwm_member}}', ['wechatOpenId'=>$data['openid']],['id'=>$res['id']])->execute(); } } $url=urldecode(Yii::$app->session->get('target_url')); //微擎版本 Yii::$app->response->redirect($url); } } public function actionLogin(){ $result=axios_request(); $uniacid=Yii::$app->request->headers->get('uniacid'); $configData=['uniacid'=>$uniacid]; Yii::$app->session->set('configData',$configData); $session=Yii::$app->session; $wechat_user=$session->get('wechat_user'); // 未登录 if (empty($wechat_user)||$wechat_user['uniacid']!==$uniacid) { $config=Config::getSystemSet('wechatConfig',$uniacid); $appid = $config['appId']; $redirect_uri = Yii::$app->request->hostInfo.'/channelApi/wechat/callback'; $redirect_uri = urlencode($redirect_uri); Yii::$app->session->set('target_url',urlencode($result['url'])); $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"; echo json_encode(['code'=>1,'data'=>$url]); die; } // 已经登录过 // $session=Yii::$app->session; // $data = $session->get('wechat_user'); // echo json_encode(['code'=>1,'data'=>$data]); // die; } //获取公众号jssdk签名 /** * @return bool */ public function actionGetWxSign(){ $result=axios_request(); $uniacid=Yii::$app->request->headers->get('uniacid'); $sign=WeChat::getSignPackage($uniacid,$result['url']); echo json_encode(['code'=>1,'msg'=>'成功','data'=>$sign]);die; } }