'', 'upd_time' => time(), ]; if(Db::name('User')->where(['id'=>$user['id']])->update($data)) { if(UserService::UserLoginRecord($user['id'])) { return DataReturn('解绑成功', 0); } } return DataReturn('解绑失败', -100); } return DataReturn('未登录,不能操作', -1); } /** * 微信绑定 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2018-12-03 * @desc description * @param [array] $params [输入参数] */ public static function WeixinAuthBind($params = []) { // openid if(empty($params['openid'])) { return DataReturn('用户openid为空', -1); } // 获取登录用户 $user = UserService::LoginUserInfo(); if(!empty($user)) { // 是否已绑定 if(!empty($user['weixin_web_openid'])) { return DataReturn('该帐号已绑定微信,请先解绑', -1); } // 绑定 if(Db::name('User')->where(['id'=>$user['id']])->update(['weixin_web_openid'=>$params['openid'], 'upd_time'=>time()])) { // 用户登录session纪录 if(UserService::UserLoginRecord($user['id'])) { return DataReturn('绑定成功', 0); } } return DataReturn('绑定失败', -100); } // openid登录 $user = UserService::UserInfo('weixin_web_openid', $params['openid']); if(!empty($user)) { // 用户登录 return UserService::UserLoginHandle($user['id'], $params); } // 用户名 $username = empty($params['nickname']) ? '微信-'.RandomString(6) : $params['nickname'].'-'.RandomString(6); if(mb_strlen($username, 'utf-8') > 18) { $username = mb_substr($username, 0, 18); } // 游客数据 $salt = GetNumberCode(6); $data = [ 'weixin_web_openid' => $params['openid'], 'username' => $username, 'nickname' => empty($params['nickname']) ? '' : $params['nickname'], 'gender' => empty($params['sex']) ? 0 : (isset($params['sex']) && $params['sex'] == 1) ? 2 : 1, 'province' => empty($params['province']) ? '' : $params['province'], 'city' => empty($params['city']) ? '' : $params['city'], 'avatar' => empty($params['headimgurl']) ? '' : $params['headimgurl'], 'status' => 0, 'salt' => $salt, 'pwd' => LoginPwdEncryption($username, $salt), 'add_time' => time(), 'upd_time' => time(), ]; // 数据添加 $ret = UserService::UserInsert($data, $params); if($ret['code'] == 0) { // 用户登录session纪录 if(UserService::UserLoginRecord($ret['data']['user_id'])) { return DataReturn('登录成功', 0, $ret['data']); } } return DataReturn('登录失败', -100); } } ?>