hrjy 2 years ago
parent
commit
3b98baed3f

+ 5 - 1
app/api/controller/wechat/AuthController.php

@@ -62,21 +62,25 @@ class AuthController
             ['spread_code', ''],
             ['iv', ''],
             ['encryptedData', ''],
+            ['iv1', ''],
+            ['encryptedData1', ''],
         ]);//获取前台传的code
         try {
             //解密获取用户信息
             $userInfo = MiniProgramService::encryptor($session_key, $data['iv'], $data['encryptedData']);
+            $userPhone = MiniProgramService::encryptor($session_key, $data['iv1'], $data['encryptedData1']);
         } catch (\Exception $e) {
             if ($e->getCode() == '-41003') return app('json')->fail('获取会话密匙失败');
         }
         if (!isset($userInfo['openId'])) $userInfo['openId'] = $userInfoCong['openid'];
         if (!isset($userInfo['openId'])) return app('json')->fail('openid获取失败');
         if (!isset($userInfo['unionId'])) $userInfo['unionId'] = '';
+        if ($userInfoCong['unionid']) $userInfo['unionId'] = $userInfoCong['unionid'];
         $userInfo['spid'] = $data['spread_spid'];
         $userInfo['code'] = $data['spread_code'];
         $userInfo['session_key'] = $session_key;
         $userInfo['login_type'] = $login_type;
-        $userInfo['unionId'] = $userInfoCong['unionid'];
+        $userInfo['phone'] = $userPhone['phoneNumber'];
         $uid = WechatUser::routineOauth($userInfo);
         $userInfo = User::where('uid', $uid)->find();
         if ($userInfo->login_type == 'h5' && ($h5UserInfo = User::where(['account' => $userInfo->phone, 'phone' => $userInfo->phone, 'user_type' => 'h5'])->find()))

+ 4 - 1
app/models/user/User.php

@@ -126,6 +126,7 @@ class User extends BaseModel
             return self::edit([
                 'nickname' => $wechatUser['nickname'] ?: '',
                 'avatar' => $wechatUser['headimgurl'] ?: '',
+                'phone' => $wechatUser['phone'],
                 'is_promoter' => $status ? 1 : $userInfo->is_promoter,
                 'login_type' => isset($wechatUser['login_type']) ? $wechatUser['login_type'] : $userInfo->login_type,
             ], $uid, 'uid');
@@ -134,6 +135,7 @@ class User extends BaseModel
                 'nickname' => $wechatUser['nickname'] ?: '',
                 'avatar' => $wechatUser['headimgurl'] ?: '',
                 'is_promoter' => $status ? 1 : $userInfo->is_promoter,
+                'phone' => $wechatUser['phone'],
                 'login_type' => isset($wechatUser['login_type']) ? $wechatUser['login_type'] : $userInfo->login_type,
 //                'spread_uid' => 0,
 //                'spread_time' => 0,
@@ -228,7 +230,8 @@ class User extends BaseModel
             'add_ip' => request()->ip(),
             'last_time' => time(),
             'last_ip' => request()->ip(),
-            'user_type' => $routineUser['user_type']
+            'user_type' => $routineUser['user_type'],
+            'phone' => $routineUser['phone'],
         ]);
         $res = $res1 && $res2 && UserSpread::setSpread($routineUser['uid'], $spread_uid);
         self::checkTrans($res);

+ 1 - 0
app/models/user/WechatUser.php

@@ -81,6 +81,7 @@ class WechatUser extends BaseModel
     {
         $routineInfo['nickname'] = filter_emoji($routine['nickName']);//姓名
         $routineInfo['sex'] = $routine['gender'];//性别
+        $routineInfo['phone'] = $routine['phone'];//手机号
         $routineInfo['language'] = $routine['language'];//语言
         $routineInfo['city'] = $routine['city'];//城市
         $routineInfo['province'] = $routine['province'];//省份