관리-도구
편집 파일: MetadataProvider.php.tar
home/tattooscyy/test/app/Libs/Sdk/Communication/MetadataProvider.php 0000604 00000003263 15224700303 0021634 0 ustar 00 <?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)); } }