Если магазин хочет, чтобы покупатель совершал выбор платежной системы на сайте магазина, он может либо самостоятельно вывести список доступных платежных систем и рассчитать окончательную цену для каждой ПС с учетом комиссий на основе имеющихся в договоре данных, либо получать актуальную информацию о списке доступных платежных систем и комиссиях в автоматическом режиме. В последнем случае магазину необходимо использовать прямой запрос к Platron, описанный ниже.
Магазин подает запрос на https://www.platron.ru/ps_list.php, параметры передаются одним из методов прямого запроса (см. Способы прямого взаимодействия между магазином и Platron). Максимальное время ожидания ответа – 30 секунд.
Список параметров запроса:
Параметр (обязательные поля выделены жирным) | Значение по умолчанию | Описание |
pg_merchant_id | (string[16]) идентификатор продавца | |
pg_amount | (decimal) сумма счета в системе продавца в валюте pg_currency. | |
pg_currency | RUB | (string[3]) валюта счета |
pg_testing_mode | 0 |
Флаг, принимает значение 0 или 1.
Подробное описание см. в разделе Тестирование. |
pg_salt | Случайная строка | |
pg_sig | Подпись |
Пример GET запроса:
https://www.platron.ru/ps_list.php?pg_salt=123&pg_merchant_id=456&pg_amount=800.45&pg_currency=RUB&pg_sig=aec5f9d237952f83bd05c602d287098d
Пример XML запроса (передается POST’ом в параметре pg_xml):
<?xml version="1.0" encoding="utf-8"?> <request> <pg_salt>123</pg_salt> <pg_merchant_id>456</pg_merchant_id> <pg_amount>800.45</pg_amount> <pg_currency>RUB</pg_currency> <pg_sig>aec5f9d237952f83bd05c602d287098d</pg_sig> </request>
Ответ на запрос представляет собой XML (в кодировке utf-8), содержащий список доступных для этого магазина платежных систем и их атрибутов. Атрибутами являются сумма и валюта платежа, имя и описание ПС, а также список дополнительных параметров pg_required, обязательных для данной ПС. На данный момент обязательным полем может быть pg_alfaclick_client_id для интернет банкинга ALFACLICK. Так же в ответе присутствует список полей, которые можно присылать дополнительно для платежных систем pg_additional.
Магазин должен контролировать заполнение этих полей. Если выбрана платежная система, для которой есть обязательное к заполнению поле, но это поле не передано, то оно будет запрошено у покупателя на сайте www.platron.ru.
Пример ответа:
<?xml version="1.0" encoding="utf-8"?> <response> <pg_salt>9938745</pg_salt> <pg_status>ok</pg_status> <pg_payment_system> <pg_name>MIXPLATMTS</pg_name> <pg_description>Оплата со счета мобильного телефона МТС</pg_description> <pg_payment_scenario>offline</pg_payment_scenario> <pg_amount_to_pay>808.67</pg_amount_to_pay> <pg_amount_to_pay_currency>RUB</pg_amount_to_pay_currency> <pg_category>mobile</pg_category> </pg_payment_system> <pg_payment_system> <pg_name>CASH</pg_name> <pg_description>Наличные: Евросеть, ОСМП, Элекснет</pg_description> <pg_payment_scenario>offline</pg_payment_scenario> <pg_amount_to_pay>830.00</pg_amount_to_pay> <pg_amount_to_pay_currency>RUB</pg_amount_to_pay_currency> <pg_category>cash</pg_category> <pg_sub_payment_systems> <pg_sub_payment_system> <pg_sub_name>ELECSNET</pg_sub_name> <pg_sub_description>Elecsnet</pg_sub_description> </pg_sub_payment_system> <pg_sub_payment_system> <pg_sub_name>EUROSET</pg_sub_name> <pg_sub_description>Евросеть</pg_sub_description> </pg_sub_payment_system> <pg_sub_payment_system> <pg_sub_name>QIWI</pg_sub_name> <pg_sub_description>QIWI</pg_sub_description> </pg_sub_payment_system> </pg_sub_payment_systems> </pg_payment_system> <pg_payment_system> <pg_name>WEBMONEYRBANK</pg_name> <pg_description>Система WebMoney</pg_description> <pg_payment_scenario>online</pg_payment_scenario> <pg_amount_to_pay>810.35</pg_amount_to_pay> <pg_amount_to_pay_currency>RUB</pg_amount_to_pay_currency> <pg_category>wallet</pg_category> </pg_payment_system> <pg_payment_system> <pg_name>YANDEXMONEY</pg_name> <pg_description>Система Яндекс-деньги</pg_description> <pg_payment_scenario>online</pg_payment_scenario> <pg_amount_to_pay>812.15</pg_amount_to_pay> <pg_amount_to_pay_currency>RUB</pg_amount_to_pay_currency> <pg_category>wallet</pg_category> </pg_payment_system> <pg_sig>73daf9d237952f56bd05c602d2878dc2</pg_sig> </response>
В тэге response находится список платежных систем и подпись. Описание каждой платежной системы находится внутри тега pg_payment_system с уникальным идентификатором в атрибуте pg_name – именем платежной системы.
Для каждой системы могут быть возвращены параметры:
Параметр | Описание |
pg_name | (string[32]) имя платежной системы |
pg_description | (string[256]) описание системы, можно показывать пользователю |
pg_payment_scenario | Сценарий приема платежа: offline или online |
pg_amount_to_pay | (decimal) сумма, которую заплатит пользователь |
pg_amount_to_pay_currency | валюта, которую заплатит пользователь |
pg_category | Категория платежной системы для удобства вывода списка ПС на стороне магазина. Возможные варианты ‘wallet’,’mobile’,’cash’,’internetbank’,’bankcard’,’other’,’bank_side_card’ |
pg_required | (string[32]) имя обязательного для заполнения параметра, если таковой имеется. Если обязательных параметров несколько, то каждый выводится в отдельной тэге pg_required. |
pg_additional | (string[32]) Не обязательный параметр аналогично pg_required |
pg_sub_name | (string[32]) имя платежной системы в группе |
pg_sub_description | (string[256]) описание платежной системы в группе, можно показывать пользователю вместо или в дополнение к pg_description платежной системы |
pg_sub_payment_systems | контейнер для платежных систем в группе |
pg_salt | Случайная строка |
pg_sig | Подпись |
Список платежных систем в ответе отсортирован по параметру pg_name, а внутри группы по pg_sub_name. Если платежная система представляет собой группу платежных систем, то список платежных систем, входящих в группу, представлен в теге pg_sub_payment_systems.
Пример построения списка для выбора платежной системы можно увидеть на сайте www.platron.ru, если не передавать идентификатор ПС при инициализации платежа. В случае ошибки возвращается xml для ошибки (см. Способы прямого взаимодействия между магазином и Platron).