diff --git a/app/Http/Controllers/Api/UserController.php b/app/Http/Controllers/Api/UserController.php new file mode 100644 index 0000000..462ef65 --- /dev/null +++ b/app/Http/Controllers/Api/UserController.php @@ -0,0 +1,61 @@ +only(['iv', 'encryptedData']); + $request->validate([ + 'iv' => 'required', + 'encryptedData' => 'required', + ], [ + '*.required' => '参数缺失' + ]); + + $agent = Agent::query()->find($this->agent_id); //代理商数据 + $config = config('wechat.mini_program.default'); + $config = array_merge($config, [ + 'app_id' => $agent->appid, + 'secret' => $agent->appsecret, + ]); + + $session = Cache::get('session_key_' . $this->user_id); + if (!$session) { + return $this->error('无效的session,请重新登录'); + } + + $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->save(); + } catch (\Exception | DecryptException $e) { + return $this->error($e->getMessage()); + } + + return $this->success($decryptedData); + } +}