$this->secret]; $headers = $this->getDefaultHeaders(); $headers['X-Bunq-Client-Authentication'] = $this->installationToken->getToken(); $response = $this->sendSignedBunqPost($uri, $data, $headers); $this->deviceSessionId = $this->extractDeviceSessionId($response); $this->sessionToken = $this->extractSessionToken($response); $this->userPerson = $this->extractUserPerson($response); $this->userCompany = $this->extractUserCompany($response); Log::debug(sprintf('Session ID: %s', serialize($this->deviceSessionId))); Log::debug(sprintf('Session token: %s', serialize($this->sessionToken))); Log::debug(sprintf('Session user person: %s', serialize($this->userPerson))); Log::debug(sprintf('Session user company: %s', serialize($this->userCompany))); return; } /** * @return DeviceSessionId */ public function getDeviceSessionId(): DeviceSessionId { return $this->deviceSessionId; } /** * @return SessionToken */ public function getSessionToken(): SessionToken { return $this->sessionToken; } /** * @return UserPerson */ public function getUserPerson(): UserPerson { return $this->userPerson; } /** * @param InstallationToken $installationToken */ public function setInstallationToken(InstallationToken $installationToken) { $this->installationToken = $installationToken; } /** * @param array $response * * @return DeviceSessionId */ private function extractDeviceSessionId(array $response): DeviceSessionId { $data = $this->getKeyFromResponse('Id', $response); $deviceSessionId = new DeviceSessionId; $deviceSessionId->setId(intval($data['id'])); return $deviceSessionId; } private function extractSessionToken(array $response): SessionToken { $data = $this->getKeyFromResponse('Token', $response); $sessionToken = new SessionToken($data); return $sessionToken; } /** * @param $response * * @return UserCompany */ private function extractUserCompany($response): UserCompany { $data = $this->getKeyFromResponse('UserCompany', $response); $userCompany = new UserCompany($data); return $userCompany; } /** * @param $response * * @return UserPerson */ private function extractUserPerson($response): UserPerson { $data = $this->getKeyFromResponse('UserPerson', $response); $userPerson = new UserPerson($data); return $userPerson; } }