- Модуль: crmmobile
- Путь к файлу: ~/bitrix/modules/crmmobile/lib/Terminal/PaymentSystemRepository.php
- Класс: BitrixCrmMobileTerminalPaymentSystemRepository
- Вызов: PaymentSystemRepository::preparePaySystemList
static function preparePaySystemList(array $paySystemList): array
{
$result = [];
$requiredPaySystemList = self::getRequiredPaySystemList();
foreach ($paySystemList as $paySystemItem)
{
$result[] = [
'handler' => (string)$paySystemItem['ACTION_FILE'],
'type' => (string)$paySystemItem['PS_MODE'],
'connected' => true,
'id' => (int)$paySystemItem['ID'],
'title' => $paySystemItem['NAME'],
'sort' => (int)$paySystemItem['SORT'],
];
}
foreach ($requiredPaySystemList as $requiredPaySystemItem)
{
$isFound = false;
foreach ($result as $paySystem)
{
if (
$requiredPaySystemItem['handler'] === $paySystem['handler']
&& $requiredPaySystemItem['type'] === $paySystem['type']
)
{
$isFound = true;
break;
}
}
if (!$isFound)
{
$result[] = $requiredPaySystemItem;
}
}
$yandexCheckoutCode = self::getYandexCheckoutHandlerCode();
foreach ($result as $index => $resultItem)
{
if ($resultItem['handler'] === $yandexCheckoutCode)
{
if ($resultItem['type'] === YandexCheckoutHandler::MODE_SBP)
{
$result[$index]['sort'] = -20;
}
elseif ($resultItem['type'] === YandexCheckoutHandler::MODE_SBERBANK_QR)
{
$result[$index]['sort'] = -10;
}
$result[$index]['sort'] = (int)$result[$index]['sort'];
}
}
usort($result, static function ($item1, $item2) {
return $item1['sort'] <=> $item2['sort'];
});
return $result;
}