Files
PHPShop/moneta/class/protocol/AssistantProtocol.php

52 lines
1.6 KiB
PHP

<?php
declare(strict_types=1);
namespace MonetaPhpShop\protocol;
/**
* Êîíñòàíòû ïðîòîêîëà MONETA.Assistant (`MONETA.Assistant.ru.pdf`).
*/
final class AssistantProtocol
{
/** `MNT_COMMAND` ïðîâåðî÷íîãî çàïðîñà íà Check URL; íà Pay URL ïàðàìåòðà íåò. */
public const COMMAND_CHECK = 'CHECK';
/** Òåêñòîâûé îòêàç íà Check/Pay URL: ñåðâèñ ïîâòîðèò óâåäîìëåíèå. */
public const TEXT_FAIL = 'FAIL';
/** Åäèíñòâåííàÿ âàëþòà ìîäóëÿ (ISO 4217). */
public const CURRENCY_RUB = 'RUB';
private function __construct() {}
/**
* ISO-êîä âàëþòû ìàãàçèíà -> `MNT_CURRENCY_CODE`; null — âàëþòà ìîäóëåì íå ïîääåðæèâàåòñÿ.
* `RUR` — óñòàðåâøèé êîä ðóáëÿ, êîòîðûé åù¸ âñòðå÷àåòñÿ â ñïðàâî÷íèêàõ âàëþò ìàãàçèíîâ.
*/
public static function normalizeCurrency(string $iso): ?string
{
$iso = strtoupper(trim($iso));
return (($iso === self::CURRENCY_RUB) || ($iso === 'RUR')) ? self::CURRENCY_RUB : null;
}
/**
* Çíà÷åíèå `MNT_TEST_MODE` äëÿ ôîðìû è ïîäïèñè.
*/
public static function testModeFlag(bool $testMode): string
{
return $testMode ? '1' : '0';
}
/**
* ßçûê âèòðèíû PHPShop (`russian`, `russian_utf`, `english`, `english_utf`) ->
* `moneta.locale` ïëàò¸æíîé ôîðìû. Ìîíåòà çíàåò òîëüêî `ru` è `en`
* (`MONETA.Assistant.ru.pdf`, ïàðàìåòðû çàïðîñà): àíãëèéñêàÿ âèòðèíà — `en`, îñòàëüíûå — `ru`.
*/
public static function normalizeLocale(string $shopLocale): string
{
return strncmp(strtolower(trim($shopLocale)), 'english', 7) === 0 ? 'en' : 'ru';
}
}