Example #1
0
 public function beforeAction($action)
 {
     $session = Yii::$app->session;
     //$session->removeAll();
     //$session->set('openId','ow-bOvjH7CpKQtxsvjJuRmg6-g-k');
     if ($user = $session->get('user')) {
         if ($user['role'] == Users::ROLE_A) {
             //用户必须是A级用户才能登录前台,避免后台登录了前台也能进行登陆
             return parent::beforeAction($action);
         }
     }
     if ($openId = $session->get('openId')) {
         $session->set('user', Users::findByWeiXin($openId));
         return parent::beforeAction($action);
     }
     $request = Yii::$app->request;
     $state = $request->get("state");
     $current_url = Url::current([], true);
     //认证后跳转至当前网址
     if ($state == 'YUN') {
         //需要与getAuthorizeUrl($redirect_uri)中定义的一致,用户认证后回调操作如下
         $code = $request->get("code");
         if ($code) {
             //code存在表示用户允许授权
             $result = WeiXinFunctions::getAuthAccessToken($code);
             $openId = $result->openid;
             $access_token = $result->access_token;
             //授权成功后继续执行后面的action
             $session->set('openId', $openId);
             $session->set('user', Users::findByWeiXin($openId));
             return parent::beforeAction($action);
             //header("Location:$current_url");
         } else {
             echo "用户不允许授权";
             return false;
         }
     }
     $redirect_uri = urlencode($current_url);
     //认证后跳转至当前网址
     $url = WeiXinFunctions::getAuthorizeUrl($redirect_uri);
     header("Location:{$url}");
     return false;
 }
Example #2
0
?>
<script src="./js/js-sdk.js"></script>
<script>
    wx.config({
        debug: false,
        appId: '<?php 
echo WeiXinFunctions::getAppId();
?>
',
        timestamp: <?php 
echo $timestamp;
?>
,
        nonceStr: 'yundou-js',
        signature: '<?php 
echo WeiXinFunctions::generateJsSignature($currentUrl, $timestamp);
?>
',
        jsApiList: [
            'onMenuShareTimeline',    //分享到朋友圈
            'onMenuShareAppMessage',    //发送给朋友
            'onMenuShareQQ',    //分享到QQ
            'onMenuShareWeibo',    //分享到Weibo
            'onMenuShareQZone'    //分享到 QQ 空间
        ]
    });
    wx.ready(function(){
        var json = {
            title: '晒成绩啦!我参加‘<?php 
echo $session->get("majorJob");
?>
Example #3
0
 /**
  * 微信用户关注将用户信息导入数据库
  * @param $openId
  */
 public static function wxSubscribe($openId)
 {
     $user = Users::find()->where(['weixin' => $openId])->one();
     if (!$user) {
         $user = new Users();
         $user->weixin = $openId;
         $userInfo = WeiXinFunctions::getUserInfo($openId);
         $user->role = Users::ROLE_A;
         $user->weixin = $userInfo->openid;
         $user->nickname = $userInfo->nickname;
         $user->userIcon = $userInfo->headimgurl;
         $user->state = Users::STATE_NORMAL;
         if ($userInfo->sex == 1) {
             $user->sex = '男';
         } elseif ($userInfo->sex == 2) {
             $user->sex = '女';
         } else {
         }
         $user->save();
     }
 }
 public static function generateJsSignature($url, $timestamp)
 {
     $wx = WeiXinFunctions::getInstance();
     return $wx->generateJsSignature_in($url, $timestamp);
 }