Методы оплаты
Вы можете получить список доступных способов оплаты для вашего проекта в режиме реального времени, перед перенаправлением пользователя на систему Paysera. Это может быть полезным, если вы отображаете список методов оплаты на вашем сайте - в этом случае, Вам не придется обновлять конфигурацию каждый раз, когда что-то измениться.
Кроме того, для каждого доступного способа оплаты указываются минимальные и максимальные суммы. Это позволяет показывать только те способы оплаты, которые актуальны для конкретного покупателя.
Извлечение способов оплаты осуществляется в библиотеке WebToPay. Убедитесь, что у Вас есть последняя версия библиотеки - это функциональность еще не была реализована в 1.5 версии.
Способы оплаты
Албания
Австрия
Бельгия
Болгария
Канада
Чешская Республика
Германия
Дания
Эстония
Испания
Финляндия
Франция
Великобритания
Грузия
Греция
Хорватия
Венгрия
Ирландия
Италия
Литва
Люксембург
Латвия
Мальта
Нидерланды
Норвегия
Другие страны
Польша
Португалия
Румыния
Швеция
Словения
Словакия
Турция
США
Косово
Логотип оплаты для колонтитула
Введите страну для отображения:
Страна
Албания
Австрия
Бельгия
Болгария
Канада
Чешская Республика
Германия
Дания
Эстония
Испания
Финляндия
Франция
Великобритания
Грузия
Греция
Хорватия
Венгрия
Ирландия
Италия
Литва
Люксембург
Латвия
Мальта
Нидерланды
Норвегия
Другие страны
Польша
Португалия
Румыния
Швеция
Словения
Словакия
Турция
США
Косово
Получение доступных способов оплаты с помощью библиотеки WebToPay
Информация о способах оплаты хранится в специальной категории. Это позволяет управлять данными с большей легкостью и получать необходимую информацию быстрее. Поскольку минимальные и максимальные суммы платежа предоставлены, получая способы оплаты Вам необходимо указать не только ID проекта, но и валюту.
<?php $paymentMethodsInfo = WebToPay::getPaymentMethodList($projectid, $currency);
Информация о способах оплаты разделена на 4 уровня:
-
WebToPay_PaymentMethodList- содержит всю доступную информацию. МетодWebToPay::getPaymentMethodListвозвращает объекты этой категории.
Методы категории:-
filterForAmount($amount, $currency)возвращает новый случай категорииWebToPay_PaymentMethodListтолько с теми типами платежей, которые доступны по указанной цене. -
getCountries()возвращает массив объектовWebToPay_PaymentMethodCountry -
getCountry($countryCode)возвращает один объектWebToPay_PaymentMethodCountry -
setDefaultLanguage($language)устанавливает язык по умолчанию для целого дерева объектов. Язык по умолчанию используется для названий и адресов логотипов. Язык может быть передан и для конкретных методов, возвращающих названия.
-
-
WebToPay_PaymentMethodCountry— информация о типах платежей в стране.
Методы категории:-
getTitle()возвращает название страны. -
getGroups()возвращает массив объектовWebToPay_PaymentMethodGroup. -
getPaymentMethods()возвращает массив объектовWebToPay_PaymentMethod. Берутся все методы платежей с каждой группы в стране. Используйте этот метод если не хотите делить способы оплаты на группы.
-
-
WebToPay_PaymentMethodGroup— информация о типах платежей для группы.
Методы категории:-
getTitle()возвращает название группы. -
getPaymentMethods()возвращает массив объектовWebToPay_PaymentMethod.
-
-
WebToPay_PaymentMethod— информация о типе платежа.
Методы категории:-
getKey()возвращает идентификатор этого типа платежа. Он должен быть передан во время запроса на систему Paysera. -
getTitle()возвращает название этого типа платежа; -
getLogoUrl()возвращает адрес логотипа для этого типа платежа. Возвращает нуль если логотип недоступен. -
isAvailableForAmount($amount, $currency)устонавливает доступен ли этот тип платежа для указанной суммы. Если типы платежей фильтруются с помощью методаWebToPay_PaymentMethodList::filterForAmount, повторно проверять нет смысла.
-
Пример как можно предоставить доступные типы платежей для конкретной суммы в Литве, без группировки:
<?php
$paymentMethodsInfo = WebToPay::getPaymentMethodList($projectid, $currency)
->filterForAmount($amount, $currency) // leave only methods, available for this amount
->setDefaultLanguage('lt') // display titles in Lithuanian
;
foreach ($paymentMethodsInfo->getCountry('lt')->getPaymentMethods() as $paymentMethod) {
echo '<input type="radio" name="payment" value="' . $paymentMethod->getKey() . '" />';
if ($paymentMethod->getLogoUrl()) { // display logo only if available
echo '<img src="' . $paymentMethod->getLogoUrl() . '" />';
}
echo $paymentMethod->getTitle() . '<br />';
}
Пример как можно предоставить все возможные способы оплаты в каждой стране по их группам, лишая возможности выбрать недоступные способы оплаты:
<?php
$paymentMethodsInfo = WebToPay::getPaymentMethodList($projectid, $currency)
->setDefaultLanguage('en') // display titles in English
;
foreach ($paymentMethodsInfo->getCountries() as $country) {
echo '<h2>' . $country->getTitle() . '</h2>';
foreach ($country->getGroups() as $group) {
echo '<h3>' . $group->getTitle() . '</h3>';
foreach ($group->getPaymentMethods() as $paymentMethod) {
// display radio only if available
if ($paymentMethod->isAvailableForAmount($amount, $currency)) {
echo '<input type="radio" name="payment" value="' . $paymentMethod->getKey() . '" />';
}
// display logo only if available
if ($paymentMethod->getLogoUrl()) {
echo '<img src="' . $paymentMethod->getLogoUrl() . '" />';
}
echo $paymentMethod->getTitle() . '<br />';
}
}
}
Получение доступных способов оплаты не используя библиотеки WebToPay
Если Ваш проект написан не на языке PHP, вы можете получить способы оплаты через тот же интерфейс, который использует библиотека WebToPay.
Типы платежей предоставлены в формате XML, по следующему адресу:
https://www.paysera.com/payment-methods/yourProjectId/currency:desiredCurrency/amount:desiredAmount/language:desiredLanguage
Все параметры за исключением yourProjectId не обязательны. Вы также можете предоставить только один или несколько из них в любом порядке.
-
desiredCurrency— валюта, в которой будут указаны минимальные и максимальные возможные суммы. Если не установлена, суммы предоставляются в евро. -
desiredAmount— предоставляются только те типы платежей, которые доступны для указанной суммы. Сумма должна быть в центах. -
desiredLanguage— названия предоставляются только на этом языйе. Если не установлен, названия предоставляются на всех доступных языках.
На пример, если Вы хотите получить те способы оплаты, которые доступны для платежа на 10000 EUR, используйте следующий адрес (допустим ID проекта 6028):
https://www.paysera.com/payment-methods/6028/currency:EUR/amount:1000000