config = [ 'app_id' => '', 'secret' => '', 'response_type' => 'array', 'log' => [ 'level' => 'debug', 'file' => __DIR__ . '/wechat.log', ], ]; $this->app = new Application($this->config); } public function appId() { return $this->config['app_id']; } public function nickname() { return '微信用户' . time() . rand(1, 100); } public function avatar() { return '/image/avatar.jpg'; } public function login($code) { $result = $this->app->getUtils()->codeToSession($code); if (isset($result['openid'])) { return $result; } throw new BusinessException('登录失败', 500); } public function getPhoneNumber($code, $iv, $encryptedData) { $utils = $this->app->getUtils(); $response = $utils->codeToSession($code); $session = $utils->decryptSession($response['session_key'], $iv, $encryptedData); if (empty($session['phoneNumber'])) { throw new BusinessException('获取手机号失败', 500); } return $session['phoneNumber']; } }