You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
	
	
		
		
			
	
    
		
			
				
					
						                                                                                            | 
						 | 
						<?php
namespace App\Http\Controllers\Api;use App\Http\Controllers\Controller;use App\Models\AdminSetting;use App\Models\Agent;use App\Models\User;use EasyWeChat\Factory;use EasyWeChat\Kernel\Exceptions\DecryptException;use Illuminate\Http\Request;use Illuminate\Support\Facades\Auth;use Illuminate\Support\Facades\Cache;
/** * 用户 * Class UserController * @package App\Http\Controllers\Api */class UserController extends Controller{	//获取用户信息
	public function info()	{		$user = User::find($this->user_id);		return $this->success($user);	}
	//解密用户信息
	public function profile(Request $request)	{		$formData = $request->only(['iv', 'encryptedData']);		$request->validate([			'iv' => 'required',			'encryptedData' => 'required',		], [			'*.required' => '参数缺失'		]);
		$agent = Agent::query()->find($this->agent_id); //代理商数据
		$session = Cache::get('session_key_' . $this->user_id);		if (!$session) {			return $this->error('无效的session,请重新登录');		}
		// 如果有appsecret,使用原来的逻辑,否则使用第三方平台逻辑
		if ($agent['appsecret']) {			$config = config('wechat.mini_program.default');			$config = array_merge($config, [				'app_id' => $agent->appid,				'secret' => $agent->appsecret,			]);			$app = Factory::miniProgram($config);		} else {			$setting = AdminSetting::val(['service_appid', 'service_appsecret', 'service_token', 'service_aeskey']);			$config = [				'app_id'   => $setting['service_appid'],				'secret'   => $setting['service_appsecret'],				'token'    => $setting['service_token'],				'aes_key'  => $setting['service_aeskey'],			];			$app = Factory::miniProgram($config);		}		try {			$decryptedData = $app->encryptor->decryptData($session, $formData['iv'], $formData['encryptedData']);			$user = User::find($this->user_id);			if (!empty($decryptedData['nickName'])) {				$user->nickname = $decryptedData['nickName'];			}			if (!empty($decryptedData['avatarUrl'])) {				$user->avatar = $decryptedData['avatarUrl'];			}			if (!empty($decryptedData['purePhoneNumber'])) {				$user->mobile = $decryptedData['purePhoneNumber'];			}			$user->unionid = $decryptedData['unionId'] ?? '';			$user->country = $decryptedData['country'] ?? '';			$user->province = $decryptedData['province'] ?? '';			$user->city = $decryptedData['city'] ?? '';			$user->gender = $decryptedData['gender'] ?? 0;			$user->language = $decryptedData['language'] ?? '';			$user->save();		} catch (\Exception | DecryptException $e) {			return $this->error($e->getMessage());		}
		$user->token = request()->header('Authentication');		return $this->success($user);	}
	public function bindingMobile(Request $request)	{		$request->validate([			'mobile' => 'required|int|between:10000000000,19999999999',		], [			'*.required' => '参数异常'		]);
		$userId = $this->user_id;		$user = User::find($userId);		$user->mobile = Request('mobile',0);		if ($user->save()) {			return $this->success($user);		} else {			return $this->error('绑定失败',407);		}	}}
  |