D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
tattooscyy
/
test
/
app
/
Libs
/
Sdk
/
Communication
/
Filename :
MetadataProvider.php
back
Copy
<?php namespace App\Libs\Sdk\Communication; use App\Libs\Sdk\CommunicatorConfiguration; use App\Libs\Sdk\Domain\ShoppingCartExtension; use stdClass; /** * Class MetadataProvider * * @package OnlinePayments\Sdk\Communication */ class MetadataProvider implements MetadataProviderInterface { const SDK_VERSION = '7.5.0'; /** @var string */ private string $integrator; /** @var ShoppingCartExtension|null */ private ?ShoppingCartExtension $shoppingCartExtension; /** * @param CommunicatorConfiguration $communicatorConfiguration */ public function __construct(CommunicatorConfiguration $communicatorConfiguration) { $this->integrator = $communicatorConfiguration->getIntegrator(); $this->shoppingCartExtension = $communicatorConfiguration->getShoppingCartExtension(); } /** * @return string */ public function getServerMetaInfoValue(): string { // use a stdClass instead of specific class to keep out null properties $serverMetaInfo = new stdClass(); $serverMetaInfo->platformIdentifier = sprintf('%s; php version %s', php_uname(), phpversion()); $serverMetaInfo->sdkIdentifier = 'PHPServerSDK/v' . static::SDK_VERSION; $serverMetaInfo->sdkCreator = 'OnlinePayments'; $serverMetaInfo->integrator = $this->integrator; if (!is_null($this->shoppingCartExtension)) { $serverMetaInfo->shoppingCartExtension = $this->shoppingCartExtension->toObject(); } // the sdkIdentifier contains a /. Without the JSON_UNESCAPED_SLASHES, this is turned to \/ in JSON. return base64_encode(json_encode($serverMetaInfo, JSON_UNESCAPED_SLASHES)); } }