Jelajahi Sumber

绑定微信与自动登录

shish 4 tahun lalu
induk
melakukan
3c482ab86d

+ 37 - 0
app-ghs/controllers/AdminController.php

@@ -17,6 +17,43 @@ class AdminController extends BaseController
 
     public $guestAccess = ['recent-shop', 'mini-full-info', 'mini-mobile', 'login-detail'];
 
+    //绑定帐号自动登录 shish 20210121
+    public function actionBindAutoLogin()
+    {
+        $post = Yii::$app->request->post();
+        $iv = isset($post['iv']) ? $post['iv'] : '';
+        $encryptedData = isset($post['encryptedData']) ? $post['encryptedData'] : '';
+        $merchant = WxOpenClass::getGhsWxInfo();
+        $appId = $merchant['miniAppId'];
+        $miniOpenId = $post['miniOpenId'];
+        if (empty($miniOpenId)) {
+            util::fail('绑定失败');
+        }
+        $cacheKey = 'GHS_SHOP_MINI_SESSION_KEY_' . $miniOpenId;
+        $sessionKey = Yii::$app->redis->executeCommand('GET', [$cacheKey]);
+        $wxMiniSecret = Yii::getAlias("@vendor/weixinMiniSecret");
+        require_once($wxMiniSecret . '/wxBizDataCrypt.php');
+        $pc = new \WXBizDataCrypt($appId, $sessionKey);
+        $errCode = $pc->decryptData($encryptedData, $iv, $result);
+        if ($errCode != 0) {
+            Yii::info($result . ' ' . $errCode);
+            util::fail('绑定失败了');
+        }
+        Yii::info('小程序获取用户信息:' . $result);
+        $wxInfo = Json::decode($result);
+        $nickName = $wxInfo['nickName'] ?? '';
+        if (empty($nickName)) {
+            util::fail('绑定失败');
+        }
+        $admin = $this->admin ?? [];
+        if (empty($admin)) {
+            util::fail('绑定失败');
+        }
+        $admin->miniOpenId = $miniOpenId;
+        $admin->save();
+        util::complete();
+    }
+
     //修改保存安卓clientId
     public function actionReplaceClientId()
     {

+ 2 - 1
app-ghs/controllers/ApplyController.php

@@ -111,7 +111,8 @@ class ApplyController extends BaseController
 
             $ptStyle = Yii::$app->params['ptStyle'];
             $name = $post['adminName'] ?? '';
-            $adminInfo = ['name' => $name, 'mobile' => $mobile, 'style' => $ptStyle,];
+            $miniOpenId = $post['miniOpenId'] ?? '';
+            $adminInfo = ['name' => $name, 'mobile' => $mobile, 'style' => $ptStyle, 'miniOpenId' => $miniOpenId];
             $fromApp = dict::getDict('userSourceGetId', 'app', 'id');
             $admin = AdminService::replaceAdmin($adminInfo, $fromApp);
             $adminId = $admin['id'] ?? 0;

+ 11 - 4
app-ghs/controllers/ConsoleController.php

@@ -22,10 +22,17 @@ class ConsoleController extends BaseController
     //概况 ssh 2019.12.19
     public function actionProfile()
     {
-        $notice = [
-            //['title' => '您的试用期还有7天,点击免费续期1年 ', 'action' => '查看', 'page' => '/admin/recharge/renew'],
-            //['title' => '新手使用教程(视频)', 'action' => '查看', 'page' => '/admin/jc/index'],
-        ];
+        $get = Yii::$app->request->get();
+        $isMini = $get['isMini'] ?? 0;
+        $notice = [];
+        $admin = $this->admin;
+        if ($isMini == 1 && !empty($admin)) {
+            $miniOpenId = $admin['miniOpenId'] ?? '';
+            if (empty($miniOpenId)) {
+                $notice = [['title' => '帐号绑定微信,下次自动登录后台', 'action' => '去绑定', 'page' => '/admin/staff/miniAutoLogin']];
+            }
+        }
+
         //今天客户与粉丝数
         $userData = StatUserService::getTodayNum($this->shopId);
         $customNum = isset($userData['riseUserNum']) ? $userData['riseUserNum'] : 0;

+ 0 - 1
app-hd/controllers/ConsoleController.php

@@ -25,7 +25,6 @@ class ConsoleController extends BaseController
     {
         $get = Yii::$app->request->get();
         $isMini = $get['isMini'] ?? 0;
-        //试用期到期时间
         $notice = [];
         $sj = isset($this->sj) && !empty($this->sj) ? $this->sj->attributes : [];
         $deadline = $sj['deadline'] ?? 0;