public function testServerMetaInfoHeaderFull() { // create a new CommunicatorConfiguration to not modify the field $communicatorConfiguration = new CommunicatorConfiguration($this->getApiKey(), $this->getApiSecret(), $this->getApiEndpoint(), 'Ingenico.Integrator'); $communicatorConfiguration->setShoppingCartExtension(new ShoppingCartExtension('Ingenico.Creator', 'Extension', '1.0')); $requestHeaderGenerator = new RequestHeaderGenerator($communicatorConfiguration, 'GET', '/v1/consumer/ANDR%C3%89E/?q=na%20me'); $requestHeaders = $requestHeaderGenerator->generateRequestHeaders(); $serverMetaInfoJson = $requestHeaders['X-GCS-ServerMetaInfo']; $serverMetaInfo = json_decode(base64_decode($serverMetaInfoJson)); $this->assertInstanceOf('\\stdClass', $serverMetaInfo); $this->assertObjectHasAttribute('platformIdentifier', $serverMetaInfo); $this->assertContains(php_uname(), $serverMetaInfo->platformIdentifier); $this->assertContains(phpversion(), $serverMetaInfo->platformIdentifier); $this->assertObjectHasAttribute('sdkIdentifier', $serverMetaInfo); $this->assertEquals('PHPServerSDK/v' . RequestHeaderGenerator::SDK_VERSION, $serverMetaInfo->sdkIdentifier); $this->assertObjectHasAttribute('sdkCreator', $serverMetaInfo); $this->assertEquals('Ingenico', $serverMetaInfo->sdkCreator); $this->assertObjectHasAttribute('integrator', $serverMetaInfo); $this->assertEquals('Ingenico.Integrator', $serverMetaInfo->integrator); $this->assertObjectHasAttribute('shoppingCartExtension', $serverMetaInfo); $this->assertInstanceOf('\\stdClass', $serverMetaInfo->shoppingCartExtension); $this->assertObjectHasAttribute('creator', $serverMetaInfo->shoppingCartExtension); $this->assertEquals('Ingenico.Creator', $serverMetaInfo->shoppingCartExtension->creator); $this->assertObjectHasAttribute('name', $serverMetaInfo->shoppingCartExtension); $this->assertEquals('Extension', $serverMetaInfo->shoppingCartExtension->name); $this->assertObjectHasAttribute('version', $serverMetaInfo->shoppingCartExtension); $this->assertEquals('1.0', $serverMetaInfo->shoppingCartExtension->version); }
/** * @param $relativeUriPath * @param RequestObject|null $requestParameters * @return string * @throws Exception */ protected function getRequestUri($relativeUriPath, RequestObject $requestParameters = null) { return $this->communicatorConfiguration->getApiEndpoint() . $this->getRelativeUriPathWithRequestParameters($relativeUriPath, $requestParameters); }
/** * @param string[] $requestHeaders * @return string */ protected function getAuthorizationHeaderValue($requestHeaders) { return static::AUTHORIZATION_ID . ' ' . static::AUTHORIZATION_TYPE . ':' . $this->communicatorConfiguration->getApiKeyId() . ':' . base64_encode(hash_hmac(static::HASH_ALGORITHM, $this->getSignData($requestHeaders), $this->communicatorConfiguration->getApiSecret(), true)); }