getOpenid($code); // 更新小程序用户信息表 $user_info = [ 'uid' => UID, 'openid' => isset($res['openid']) ? $res['openid'] : '', 'unionid' => isset($res['unionid']) ? $res['unionid'] : '', 'session_key' => isset($res['session_key']) ? $res['session_key'] : '', 'session_key_time' => time(), ]; if (!$user_info['openid']) { return sendErrorMessage($res['errcode'], $res['errmsg']); } $res = $mpweixin_user_model->updateUser($user_info); // 获取用户信息 $mpweixin_user = $mpweixin_user_model->getOneData([ ['openid', '=', $user_info['openid']] ], 'id,user_id,openid'); // 获取token $info = [ 'uid' => UID, 'openid' => $mpweixin_user['openid'], 'mpweixin_user_id' => $mpweixin_user['id'], 'user_id' => empty($mpweixin_user['user_id']) ? '' : $mpweixin_user['user_id'], ]; $res_token = $jwt_class->signToken($info); $r_data = $info; $r_data['access_token'] = $res_token['token']; $r_data['access_token_expire_time'] = $res_token['exp']; return sendSuccessMessage($r_data); } /** * 微信小程序 授权获取手机号 * @date 2021-12-30 */ public function getPhoneNumber() { $param = input('post.'); $param['last_user_id'] = input('post.last_user_id', ''); $mp_weixin_param = get_mp_weixin_config(); $user_logic = new \app\base\logic\User(); $jwt_class = new \jwt\Jwt(); $user_class = new User($mp_weixin_param); //换取用户手机号 $result = $user_class->getPhoneNumber($param['code']); if ($result['errcode'] != 0) { return sendErrorMessage($result['errcode'], $result['errmsg']); } Db::startTrans(); //根据不同平台组合info参数 $info = TOKEN_DATA; $info['user_agent'] = USER_AGENT; //登录并更新相关信息(用户表和平台用户表) $res = $user_logic->login($result['phone_info']['phoneNumber'], $info, $param['last_user_id']); if ($res['code'] != 0) { Db::rollback(); return json($res); } $user_id = $res['data']['user_id']; Db::commit(); //绑定三方平台 // 签发token $arr = TOKEN_DATA; $arr['user_id'] = $user_id; $res_token = $jwt_class->signToken($arr); $r_data = [ 'user_id' => $user_id, 'access_token' => $res_token['token'], 'access_token_expire_time' => $res_token['exp'] ]; return sendSuccessMessage($r_data); } }