Общие принципы взаимодействия

Обмен информацией между магазином и Platron может происходить двумя способами:

1. Напрямую, через вызов определенных URL

2. Через браузер пользователя

Эти два способа подробнее описаны в подразделах ниже.

При обмене данными действует правило именования параметров: имена всех параметров, которые касаются взаимодействия Platron и магазина, имеют префикс pg_, все прочие параметры его не имеют.

Во всех денежных суммах для отделения дробной части используется точка. Если число целое, то указание дробной части необязательно. Число знаков после точки – не более двух. Тысячи не отделяются никакими знаками.

Любые сообщения (запросы и ответы) между Platron и магазином подписываются. Для формирования подписи необходимо конкатенировать с разделителем ';' :

1. Имя вызываемого скрипта (от последнего '/' до конца или '?')

2. Все поля сообщения в алфавитном порядке, включая случайную строку pg_salt, состоящую из произвольного количества цифр и латинских букв, при этом:

a. к вложенным тегам это правило применяется рекурсивно (только XML)

b. поля с одинаковыми именами берутся в том порядке, в котором они присутствуют в сообщении

3. Платежный пароль secret_key, который задается в настройках магазина и известен только магазину и Platron.

От полученной в результате конкатенации строки необходимо вычислить md5 и добавить в запрос или ответ в качестве дополнительного параметра pg_sig. MD5 хэш записывается в виде шестнадцатеричной строки в нижнем регистре (32 символа).

Пример: Вызов https://domain.com/path/to/script.php

<?xml version="1.0" encoding="utf-8"?>
  <request>
	<pg_salt>9imM909TH820jwk387</pg_salt>
	<pg_t_param>value3</pg_t_param>
	<pg_a_param>value1</pg_a_param>
	<pg_z_param>
	  <pg_q_subparam>subvalue2</pg_q_subparam>
	  <pg_m_subparam>subvalue1</pg_m_subparam>
	</pg_z_param>
	<pg_b_param>value2</pg_b_param>
	<pg_sig>a8a4d5a9188f24038a14a4d65c387bf7</pg_sig>
  </request>

В приведенном выше примере pg_sig вычисляется по формуле:

pg_sig = md5(‘script.php’ + ‘;’+ pg_a_param + ‘;’ + pg_b_param + ‘;’ + pg_salt + ‘;’+ pg_t_param + ‘;’ + pg_m_subparam + ‘;’+ pg_q_subparam + ‘;’+ secret_key);

что разворачивается в

pg_sig = md5('script.php;value1;value2;9imM909TH820jwk387;value3;subvalue1;subvalue2;mypasskey')
если в настройках было указано, что secret_key равен mypasskey.

Любая сторона может добавлять в запрос или ответ дополнительные параметры, не указанные в документации. Эти параметры также участвуют в вычислении подписи.

Сообщение не подписывается, и соответственно поля pg_salt и pg_sig отсутствуют только в одном случае – когда Platron не смог идентифицировать мерчанта и поэтому не знает его secret_key. В таком случае поле pg_error_code (числовой код ошибки) принимает значение 101. Полный список возможных значений поля pg_error_code см. в разделе Справочник кодов ошибок. Для отладки формирования подписей рекомендуется использовать страницу в личном кабинете https://www.platron.ru/admin/sig_debug_helper.php

Способы прямого взаимодействия между магазином и Platron

Используются три способа прямой передачи информации между магазином и Platron:

  1. Методом GET – данные передаются в параметрах методом GET. При передаче через GET, сложных структурированных данных, таких как многомерные массивы, используется следующий формат записи:

https://www.platron.ru/script.php?param_1=val1&m_2[subparam_1]=val2&m_2[subparam_2]=val3&m_3=val4
  1. Методом POST – данные передаются в параметрах методом POST. Структурные данные при работе через POST, формируются аналогичным образом.

  2. Через XML – запросы передаются методом POST в единственном параметре pg_xml, который представляет собой XML вида:

<?xml version="1.0" encoding="utf-8"?>
  <request>
	<pg_param1>value1</pg_param1>
	<pg_param2>value2</pg_param2>
	<pg_param3>value3</pg_param3>
  </request>

Независимо от способа формирования запроса (GET, POST или XML) ответ всегда выдается в формате XML вида:

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_status>ok</pg_status>
	<pg_param1>value1</pg_param1>
	<pg_param2>value2</pg_param2>
	<pg_param3>value3</pg_param3>
  </response>

В XML допускается только кодировка utf-8.

В ответе обязательно присутствует поле pg_status, которое показывает результат выполнения запроса. pg_status может быть равно ok в случае успешной обработки запроса, error в случае ошибки. В последнем случае также могут присутствовать поля:

pg_error_code – числовой код ошибки (обязательное поле; список возможных значений см. В разделе Справочник кодов ошибок) pg_error_description – описание ошибки (необязательное поле).

Пример:

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_salt>19imfwM909TH820jwk387</pg_salt>
	<pg_status>error</pg_status>
	<pg_error_code>200</pg_error_code>
	<pg_error_description>amount not specified</pg_error_description>
	<pg_sig>ccde41a4f425d124a23c3a53a3140bdc158ac</pg_sig>
  </response>

В ответах на отдельные запросы возможны и другие значения pg_status, кроме ok и error.

Способы взаимодействия между магазином и Platron через браузер пользователя

Platron и магазин могут передавать информацию друг другу одновременно с передачей управления покупателем. Передача может происходить по действию покупателя или автоматически.

Передача информации по действию покупателя

Передача покупателя и информации между Platron и магазином возможна следующими способами:

1. Ссылка, ведущая на другой сайт

2. Форма, действие которой ведет на другой сайт. Пользователь сам нажимает кнопку.

Автоматическая передача информации

Автоматическая передача покупателя и информации между Platron и магазином возможна следующими способами:

1. 302 редирект (HTTP заголовок Location). Только метод GET.

2. Авто-сабмит форма. Методы GET и POST. Сайт отдает пользователю страницу, состоящую только из формы, action которой ведет на другой сайт. Форма состоит только из hidden полей. Форма автоматически сабмитится по событию onload. Таким образом, пользователь даже не видит этой страницы.

Пример:

<html>
  <body onload=”document.forms[0].submit()”>
	<form method=”POST” action=”https://www.platron.ru/payment.php”>
	  <input type=”hidden” name=”pg_param1” value=”value1” />
	  <input type=”hidden” name=”pg_param2” value=”value2” />
	  <input type=”hidden” name=”pg_param3” value=”value3” />
	  <input type=”hidden” name=”pg_param4” value=”value4” />
	</form>
  </body>
</html>

Настройки электронного магазина

Перед началом работы необходимо сделать следующие настройки учетной записи электронного магазина в platron.ru:

Поле (обязательные поля выделены жирным) Значение по умолчанию Описание
pg_merchant_id Идентификатор продавца в Platron. Выдается при подключении.
pg_order_id Идентификатор платежа в системе продавца. Рекомендуется поддерживать уникальность этого поля. Максимальная длинна 50 символов в UTF-8
pg_amount Сумма платежа в валюте pg_currency
pg_currency RUB Валюта, в которой указана сумма. RUB, USD, EUR. В случае выбора покупателем способа платежа в другой валюте, производится пересчет по курсу ЦБ на день платежа. Полный список возможных значений см. в разделе Справочник валют.
pg_check_url Из настроек магазина Check URL (string[256]) URL для проверки возможности платежа. Вызывается перед платежом, если платежная система предоставляет такую возможность. Если параметр не указан, то берется из настроек магазина. Если параметр установлен равным пустой строке, то проверка возможности платежа не производится.
pg_result_url Из настроек магазина Result URL (string[256]) URL для сообщения о результате платежа. Вызывается после платежа в случае успеха или неудачи. Если параметр не указан, то берется из настроек магазина. Если параметр установлен равным пустой строке, то Platron не сообщает магазину о результате платежа.
pg_refund_url Из настроек магазина Refund URL (string[256]) URL для сообщения об отмене платежа. Вызывается после платежа в случае отмены платежа на стороне Platron или ПС. Если параметр не указан, то берется из настроек магазина.
pg_capture_url Из настроек магазина Capture URL (string[256]) URL для сообщения о проведении клиринга платежа по банковской карте. Если параметр не указан, то берется из настроек магазина.
pg_request_method Из настроек магазина Request Method (string[4]) GET, POST или XML – метод вызова скриптов магазина Check URL, Result URL, Refund URL, Capture URL для передачи информации от платежного гейта.
pg_success_url Из настроек магазина Success URL (string[256]) url, на который отправляется пользователь в случае успешного платежа (только для online систем)
pg_failure_url Из настроек магазина Failure URL (string[256]) url, на который отправляется пользователь в случае неуспешного платежа (только для online систем)
pg_success_url_method Из настроек магазина Success URL Method GET – кнопка, которая сабмитится методом GET. POST – кнопка, которая сабмитится методом POST. AUTOGET – 302 редирект. См. Автоматическая передача информации, п.1. AUTOPOST – форма, которая автоматически сабмитится. См. Автоматическая передача информации, п.2. Если выбран метод GET или POST, то страница с подтверждением оплаты показывается пользователю на сайте platron.ru, и предлагается нажать кнопку, чтобы вернуться на сайт магазина. Если выбран метод AUTOGET или AUTOPOST, то страница с подтверждением оплаты не показывается пользователю, и пользователь сразу передается магазину.
pg_failure_url_method Из настроек магазина Failure URL Method GET – кнопка, которая сабмитится методом GET. POST – кнопка, которая сабмитится методом POST. AUTOGET – 302 редирект. См. Автоматическая передача информации, п.1. AUTOPOST – форма, которая автоматически сабмитится. См. Автоматическая передача информации, п.2. Если выбран метод GET или POST, то страница с подтверждением оплаты показывается пользователю на сайте platron.ru, и предлагается нажать кнопку, чтобы вернуться на сайт магазина. Если выбран метод AUTOGET или AUTOPOST, то страница с подтверждением оплаты не показывается пользователю, и пользователь сразу передается магазину.
pg_state_url Из настроек магазина State URL (string[256]) URL скрипта на сайте магазина, куда перенаправляется покупатель для ожидания ответа от платежной системы.
pg_state_url_method Из настроек магазина State URL Method GET – кнопка, которая сабмитится методом GET. POST – кнопка, которая сабмитится методом POST. AUTOGET – 302 редирект. См. Автоматическая передача информации, п.1. AUTOPOST – форма, которая автоматически сабмитится. См. Автоматическая передача информации, п.2. Если выбран метод GET или POST, то страница с сообщением о неудавшейся оплате показывается пользователю на сайте platron.ru, и предлагается нажать кнопку, чтобы вернуться на сайт магазина. Если выбран метод AUTOGET или AUTOPOST, то страница с сообщением о неудавшейся оплате не показывается пользователю, и пользователь сразу передается магазину.
pg_site_url Из настроек магазина Site URL URL сайта магазина для показа покупателю ссылки, по которой он может вернуться на сайт магазина после создания счета. Применяется для offline ПС (наличные).
pg_payment_system Идентификатор выбранной ПС или группы ПС. Примеры: webmoney, yandexmoney, EUROSET, СyberplatCASH, cash (Полный список возможных значений см. в разделе Справочник платежных систем и групп). Этот параметр передается только если выбор платежной системы совершается на сайте продавца. Если параметр не указан, то выбор ПС совершается на сайте www.platron.ru*
pg_lifetime сутки Время (в секундах) в течение которого платеж должен быть завершен, в противном случае заказ при проведении платежа Platron откажет платежной системе в проведении. Этот параметр контролируется Platron, а также, если платежная система поддерживает такую возможность, и платежной системой. См. Справочник платежных систем и групп. Минимально допустимое значение: 300 секунд (5 минут). Максимально допустимое значение: 604800 секунд (7 суток). В случае выхода за пограничные значения, будет безакцептно присвоено минимальное или максимальное значение, соответственно
pg_encoding UTF-8 Кодировка, в которой указаны другие поля запроса (только в случае использования методов GET или POST)
pg_description (string[1024]) Описание товара или услуги. Отображается покупателю в процессе платежа. Передается в кодировке pg_encoding. Только Basic Multilingual Plane для utf-8
pg_user_phone (int[14]) телефон пользователя (для России начиная с цифр 79..), необходим для идентификации покупателя. Если не указан, выбор будет предложен пользователю на сайте платежного гейта.
pg_need_phone_notification 1 Необходимость оповещения клиента (если услуга подключена) по смс о статусе транзакции. 0 – не уведомлять.
pg_user_contact_email (string[100]) Контактный адрес электронной почты пользователя. Если указан, на этот адрес будут высылаться уведомления об изменении статуса транзакции.
pg_need_email_notification 1 Необходимость оповещения клиента (если услуга подключена) по email о статусе транзакции. 0 – не уведомлять.
pg_user_ip IP-адрес клиента.Необходим для разбора спорных ситуаций в случае подозрения на мошенничество. Параметр можно не передавать при передаче информации через браузер пользователя, в этом случае будет записан тот IP, с которого пользователь перешёл на страницу инициализации платежа.
pg_postpone_payment Создание платежа с отложенной оплатой (https://www.platron.ru/support/postponed_payment), если в этом параметре передано «1». В таком случае покупатель будет перенаправлен на страницу с информацией о том, что ему было выслано письмо со ссылкой на страницу для продолжения проведения платежа. Если этот параметр присутствует в запросе, то должен быть указан также pg_user_contact_email, иначе пользователь будет перенаправлен на уточнение платежных параметров, где он сможет, указать email и попробовать отложить платеж ещё раз.
pg_language ru Язык платежных страниц на сайте Platron и (если возможно) платежных систем. Значение ru устанавливает русский язык, en – английский.
pg_testing_mode Из настроек магазина Флаг, принимает значение 0 или 1. Подробное описание см. в разделе Тестирование.
pg_recurring_start 0 Флаг, принимает значение 0 или 1. Подробное описание см. в разделе Рекурентные платежи.
pg_recurring_lifetime Время на продолжении которого продавец рассчитывает использовать профиль рекуррентных платежей. Минимально допустимое значение 1 (1 месяц).Максимально допустимое значение: 156 (13 лет). В случае выхода за пограничные значения будет безакцептно присвоено минимальное или максимальное значение, соответственно. Подробное описание см. в разделе Рекурентные платежи.
Дополнительные параметры продавца Можно передавать произвольные дополнительные параметры, имена которых не начинаются на pg_. Все эти параметры будут переданы на pg_check_url, pg_result_url, pg_success_url, pg_failure_url. Имена дополнительных параметров продавца должны быть уникальны.
pg_salt Случайная строка
pg_sig Подпись
*Для банковских платежных систем ввод данных карты осуществляется на стороне магазина только при наличии сертификата PCI DSS и договоренности с менеджером.
Инициализация платежа

Для создания платежной транзакции (инициализации платежа) магазин должен выполнить два действия:

1. передать данные о платеже Platron

2. передать покупателя в управление Platron

Это возможно сделать двумя способами:

1. передать информацию о платеже через браузер пользователя, при этом одновременно пользователь переходит на сайт Platron.

2. передать информацию о платеже напрямую в Platron, в ответ получить идентификатор платежной транзакции и URL для последующего перенаправления покупателя, а затем перенаправить покупателя на этот URL.



В обоих случаях состав передаваемых данных совершенно идентичен, различаются лишь способ передачи и формат ответа.



Поле (обязательные поля выделены жирным) Значение по умолчанию Описание
pg_merchant_id Идентификатор продавца в Platron. Выдается при подключении.
pg_order_id Идентификатор платежа в системе продавца.
Рекомендуется поддерживать уникальность этого поля.

Максимальная длинна 50 символов в UTF-8
pg_amount Сумма платежа в валюте pg_currency
pg_currency RUB Валюта, в которой указана сумма.
RUB, USD, EUR.
В случае выбора покупателем способа платежа в другой валюте, производится пересчет по курсу ЦБ на день платежа.

Полный список возможных значений см. в разделе Справочник валют.
pg_check_url Из настроек магазина Check URL (string[256]) URL для проверки возможности платежа.
Вызывается перед платежом, если платежная система предоставляет такую возможность.

Если параметр не указан, то берется из настроек магазина.
Если параметр установлен равным пустой строке, то проверка возможности платежа не производится.
pg_result_url Из настроек магазина Result URL (string[256]) URL для сообщения о результате платежа. Вызывается после платежа в случае успеха или неудачи. Если параметр не указан, то берется из настроек магазина. Если параметр установлен равным пустой строке, то Platron не сообщает магазину о результате платежа.
pg_refund_url Из настроек магазина Refund URL (string[256]) URL для сообщения об отмене платежа.
Вызывается после платежа в случае отмены платежа на стороне Platron или ПС.

Если параметр не указан, то берется из настроек магазина.
pg_capture_url Из настроек магазина Capture URL (string[256]) URL для сообщения о проведении клиринга платежа по банковской карте.

Если параметр не указан, то берется из настроек магазина.
pg_request_method Из настроек магазина Request Method (string[4]) GET, POST или XML – метод вызова скриптов магазина Check URL, Result URL, Refund URL, Capture URL для передачи информации от платежного гейта.
pg_success_url Из настроек магазина Success URL (string[256]) url, на который отправляется пользователь в случае успешного платежа (только для online систем)
pg_failure_url Из настроек магазина Failure URL (string[256]) url, на который отправляется пользователь в случае неуспешного платежа (только для online систем)
pg_success_url_method Из настроек магазина Success URL Method GET – кнопка, которая сабмитится методом GET.
POST – кнопка, которая сабмитится методом POST.

AUTOGET – 302 редирект. См. Автоматическая передача информации, п.1.

AUTOPOST – форма, которая автоматически сабмитится. См. Автоматическая передача информации, п.2.

Если выбран метод GET или POST, то страница с подтверждением оплаты показывается пользователю на сайте platron.ru, и предлагается нажать кнопку, чтобы вернуться на сайт магазина.

Если выбран метод AUTOGET или AUTOPOST, то страница с подтверждением оплаты не показывается пользователю, и пользователь сразу передается магазину.
pg_failure_url_method Из настроек магазина Failure URL Method GET – кнопка, которая сабмитится методом GET.

POST – кнопка, которая сабмитится методом POST.

AUTOGET – 302 редирект. См. Автоматическая передача информации, п.1.

AUTOPOST – форма, которая автоматически сабмитится. См. Автоматическая передача информации, п.2.

Если выбран метод GET или POST, то страница с сообщением о неудавшейся оплате показывается пользователю на сайте platron.ru, и предлагается нажать кнопку, чтобы вернуться на сайт магазина.

Если выбран метод AUTOGET или AUTOPOST, то страница с сообщением о неудавшейся оплате не показывается пользователю, и пользователь сразу передается магазину.
pg_state_url Из настроек магазина State URL (string[256]) URL скрипта на сайте магазина, куда перенаправляется покупатель для ожидания ответа от платежной системы.
pg_state_url_method Из настроек магазина State URL Method GET – кнопка, которая сабмитится методом GET.

POST – кнопка, которая сабмитится методом POST.

AUTOGET – 302 редирект. См. Автоматическая передача информации, п.1.

AUTOPOST – форма, которая автоматически сабмитится. См. Автоматическая передача информации, п.2.

Если выбран метод GET или POST, то страница с сообщением о неудавшейся оплате показывается пользователю на сайте platron.ru, и предлагается нажать кнопку, чтобы вернуться на сайт магазина.

Если выбран метод AUTOGET или AUTOPOST, то страница с сообщением о неудавшейся оплате не показывается пользователю, и пользователь сразу передается магазину.
pg_site_url Из настроек магазина Site URL URL сайта магазина для показа покупателю ссылки, по которой он может вернуться на сайт магазина после создания счета. Применяется для offline ПС (наличные).
pg_payment_system Идентификатор выбранной ПС или группы ПС.
Примеры: webmoney, yandexmoney, EUROSET, cyberplatCASH, cash. Полный список возможных значений см. в разделе Справочник платежных систем и групп.

Этот параметр передается только если выбор платежной системы совершается на сайте продавца. Если параметр не указан, то выбор ПС совершается на сайте platron.ru[1]
pg_lifetime сутки Время (в секундах) в течение которого платеж должен быть завершен, в противном случае заказ при проведении платежа Platron откажет платежной системе в проведении.

Этот параметр контролируется Platron, а также, если платежная система поддерживает такую возможность, и платежной системой. См. Справочник платежных систем и групп.

Минимально допустимое значение: 300 секунд (5 минут). Максимально допустимое значение: 604800 секунд (7 суток).

В случае выхода за пограничные значения будет безакцептно присвоено минимальное или максимальное значение, соответственно
pg_encoding UTF-8 Кодировка, в которой указаны другие поля запроса (только в случае использования методов GET или POST)
pg_description (string[1024]) Описание товара или услуги. Отображается покупателю в процессе платежа. Передается в кодировке pg_encoding. Только Basic Multilingual Plane для utf-8
pg_user_phone (int[14]) телефон пользователя (для России начиная с цифр 79..), необходим для идентификации покупателя.

Если не указан, выбор будет предложен пользователю на сайте платежного гейта.
pg_need_phone_notification 1 Необходимость оповещения клиента (если услуга подключена) по смс о статусе транзакции.

0 – не уведомлять.
pg_user_contact_email (string[100]) Контактный адрес электронной почты пользователя.

Если указан, на этот адрес будут высылаться уведомления об изменении статуса транзакции.
pg_need_email_notification 1 Необходимость оповещения клиента (если услуга подключена) по email о статусе транзакции.

0 – не уведомлять.
pg_user_ip IP-адрес клиента.

Необходим для разбора спорных ситуаций в случае подозрения на мошенничество. Параметр можно не передавать при передаче информации через браузер пользователя, в этом случае будет записан тот IP, с которого пользователь перешёл на страницу инициализации платежа.
pg_postpone_payment Создание платежа с отложенной оплатой (https://www.platron.ru/support/postponed_payment), если в этом параметре передано «1». В таком случае покупатель будет перенаправлен на страницу с информацией о том, что ему было выслано письмо со ссылкой на страницу для продолжения проведения платежа.

Если этот параметр присутствует в запросе, то должен быть указан также pg_user_contact_email, иначе пользователь будет перенаправлен на уточнение платежных параметров, где он сможет, указать email и попробовать отложить платеж ещё раз.
pg_language ru Язык платежных страниц на сайте Platron и (если возможно) платежных систем.

Значение ru устанавливает русский язык, en – английский.
pg_testing_mode Из настроек магазина Флаг, принимает значение 0 или 1.

Подробное описание см. в разделе Тестирование.
pg_recurring_start 0 Флаг, принимает значение 0 или 1.

Подробное описание см. в разделе Рекурентные платежи.
pg_recurring_lifetime Время на продолжении которого продавец рассчитывает использовать профиль рекуррентных платежей.

Минимально допустимое значение 1 (1 месяц). Максимально допустимое значение: 156 (13 лет).

В случае выхода за пограничные значения будет безакцептно присвоено минимальное или максимальное значение, соответственно.

Подробное описание см. в разделе Рекурентные платежи.
Дополнительные параметры продавца Можно передавать произвольные дополнительные параметры, имена которых не начинаются на pg_.

Все эти параметры будут переданы на pg_check_url, pg_result_url, pg_success_url, pg_failure_url. Имена дополнительных параметров продавца должны быть уникальны.
pg_salt Случайная строка
pg_sig Подпись

1. Для банковских платежных систем ввод данных карты осуществляется на стороне магазина только при наличии сертификата PCI DSS и договоренности с менеджером.
2. Параметр учитывается во фрод мониторинге при оплате банковской картой. Для корректной работы фрод мониторинга нужны настоящие данные пользователя.

Пример GET запроса:

Точка входа при передаче информации через браузер пользователя

При передаче информации через браузер пользователя, пользователь должен передаваться методом POST или GET на URL https://www.platron.ru/payment.php или https://www.platron.ru/payment.php .

https://www.platron.ru/payment.php?pg_merchant_id=111&pg_amount=1000&pg_order_id=123&pg_check_url=https://www.shop.ru/check.php&pg_result_url=https://www.shop.ru/result.php&pg_success_url=https://www.shop.ru/thankyou.php&pg_failure_url=https://www.shop.ru/failed.php&pg_description=Ticket+SU1234+Moscow-Berlin+1+Jun+2008&custom_param1=gagaga&custom_param2=gugugu&pg_sig=af8e41a4f425d124a23c3a53a3140bdc17ea0

В случае ошибки сообщение об ошибке выводится на экран пользователя.

В случае если магазином переданы не все параметры, необходимые для создания платежной транзакции (платежная система, телефон пользователя и параметры, необходимые для выбранной платежной системы), они запрашиваются у пользователя на сайте www.platron.ru .

Точка входа при прямой передаче информации от магазина в Platron

При прямой передаче данных от магазина в Platron магазин должен посылать данные на URL https://www.platron.ru/init_payment.php .

Ответ Platron представляет собой XML вида:

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_salt>ijoi894j4ik39lo9</pg_salt>
	<pg_status>ok</pg_status>
	<pg_payment_id>15826</pg_payment_id>
	<pg_redirect_url>
	https://www.platron.ru/payment_params.php?customer=ccaa41a4f425d124a23c3a53a3140bdc15826
	</pg_redirect_url>
	<pg_redirect_url_type>need data</pg_redirect_url_type>
	<pg_sig>af8e41a4f425d124a23c3a53a3140bdc17ea0</pg_sig>
  </response>

Здесь:

pg_payment_id Уникальный идентификатор платежной транзакции в Platron. Служит ключом для всей дальнейшей работы с транзакцией.
pg_redirect_url URL для перенаправления пользователя. Может быть как на сайте www.platron.ru , так и на сайте платежной системы
pg_redirect_url_type Тип страницы, на которую происходит перенаправление.

Возможные значения:

need data – диалог с покупателем с целью уточнения параметров: платежной системы, номера телефона, обязательных для данной платежной системы параметров;

payment system – страница сайта платежной системы либо страница с инструкциями оплаты через данную платежную систему.

Страница с инструкциями может располагаться как на сайте platron.ru, так и на сайте магазина.
pg_salt Случайная строка
pg_sig Подпись

В случае получения магазином ответа с pg_redirect_url_type=”need data”, магазин может не перенаправлять покупателя по полученному URL, а уточнить недостающие параметры у себя на сайте. В этом случае после уточнения параметров и повторного запроса на создание платежной транзакции будет создана новая транзакция.

Если для выполнения платежа с использованием определённой платёжной системы покупателю необходимо знать какие-либо дополнительные данные, ответ содержит эти данные в поле pg_ps_additional_data, как показано в примере:

<?xml version="1.0" encoding="UTF-8"?>
  <response>
	<pg_salt>c1058bea</pg_salt>
	<pg_status>ok</pg_status>
	<pg_payment_id>17837</pg_payment_id>
	<pg_redirect_url>
	https://www.platron.ru/ps/rapida/start_payment.php?no=939f392abc4e847ca340b237c79cd8a817837
	</pg_redirect_url>
	<pg_redirect_url_type>payment system</pg_redirect_url_type>
	  <pg_ps_additional_data>
		<pg_payment_system>
		  <pg_name>RAPIDA</pg_name>
		  <pg_ps_data>
			<index>22</index>
		  </pg_ps_data>
		</pg_payment_system>
	  </pg_ps_additional_data>
	<pg_sig>13daa252681721b5f9ae176e57cc1d70</pg_sig>
  </response>

Поля, передаваемые при проведении платежа через конкретные платёжные системы, можно посмотреть в разделе «Справочник дополнительных параметров ПС».

В случае ошибки:

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_status>error</pg_status>
	<pg_error_code>101</pg_error_code>
	<pg_error_description>Empty merchant</pg_error_description>
  </response>

Здесь:

pg_error_code Код ошибки
pg_error_description Описание ошибки

В случае если запрос корректен, но магазином переданы не все параметры, необходимые для создания платежной транзакции (платежная система, телефон пользователя и параметры, необходимые для выбранной платежной системы), то pg_redirect_url представляет собой страницу на сайте www.platron.ru , на которой происходит уточнение недостающих параметров пользователем.

Проверка возможности платежа

Перед тем как принять деньги от покупателя по счету, платежный гейт может вызвать скрипт магазина Check URL с помощью метода Request Method.

В случае если при инициализации платежа магазином была выбрана кодировка отличная от utf-8, запрос будет производиться в установленной магазином кодировке. Гейт передает информацию о номере и свойствах заказа и ожидает ответа в течение 30 секунд. Отсутствие ответа за указанное время воспринимается как временный отказ от платежа, в этом случае вызов Check URL может быть повторен позже, если он будет снова инициирован платежной системой.

Вызов скрипта Check URL происходит только в случае, если такая возможность поддерживается платежной системой, через которую происходит платеж. Если Check URL определен пустым в момент инициализции платежа или не указан в момент инициализации платежа, а в настройках магазина установлен пустым, то шаг проверки возможности совершить платеж пропускается и считается, что магазин согласен принять платеж.

Параметры вызова Check URL:

pg_order_id Идентификатор платежа в системе продавца
pg_payment_id Внутренний идентификатор платежа в системе platron.ru
pg_amount Сумма выставленного счета (в валюте pg_currency), совпадает с pg_amount в момент инициации платежа
pg_currency Валюта выставленного счета, совпадает с pg_currency в момент инициации платежа
pg_net_amount Сумма (в валюте pg_currency), которая будет перечислена магазину, в случае успешного завершения платежа
pg_ps_amount Сумма счета (в валюте pg_ps_currency), выставленного в ПС.

Поле может отсутствовать в случае неудачного платежа.
pg_ps_full_amount Полная сумма (в валюте pg_ps_currency), которую заплатил покупатель с учетом всех комиссий.

Поле может отсутствовать в случае неудачного платежа.
pg_ps_currency Валюта, в которой был произведен платеж в платежной системе.

Поле может отсутствовать в случае неудачного платежа.
pg_overpayment Сумма переплаты в валюте платежной системы.

Параметр передается только в случае, когда клиент оплатил больше, чем от него ожидалось, и переплата разрешена в настройках магазина. Если оплачено ровно столько, сколько ожидалось, этот параметр не передается.
pg_payment_system Идентификатор платежной системы
pg_result 1 – успех, 0 – неудача
pg_payment_date Дата и время совершения платежа в формате YYYY-MM-DD HH:MM:SS
pg_can_reject 1 – платеж можно откатить назад (например, Банковские карты), 0 – платеж безотзывный.

По умолчанию, pg_can_reject=0.
pg_card_brand Бренд карты: CA – MasterCard и их продукты, VI – Visa, AX – AmericanExpress.

Этот параметр передается только в случае успешной оплаты банковской картой.
pg_card_pan Маскированный номер карты (часть цифр номера карты скрыты).

Этот параметр передается только в случае успешной оплаты банковской картой.
pg_card_hash Хешированный номер карты (номер карты, зашифрованный необратимым алгоритмом шифрования).

Этот параметр передается только в случае успешной оплаты банковской картой.
pg_auth_code Код авторизации.

Этот параметр передается только в случае успешной оплаты банковской картой.
pg_captured 0 или 1.

Передается только в случае успешной оплаты банковской картой и показывает, был ли произведен клиринг в момент авторизации (что зависит только от настроек магазина).

Если значение этого поля равно 0, магазин должен в последующем дать команду на клиринг (см. раздел Запрос на клиринг транзакций по банковским картам) или дождаться, когда Platron сделает это сам.
pg_user_phone Телефон покупателя (указанный при инициализации платежа)
pg_need_phone_notification Необходимость оповещения клиента (если услуга подключена) по смс о статусе транзакции. 0 – не уведомлять.
pg_user_contact_email Email покупателя, если был введен. Посылается только если есть email
pg_need_email_notification Необходимость оповещения клиента (если услуга подключена) по email о статусе транзакции. 0 – не уведомлять.

Посылается только если есть pg_user_contact_email
pg_failure_code Код причины отказа (список кодов и их описание см. в разделе «Справочник причин отказа, возвращаемых в статусах платежей»).

Поле присутствует только в случае неудачного платежа.
pg_failure_description Описание причины неудачи платежа.

Передается на языке транзакции.

Данное описание сформулировано в понятных пользователю терминах и может быть сообщено ему любым доступным способом.

Поле присутствует только в случае неудачного платежа
pg_recurring_profile_id Идентификатор профиля рекуррентных платежей
pg_recurring_profile_expiry_date Дата, до которой рекуррентный профиль доступен к использованию
Параметры продавца Все поля, переданные с веб-сайта продавца, не имеющие префикса "pg_"
pg_salt Случайная строка
pg_sig Подпись

Пример GET вызова магазина гейтом:

https://store.ru/check.php?pg_salt=8765&pg_order_id=654&pg_payment_id=765432&pg_payment_system=WEBMONEYR&pg_amount=100.00&pg_currency=RUB&pg_net_amount=95.00&pg_ps_amount=100.00&pg_ps_currency=RUB&pg_ps_full_amount=100.80&pg_sig=bfc5f9d237952f56bd05c602d287096e&uservar1=45363456

Пример xml вызова (POST с XML в параметре pg_xml) магазина гейтом:

<?xml version="1.0" encoding="utf-8"?>
  <request>
	<pg_salt>8765</pg_salt>
	<pg_order_id>654</pg_order_id>
	<pg_payment_id>765432</pg_payment_id>
	<pg_payment_system>WEBMONEYR</pg_payment_system>
	<pg_amount>100.00</pg_amount>
	<pg_currency>RUB</pg_currency>
	<pg_ps_currency>RUB</pg_ps_currency>
	<pg_ps_amount>100.00</pg_ps_amount>
	<pg_ps_full_amount>100.00</pg_ps_full_amount>
	<uservar1>45363456</uservar1>
	<pg_sig>bfc5f9d237952f56bd05c602d287096e</pg_sig>
  </request>

В случае если магазин подтверждает готовность заказа и правильность суммы, он должен ответить в виде XML со статусом ok.

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_salt>654j8rlvbyuj</pg_salt>
	<pg_status>ok</pg_status>
	<pg_timeout>300</pg_timeout>
	<pg_sig>6e952f52d23770986bd05c6fc5f902db</pg_sig>
  </response>

Статус rejected воспринимается как окончательный отказ, в этом случае поле pg_description выводится пользователю как причина отказа (если такая возможность поддерживается платежной системой), а счет аннулируется. Магазин должен быть готов к тому, что даже после ответа rejected, тем не менее, Check URL может быть вызван снова (например, в случае если Platron не дождался ответа магазина).

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_salt>654j8rlvbyuj</pg_salt>
	<pg_status>rejected</pg_status>
	<pg_description>Срок оплаты заказа истек</pg_description>
	<pg_sig>d2377096e952f5286bd05c602dbfc5f9</pg_sig>
  </response>

Статус error воспринимается как временный сбой на стороне магазина. Счет остается активным, а запрос о возможности проведения платежа может быть сделан снова, если повторно будет инициирован пользователем.

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_salt>654j8rlvbyuj</pg_salt>
	<pg_status>error</pg_status>
	<pg_error_code>1000</pg_error_code>
	<pg_error_description>database connection failed</pg_error_description>
	<pg_sig>8a417096e952f5286bd05c602dbfc562</pg_sig>
  </response>

Описание полей в ответе магазина на запрос Platron о возможности совершения платежа:

Параметр Описание
pg_status ok – платеж разрешен
rejected – отказ от платежа
error – ошибка в интерпретации данных
pg_description (string[1024]) –
В случае разрешения платежа – поле не обязательно.
В случае отказа от платежа, описание причины отказа для клиента.
В случае ошибки – описание ошибки, может дублировать поле pg_error_description.
pg_timeout (int[10]) время в секундах, в течение которого ожидается оплата, по умолчанию 600 секунд
pg_error_description Описание ошибки в случае pg_status=error
pg_salt Случайная строка
pg_sig Подпись

В случае недоступности сервера продавца в момент вызова Check URL или получения ответа, который невозможно интерпретировать, платеж также будет временно отменен.

Результат платежа

После приема денег от клиента или при невозможности совершить платеж Platron вызывает Result URL магазина и передает на него методом Request Method информацию о результате платежа. В случае если при инициализации платежа магазином была выбрана кодировка отличная от utf-8, запрос будет производиться в установленной магазином кодировке. При получении данного запроса магазин должен произвести необходимые действия для передачи товара или услуги покупателю, в случае если платеж был успешным. Если pg_can_reject=1 и магазин не может принять платеж (например, бронь на билеты истекла), он обязан ответить со статусом rejected , и Platron отзовет платеж (по INPLAT нет возможности отказа от платежа). В этом случае поле pg_description из ответа магазина показывается пользователю как причина отказа.

Если сервер продавца недоступен в момент вызова Result URL (нет ответа более 30 секунд) или его ответ не удалось интерпретировать, Platron будет предпринимать повторные попытки его вызвать в течение 2 часов, даже если время жизни счета pg_lifetime истечет. Если первая попытка вызова Result URL оказалась неуспешной, то платеж не отменяется, и если платежная система позволяет отказаться от платежа только сразу после платежа, то Platron принимает платеж у платежной системы и в последующих вызовах Result URL не позволяет магазину отказаться от платежа. Магазин должен быть готов к тому, что Result URL будет вызван повторно для одного и того же платежа. Ответы на повторные вызовы должны совпадать с первоначальным ответом, даже если время жизни транзакции (pg_lifetime) истекло.

Параметры, передаваемые при вызове Result URL:

pg_order_id Идентификатор платежа в системе продавца
pg_payment_id Внутренний идентификатор платежа в системе Platron
pg_amount Сумма выставленного счета (в валюте pg_currency), совпадает с pg_amount в момент инициации платежа
pg_currency Валюта выставленного счета, совпадает с pg_currency в момент инициации платежа
pg_net_amount Сумма (в валюте pg_currency), которая будет перечислена магазину, в случае успешного завершения платежа
pg_ps_amount Сумма счета (в валюте pg_ps_currency), выставленного в ПС. Поле может отсутствовать в случае неудачного платежа.
pg_ps_full_amount Полная сумма (в валюте pg_ps_currency), которую заплатил покупатель с учетом всех комиссий. Поле может отсутствовать в случае неудачного платежа.
pg_ps_currency Валюта, в которой был произведен платеж в платежной системе. Поле может отсутствовать в случае неудачного платежа.
pg_overpayment Сумма переплаты в валюте платежной системы. Параметр передается только в случае, когда клиент оплатил больше, чем от него ожидалось, и переплата разрешена в настройках магазина. Если оплачено ровно столько, сколько ожидалось, этот параметр не передается.
pg_payment_system Идентификатор платежной системы
pg_result 1 – успех, 0 – неудача
pg_payment_date Дата и время совершения платежа в формате YYYY-MM-DD HH:MM:SS
pg_can_reject 1 – платеж можно откатить назад (например, Банковские карты), 0 – платеж безотзывный. По умолчанию, pg_can_reject=0.
pg_card_brand Бренд карты: CA – MasterCard и их продукты, VI – Visa, AX – AmericanExpress. Этот параметр передается только в случае успешной оплаты банковской картой.
pg_card_pan Маскированный номер карты (часть цифр номера карты скрыты). Этот параметр передается только в случае успешной оплаты банковской картой.
pg_card_hash Хешированный номер карты (номер карты, зашифрованный необратимым алгоритмом шифрования). Этот параметр передается только в случае успешной оплаты банковской картой.
pg_auth_code Код авторизации. Этот параметр передается только в случае успешной оплаты банковской картой.
pg_captured 0 или 1. Передается только в случае успешной оплаты банковской картой и показывает, был ли произведен клиринг в момент авторизации (что зависит только от настроек магазина). Если значение этого поля равно 0, магазин должен в последующем дать команду на клиринг (см. раздел Запрос на клиринг транзакций по банковским картам) или дождаться, когда Platron сделает это сам.
pg_user_phone Телефон покупателя (указанный при инициализации платежа)
pg_need_phone_notification Необходимость оповещения клиента (если услуга подключена) по смс о статусе транзакции. 0 – не уведомлять.
pg_user_contact_email Email покупателя, если был введен. Посылается только если есть email
pg_need_email_notification Необходимость оповещения клиента (если услуга подключена) по email о статусе транзакции. 0 – не уведомлять. Посылается только если есть pg_user_contact_email
pg_failure_code Код причины отказа (список кодов и их описание см. в разделе «Справочник причин отказа, возвращаемых в статусах платежей»). Поле присутствует только в случае неудачного платежа.
pg_failure_description Описание причины неудачи платежа. Передается на языке транзакции. Данное описание сформулировано в понятных пользователю терминах и может быть сообщено ему любым доступным способом. Поле присутствует только в случае неудачного платежа
pg_recurring_profile_id Идентификатор профиля рекуррентных платежей
pg_recurring_profile_expiry_date Дата, до которой рекуррентный профиль доступен к использованию
Параметры продавца Все поля, переданные с веб-сайта продавца, не имеющие префикса "pg_"
pg_salt Случайная строка
pg_sig Подпись

Пример GET вызова магазина гейтом, при оплате по обычной платежной системой:

https://store.ru/result.php?pg_salt=0bd68e&pg_order_id=654&pg_payment_id=765432&pg_amount=100.0000&pg_currency=RUB&pg_net_amount=100.00&pg_ps_amount=105.00&pg_ps_full_amount=105.00&pg_ps_currency=RUB&pg_payment_system=INPLATMTS&pg_result=1&pg_payment_date=2008-12-30+23:59:30&pg_can_reject=0&pg_user_phone=79818244116&pg_need_phone_notification=1&pg_user_contact_email=test@test.ru&pg_need_email_notification=1&uservar1=45363456&pg_sig=da61f9d237952f56bd05c602d28780b3

Пример xml вызова (POST с XML в параметре pg_xml) магазина гейтом, при оплате по обычной платежной системой:

<?xml version="1.0" encoding="utf-8"?>
  <request>
	<pg_salt>0bd68e</pg_salt>
	<pg_order_id>654</pg_order_id>
	<pg_payment_id>765432</pg_payment_id>
	<pg_amount>100.0000</pg_amount>
	<pg_currency>RUB</pg_currency>
	<pg_net_amount>100.00</pg_net_amount>
	<pg_ps_amount>105.00</pg_ps_amount>
	<pg_ps_full_amount>105.00</pg_ps_full_amount>
	<pg_ps_currency>RUB</pg_ps_currency>
	<pg_payment_system>INPLATMTS</pg_payment_system>
	<pg_result>1</pg_result>
	<pg_payment_date>2008-12-30 23:59:30</pg_payment_date>
	<pg_can_reject>0</pg_can_reject>
	<pg_user_phone>79818244116</pg_user_phone>
	<pg_need_phone_notification>1</pg_need_phone_notification>
	<pg_user_contact_email>test@test.ru</pg_user_contact_email>
	<pg_need_email_notification>1</pg_need_email_notification>
	<uservar1>45363456</uservar1>
	<pg_sig>da61f9d237952f56bd05c602d28780b3</pg_sig>
  </request>

Пример GET вызова магазина гейтом, при оплате по карточной платежной системе:

https://store.ru/result.php?pg_salt=0bd68e&pg_order_id=654&pg_payment_id=765432&pg_amount=100.0000&pg_currency=RUB&pg_net_amount=100.00&pg_ps_amount=105.00&pg_ps_full_amount=105.00&pg_ps_currency=RUB&pg_payment_system=RUSSIANSTANDARD&pg_result=1&pg_payment_date=2008-12-30+23:59:30&pg_can_reject=1&pg_card_brand=CA&pg_card_pan=527594******4984&pg_card_hash=022380c107141f7e11f4271d7f6412a715222c32&pg_auth_code=014318&pg_captured=0&pg_user_phone=79818244116&pg_need_phone_notification=1&pg_user_contact_email=test@test.ru&pg_need_email_notification=1&uservar1=45363456&pg_sig=da61f9d237952f56bd05c602d28780b3

Пример xml вызова (POST с XML в параметре pg_xml) магазина гейтом, при оплате по карточной платежной системе:

<?xml version="1.0" encoding="utf-8"?>
  <request>
	<pg_salt>0bd68e</pg_salt>
	<pg_order_id>654</pg_order_id>
	<pg_payment_id>765432</pg_payment_id>
	<pg_amount>100.0000</pg_amount>
	<pg_currency>RUB</pg_currency>
	<pg_net_amount>100.00</pg_net_amount>
	<pg_ps_amount>105.00</pg_ps_amount>
	<pg_ps_full_amount>105.00</pg_ps_full_amount>
	<pg_ps_currency>RUB</pg_ps_currency>
	<pg_payment_system>RUSSIANSTANDARD</pg_payment_system>
	<pg_result>1</pg_result>
	<pg_payment_date>2008-12-30 23:59:30</pg_payment_date>
	<pg_can_reject>1</pg_can_reject>
	<pg_card_brand>CA</pg_card_brand>
	<pg_card_pan>527594******4984</pg_card_pan>
	<pg_card_hash>022380c107141f7e11f4271d7f6412a715222c32</pg_card_hash>
	<pg_auth_code>014318</pg_auth_code>
	<pg_captured>0</pg_captured>
	<pg_user_phone>79818244116</pg_user_phone>
	<pg_need_phone_notification>1</pg_need_phone_notification>
	<pg_user_contact_email>test@test.ru</pg_user_contact_email>
	<pg_need_email_notification>1</pg_need_email_notification>
	<uservar1>45363456</uservar1>
	<pg_sig>da61f9d237952f56bd05c602d28780b3</pg_sig>
  </request>

В случае если магазин принимает платеж, он должен ответить в виде XML со статусом ok:

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_salt>kdjdope983</pg_salt>
	<pg_status>ok</pg_status>
	<pg_description>Товар передан покупателю</pg_description>
	<pg_sig>9bfc5f602d287096ed237952f56bd05c</pg_sig>
  </response>

Если магазин отказывается от платежа, и в запросе был передан параметр pg_can_reject=1, магазин должен ответить в виде XML       со статусом rejected:

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_salt>kdjdope983</pg_salt>
	<pg_status>rejected</pg_status>
	<pg_description>Бронь истекла</pg_description>
	<pg_sig>a3fc5f602d287096ed237952f56bd5fa</pg_sig>
  </response>

Список параметров ответа магазина:

pg_status ok – платеж принят
rejected – отказ от платежа (если pg_can_reject=1 )
error – ошибка в интерпретации данных
pg_description (string[1024]) – В случае принятия платежа – поле не передается.
В случае отказа от приема платежа, описание причины отказа для клиента.
В случае ошибки – описание ошибки, может дублировать поле pg_error_description.
pg_error_description описание ошибки, в случае pg_status=error
pg_salt Случайная строка
pg_sig Подпись

Статус rejected может быть возвращен магазином только в случае, когда во входящем запросе от гейта был указан параметр pg_can_reject=1 , в противном случае, вне зависимости от ответа магазина, платеж будет считаться совершенным. Если магазин отказался от платежа (ответил rejected), покупатель перенаправляется на Failure URL, иначе – на Success URL.

Возврат покупателя на сайт продавца

После завершения платежа в online платежной системе покупатель перенаправляется на страницу продавца Success URL или Failure URL, в зависимости от результата платежа. Перенаправление происходит методом Success URL Method или Failure URL Method, указанным при инициации платежа.

На страницу передаются следующие параметры:

Параметр Описание
pg_order_id Идентификатор платежа в системе продавца
pg_payment_id Внутренний идентификатор платежа в системе platron.ru
pg_card_brand Бренд карты: CA – MasterCard и их продукты, VI – Visa, AX – AmericanExpress.

Этот параметр передается только в случае успешной оплаты банковской картой.
pg_card_pan Маскированный номер карты (часть цифр номера карты скрыты).

Этот параметр передается только в случае успешной оплаты банковской картой.
pg_card_hash Хешированный номер карты (номер карты, зашифрованный необратимым алгоритмом шифрования).

Этот параметр передается только в случае успешной оплаты банковской картой.
pg_auth_code Код авторизации.

Этот параметр передается только в случае успешной оплаты банковской картой.
pg_captured 0 или 1.

Передается только в случае успешной оплаты банковской картой и показывает, был ли произведен клиринг в момент авторизации (что зависит только от настроек магазина).

Если значение этого поля равно 0, магазин должен в последующем дать команду на клиринг (см. раздел Запрос на клиринг транзакций по банковским картам) или дождаться когда Platron сделает это сам.
pg_overpayment Сумма переплаты в валюте платежной системы.

Параметр передается только в случае когда клиент оплатил больше, чем от него ожидалось, и переплата разрешена в настройках магазина.

Если оплачено ровно столько, сколько ожидалось, этот параметр не передается.
pg_failure_code Также как аналогичное поле в вызове Result URL (см. выше).

Передается только на Failure URL.
pg_failure_description Также как аналогичное поле в вызове Result URL (см. выше).

Передается только на Failure URL.
pg_recurring_profile_id Идентификатор профиля рекуррентных платежей
pg_recurring_profile_expiry_date Дата, до которой рекуррентный профиль доступен к использованию
Параметры продавца Все поля, переданные с веб-сайта продавца, не имеющие префикса "pg_"
pg_salt Случайная строка
pg_sig подпись

В случае оплаты через offline платежную систему возврат покупателя на сайт магазина не происходит.

Пример GET или AUTOGET перехода в случае успеха:

https://store.ru/success.php?pg_salt=54c6a8786f19e&pg_order_id=654&pg_payment_id=765432&uservar1=45363456&pg_card_brand=CA&pg_card_pan=527594******4984&pg_card_hash=022380c107141f7e11f4271d7f6412a715222c32&pg_auth_code=014318&pg_auth_code=014318&pg_sig=20bcedd8320ac8868b97706abedec0b4

Если Success URL или Failure URL уже содержат параметры в query string, то дополнительные параметры pg_order_id, pg_payment_id и пользовательские переменные продавца дописываются в конец query string. Магазин должен следить за тем, чтобы имена дополнительных параметров не совпадали с именами уже имеющимися параметров.

Необходимо четко понимать разницу между Result URL и Success URL. Result URL вызывается напрямую с сервера Platron, в то время как Success URL вызывается браузером пользователя, когда пользователь перенаправляется ом обратно на сайт магазина.

Неправильно использовать Success URL как единственный способ узнать о завершении оплаты, потому что пользователь может по разным причинам (например, прерывание связи) не дойти до Success URL после оплаты. Самый надежный способ узнавать о завершении платежа – это реализовать Result URL, который обязуется вызывать повторно в течение 2 часов после оплаты, если первая попытка по любым причинам не удалась.

Оповещение о возврате платежа

В случае полного или частичного возврата платежа на стороне Platron или платежной системы платежный гейт вызывает скрипт магазина Refund URL с помощью метода Request Method. Запрос будет производиться в кодировке, установленной магазином при инициализации платежа, по умолчанию, utf-8. Гейт передает информацию о номере и свойствах заказа и ожидает ответа в течение 30 секунд. Если сервер продавца недоступен в момент вызова Refund URL (нет ответа более 30 секунд) или его ответ не удалось интерпретировать, Platron будет предпринимать повторные попытки его вызвать в течение 2 часов.

Параметры вызова Refund URL:

Параметр Описание
pg_order_id Идентификатор платежа в системе продавца
pg_payment_id Внутренний идентификатор платежа в системе Platron
pg_amount Сумма выставленного счета (в валюте pg_currency), совпадает с pg_amount в момент инициации платежа
pg_currency Валюта выставленного счета, совпадает с pg_currency в момент инициации платежа
pg_net_amount Сумма (в валюте pg_ps_currency), которая будет списана с магазина
pg_ps_full_amount Полная сумма (в валюте pg_ps_currency), которая будет возвращена покупателю
pg_ps_currency Валюта, в которой будет произведен возврат платежа в платежной системе
pg_payment_system Идентификатор платежной системы
pg_refund_date Дата и время совершения отмены платежа в формате YYYY-MM-DD HH:MM:SS
pg_refund_type Тип возврата:

reversal – полный возврат до клиринга (для банковских карт)

refund – полный или частичный возврат

moneyback – полный или частичный возврат средствами, отличными от средства платежа

Различать reversal и refund имеет смысл только для банковских карт. Reversal может произойти только до клиринга, refund только после клиринга.
pg_refund_system Система выплат, через которую произведен возврат. Имеет смысл только в случае pg_refund_type=moneyback.

Возможные значения:

CONTACT_O – выплата через систему денежных переводов Контакт

MOBILEPHONE_O – зачисление денег на мобильный телефон.
pg_refund_id Уникальный идентификатор возврата для фильтрации повторных оповещений об одном и том же возврате.
Для каждого типа возврата ведется свой ряд уникальных идентификаторов возврата.
Параметры продавца Все поля, переданные с веб-сайта продавца, не имеющие префикса "pg_"
pg_salt Случайная строка
pg_sig подпись

Если был произведён возврат только части средств (например, частичный возврат по банковской карте), параметр pg_net_amount и pg_ps_full_amount содержат соответственно сумму, списанную с магазина и сумму, переданную на карту; pg_amount всегда содержит полную сумму счёта. Магазин должен быть готов к тому, что на один заказ может быть сделано несколько частичных возвратов.

Пример GET вызова магазина гейтом:

https://store.ru/refund.php?pg_salt=gw41b38vc&pg_order_id=2614&pg_payment_id=825941&pg_payment_system=CREDITCARD&pg_amount=100.00&pg_currency=RUB&pg_net_amount=100.00&pg_ps_currency=RUB&pg_ps_full_amount=100.80&pg_refund_date=2009-09-30 15:32:30&pg_sig=afaef9d237932f56bd05c602d287df3a&uservar1=45363456

Пример xml вызова (POST с XML в параметре pg_xml) магазина гейтом:

<?xml version="1.0" encoding="utf-8"?>
  <request>
	<pg_salt>gw41b38vc</pg_salt>
	<pg_order_id>2614</pg_order_id>
	<pg_payment_id>825941</pg_payment_id>
	<pg_payment_system>CREDITCARD</pg_payment_system>
	<pg_amount>100.00</pg_amount>
	<pg_net_amount>100.00</pg_net_amount>
	<pg_currency>RUB</pg_currency>
	<pg_ps_currency>RUB</pg_ps_currency>
	<pg_ps_full_amount>100.00</pg_ps_full_amount>
	<pg_refund_date>2009-09-30 15:32:30</pg_refund_date>
	<uservar1>45363456</uservar1>
	<pg_sig>afaef9d237932f56bd05c602d287df3a</pg_sig>
  </request>

Получив сообщение об отмене платежа, магазин должен ответить с указанием статуса ok.

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_salt>eyhfh42za22h</pg_salt>
	<pg_status>ok</pg_status>
	<pg_sig>ea362f52d23770986bd05c6fc5f9427d</pg_sig>
</response>

Список параметров ответа магазина:

Параметр Описание
pg_status ok – информация принята
error – ошибка в интерпретации данных
pg_error_description описание ошибки, в случае pg_status=error
pg_salt Случайная строка
pg_sig подпись
Оповещение о проведении клиринга

Если магазин настроен на проведение транзакций по банковским картам в две стадии – авторизация и клиринг, - Platron оповещает магазин об исполнении клиринга сразу после отправки соответствующей команды в банк.

Обычно клиринг выполняется по инициативе магазина, когда магазин дает Platron команду на клиринг (см. раздел Запрос на клиринг транзакций по банковским картам), однако если магазин не дал эту команду в течение срока, указанного в настройках магазина (не более 5 дней), после авторизации, Platron самостоятельно отправляет команду на клиринг в банк.

Для оповещения магазина о клиринге Platron вызывает скрипт магазина Capture URL с помощью метода Request Method. Platron передает информацию о номере заказа и ожидает ответа в течение 30 секунд. Если сервер продавца недоступен в момент вызова Capture URL (нет ответа более 30 секунд) или его ответ не удалось интерпретировать, Platron будет предпринимать повторные попытки его вызвать в течение 2 часов.

Параметры вызова Capture URL:

Параметр Описание
pg_order_id Идентификатор платежа в системе продавца
Внутренний идентификатор платежа в системе Platron
Параметры продавца Все поля, переданные с веб-сайта продавца, не имеющие префикса "pg_"
pg_salt Случайная строка
pg_sig подпись

Пример GET вызова магазина гейтом:

https://store.ru/onCapture.php?pg_salt=gw41b38vc&pg_order_id=2614&pg_payment_id=825941&pg_sig=afaef9d237932f57bd05c602d287df34&uservar1=45363456

Пример xml вызова (POST с XML в параметре pg_xml) магазина гейтом:

<?xml version="1.0" encoding="utf-8"?>
  <request>
	<pg_salt>gw41b38vc</pg_salt>
	<pg_order_id>2614</pg_order_id>
	<pg_payment_id>825941</pg_payment_id>
	<uservar1>45363456</uservar1>
	<pg_sig>afaef9d237932f57bd05c602d287df34</pg_sig>
  </request>

Получив сообщение об отмене платежа, магазин должен ответить с указанием статуса ok.

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_salt>eyhfh42za22h</pg_salt>
	<pg_status>ok</pg_status>
	<pg_sig>ea362f52d23770986bd05c6fc5f9427d</pg_sig>
</response>

Список параметров ответа магазина:

Параметр Описание
pg_status ok – информация принята
error – ошибка в интерпретации данных
pg_error_description Описание ошибки, в случае pg_status=error
pg_salt Случайная строка
pg_sig Подпись
Тестирование

Все новые магазины первоначально находятся в тестовом режиме, затем после завершения тестирования и отправки магазином в Platron подписанного Акта о подключении (его можно распечатать по ссылке https://www.platron.ru/admin/documents.php администрация Platron переводит магазин в рабочий режим.

Для отладки интеграции с Platron в тестовом режиме необходимо выбирать pg_payment_system=TEST или pg_payment_system=TESTCARD, в этом случае будет использоваться фиктивная тестовая ПС, ведущая расчеты в фиктивной валюте «тестики», а реальные средства переводиться не будут. В тестовом режиме можно использовать только тестовые платежные системы, а в рабочем режиме, наоборот, оплата тестовыми платежными системами невозможна.

После перехода магазина в рабочий режим можно создавать отдельные транзакции в тестовом режиме, передавая параметр pg_testing_mode в запросах на создание платежа, повторение рекуррентного платежа и на получение списка платежных систем. Значение pg_testing_mode=1 включает тестовый режим для одной конкретной транзакции. Если сам магазин находится в тестовом режиме, то значение переданного флага pg_testing_mode не имеет значения. Включение и выключение тестового режима в настройках магазина осуществляется только администрацией Platron.

После создания транзакции никаких автоматических действий с ней не происходит. Для того, чтобы протестировать дальнейшее прохождение транзакции нужно зайти в административную панель, и войти в транзакцию. Далее управлять ее действиями с помощью тестовых кнопок.

В тестовой платежной системе возможно тестирование клиринга, PCI DSS, длинной записи и рекуррентных платежей.

При оплате через тестовую карточную платежную систему требуется ввести номер карты. Можете использовать настоящую карту (списания не происходит), подобрать номер карты (по правилу луна), а так же использовать тестовые карты. Тестовые карты не валидирует модуль фрод мониторинга. Список тестовых карт:

5285 0000 0000 0005

4276 0000 0000 0009

5241 0000 0000 0016

5326 0000 0000 0006

4257 0000 0000 0002

Рекуррентные платежи

Инициализация рекуррентного профиля

Для использования профиля рекуррентных платежей магазину следует инициализировать платеж обычным способом c передачей дополнительного параметра pg_recurring_start, обозначающий требование создания рекуррентного профиля и указанием платежной системы, поддерживающей рекуррентные платежи в параметре pg_payment_system (см. Технические подробности). Номер профиля для повторения платежа будет передан при оповещении о результате платежа в поле pg_recurring_profile.

Рекуррентный профиль будет доступен только после проведения клиринга по первичной транзакции. Рекуррентные платежи доступны только при схеме авторизация – списание.

Продавец может задать требуемый срок, в течение которого будет возможным использовать рекуррентный профиль (параметр является необязательным, и в случае, когда предприятие не передало, будет использован срок годности карты). Если предприятие задало pg_recurring_lifetime, больше чем срок годности карты, датой истечения годности рекуррентного профиля будет дата, до которой возможно использовать карту.

По некоторым платежным системам возможно создать рекуррентный профиль без первоначального платежа, возможно задать сумму pg_amount = 0, в этом случае будет создан профиль для проведения повторных платежей.

Для работы с рекуррентными платежами необходимо уточнить данную возможность у менеджера.

Повторение рекуррентного платежа

Магазин может повторять платежи по рекуррентному профилю в любой момент по своему усмотрению, для этого необходимо выполнить запрос на https://www.platron.ru/make_recurring_payment.php, параметры передаются одним из методов прямого запроса (см. Способы прямого взаимодействия между магазином и Platron). Максимальное время ожидания ответа – 30 секунд.

Список параметров запроса:

Поле (обязательные поля выделены жирным)Значение по умолчанию
pg_merchant_idИдентификатор продавца в Platron. Выдается при подключении.
pg_order_idИдентификатор платежа в системе продавца.

Рекомендуется поддерживать уникальность этого поля.
pg_recurring_profileИдентификатор рекуррентного профиля.

Был получен продавцом при создании профиля рекуррентных платежей
pg_amountЗначение первоначального платежаСумма платежа в валюте pg_currency.

В случае если не была передана сумма, в качестве суммы для повторения платежа, будет использовано значение первоначального платежа.
pg_result_urlИз настроек магазина Result URL(string[256]) URL для сообщения о результате платежа.

Вызывается после платежа в случае успеха или неудачи.

Если параметр не указан, то берется из настроек магазина.

Если параметр установлен равным пустой строке, то Platron не сообщает магазину о результате платежа.
pg_refund_urlИз настроек магазина Refund URL(string[256]) URL для сообщения об отмене платежа.

Вызывается после платежа в случае отмены платежа на стороне Platron или ПС.

Если параметр не указан, то берется из настроек магазина.
pg_request_methodИз настроек магазина Request Method(string[4]) GET, POST или XML – метод вызова скриптов магазина Check URL, Result URL, Refund URL, Capture URL для передачи информации от платежного гейта.
pg_encodingUTF-8Кодировка, в которой указаны другие поля запроса (только в случае использования методов GET или POST)
pg_description(string[1024]) Описание товара или услуги.

Отображается покупателю в процессе платежа.
Передается в кодировке pg_encoding. Только Basic Multilingual Plane для utf-8
Дополнительные параметры продавцаМожно передавать произвольные дополнительные параметры, имена которых не начинаются на pg_.

Все эти параметры будут переданы на pg_check_url, pg_result_url, pg_success_url, pg_failure_url.

Имена дополнительных параметров продавца должны быть уникальны.
pg_saltСлучайная строка
pg_sigПодпись

О результате платежа, Platron оповестит продавца на Result URL

Пример GET запроса на создание транзакции по рекуррентному профилю:

https://platron.ru/make_recurring_payment.php?pg_merchant_id=82&pg_recurring_profile=109642&pg_description=example&pg_salt=my_salt&pg_sig=3fe59db16e24d78bfecfd8d72324b83c

Ответ Platron представляет собой XML вида:

<?xml version="1.0" encoding="UTF-8"?>
  <response>
	<pg_salt>my_salt</pg_salt>
	<pg_status>ok</pg_status>
	<pg_payment_id>22241128</pg_payment_id>
	<pg_amount>1</pg_amount>
	<pg_currency>RUB</pg_currency>
	<pg_recurring_profile_id>109642</pg_recurring_profile_id>
	<pg_recurring_profile_expiry_date>
	2029-01-29 00:00:00
	</pg_recurring_profile_expiry_date>
	<pg_sig>5b2ff43cfa1b7588e5844484f0843b11</pg_sig>
  </response>
Описание
Вспомогательные запросы В случае ошибки , Platron вернет ее код и описание.

Получение списка платежных систем и цен

Если магазин хочет, чтобы покупатель совершал выбор платежной системы на сайте магазина, он может либо самостоятельно вывести список доступных платежных систем и рассчитать окончательную цену для каждой ПС с учетом комиссий на основе имеющихся в договоре данных, либо получать актуальную информацию о списке доступных платежных систем и комиссиях в автоматическом режиме. В последнем случае магазину необходимо использовать прямой запрос к Platron, описанный ниже.

Магазин подает запрос на https://www.platron.ru/ps_list.php или 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).

Получение статуса платежа

Магазин может запрашивать Platron о статусе любого платежа, инициированного магазином. Это может быть полезно, например, в случае если вызов Result URL не был получен магазином из-за временного сбоя связи, а покупатель уже был передан на Success URL, однако статус транзакции магазину еще не известен. Магазин делает запрос на https://www.platron.ru/get_status.php или https://www.platron.ru/get_status.php , параметры передаются одним из методов прямого запроса (см. Способы прямого взаимодействия между магазином и Platron). Максимальное время ожидания ответа – 30 секунд.

Список параметров запроса (все параметры обязательные):

pg_merchant_id Идентификатор магазина
pg_payment_id
или
pg_order_id
Идентификатор платежа в системе магазина или гейта.
Будьте внимательны, что при запросе по order_id магазин должен самостоятельно следить за уникальностью данного параметра иначе будет выдана информация для последнего платежа с данным order_id для данного магазина
pg_salt Случайная строка
pg_sig Подпись

Пример GET запроса:

https://www.platron.ru/get_status.php?pg_salt=9865&pg_merchant_id=82&pg_payment_id=765432&pg_sig=a1b7ccc945c0a60949f6bd6383f5f768

Пример XML запроса (передается POST’ом в параметре pg_xml):

<?xml version="1.0" encoding="utf-8"?>
  <request>
	<pg_salt>9865</pg_salt>
	<pg_merchant_id>82</pg_merchant_id>
	<pg_payment_id>765432</pg_payment_id>
	<pg_sig>a1b7ccc945c0a60949f6bd6383f5f768</pg_sig>
  </request>

Ответ на запрос представляет собой XML вида:

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_salt>9865</pg_salt>
	<pg_status>ok</pg_status>
	<pg_payment_id>1234567</pg_payment_id>
	<pg_transaction_status>ok</pg_transaction_status>
	<pg_can_reject>1</pg_can_reject>
	<pg_create_date>2009-01-12 10:22:30</pg_create_date>
	<pg_result_date>2009-01-12 10:25:07</pg_result_date>
	<pg_payment_system>RUSSIANSTANDARD</pg_payment_system>
	<pg_card_brand>CA</pg_card_brand>
	<pg_card_pan>527594******4984</pg_card_pan>
	<pg_card_hash>022380c107141f7e11f4271d7f6412a715222c32</pg_card_hash>
	<pg_auth_code>014318</pg_auth_code>
	<pg_captured>0</pg_captured>
	<pg_sig>8380d43c7719e6ce48da0c79aa7eb2ba</pg_sig>
  </response>

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_salt>9865</pg_salt>
	<pg_status>ok</pg_status>
	<pg_payment_id>1234567</pg_payment_id>
	<pg_transaction_status>pending</pg_transaction_status>
	<pg_can_reject>1</pg_can_reject>
	<pg_create_date>2009-01-12 10:22:30</pg_create_date>
	<pg_accepted_payment_systems>EUROSET,EUROPLAT,QIWI</pg_accepted_payment_systems>
	<pg_sig>8380d43c7719e6ce48da0c79aa7eb2ba</pg_sig>
  </response>

Здесь:

pg_status Результат обработки запроса (не путать со статусом платежа)
ok, если платеж найден и действительно принадлежит данному магазину
error в любом другом случае.
pg_payment_id Внутренний идентификатор платежа в системе Platron
pg_transaction_status Статус платежа. См. Справочник статусов платежа
pg_can_reject 0 или 1 – может ли платеж быть отменен.
Значение 1 возможно только если статус платежа равен ok и платежная система предоставляет возможность отзыва платежа. В этом случае магазин может вызвать revoke.php как описано в следующем разделе.
pg_create_date Дата и время создания платежной транзакции
pg_result_date Дата и время успешного (ok) или неуспешного (failed) завершения платежа. Это дата вызова Result URL. Поле заполняется только когда статус транзакции равен ok, failed или revoked.
pg_revoke_date Дата и время отмены платежа. Поле заполняется только когда статус транзакции равен revoked.
pg_payment_system Идентификатор платежной системы, через которую прошел (должен пройти) платеж.
pg_accepted_payment_systems Список платежных систем, в которые удалось выставить платеж. Присутствует в случае статуса платежа pendind
pg_card_brand Бренд карты: CA – MasterCard и их продукты, VI – Visa, AX – AmericanExpress. Этот параметр передается только в случае успешной оплаты банковской картой.
pg_card_pan Маскированный номер карты (часть цифр номера карты скрыты). Этот параметр передается только в случае успешной оплаты банковской картой.
pg_card_hash Хешированный номер карты (номер карты, зашифрованный необратимым алгоритмом шифрования). Этот параметр передается только в случае успешной оплаты банковской картой.
pg_auth_code Код авторизации. Этот параметр передается только в случае успешной оплаты банковской картой.
pg_captured 0 или 1.
Передается только в случае успешной оплаты банковской картой и показывает, был ли произведен клиринг в момент авторизации (что зависит только от настроек магазина).
Если значение этого поля равно 0, магазин должен в последующем дать команду на клиринг (см. раздел Запрос на клиринг транзакций по банковским картам) или дождаться когда Platron сделает это сам.
pg_overpayment Сумма переплаты в валюте платежной системы. Параметр передается только в случае когда клиент оплатил больше, чем от него ожидалось, и переплата разрешена в настройках магазина. Если оплачено ровно столько, сколько ожидалось, или статус транзакции отличен от ok, этот параметр не передается.
pg_failure_code Также как аналогичное поле в вызове Result URL (см. выше).
Присутствует только в случае pg_transaction_status = failed или revoked.
pg_failure_description Также как аналогичное поле в вызове Result URL (см. выше).
Присутствует только в случае pg_transaction_status = failed или revoked.
pg_error_description Описание ошибки выполнения запроса в случае pg_status=error (не путать с неудачной оплатой)
pg_salt Случайная строка
pg_sig Подпись

Все даты записываются в формате YYYY-MM-DD hh:mm:ss.

Запрос на клиринг транзакций по банковским картам

Магазин может самостоятельно запрашивать клиринг у банка через Platron, если в банке настроено проведение платежей в два шага – авторизация и клиринг.

В случае соответствующей настройки системы, после проведения транзакции, транзакция будет авторизована, но не рассчитана. Время максимальной задержки списания равно 5 дней и может регулироваться на стороне Platron от 1 до 5 дней.

Магазин делает запрос на https://www.platron.ru/do_capture.php или https://www.platron.ru/do_capture.php , параметры передаются одним из методов прямого запроса (см. Способы прямого взаимодействия между магазином и Platron). Максимальное время ожидания ответа – 30 секунд.

Список параметров запроса:

pg_merchant_id Идентификатор магазина
pg_payment_id Идентификатор платежа
pg_long_record Длинная запись, см. дополнительной документации.
Ее можно получить у сотрудников технического отдела.
pg_salt Случайная строка
pg_sig Подпись

Пример GET запроса:

https://www.platron.ru/do_capture.php?pg_salt=123&pg_merchant_id=456&pg_payment_id=1234567&pamp;g_sig=7f3af9d237952f56bd05c602d2879a3c

Пример 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_payment_id>1234567</pg_payment_id>
	<pg_sig>7f3af9d237952f56bd05c602d2879a3c</pg_sig>
  </request>

Ответ на запрос представляет собой XML вида:

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_salt>9865</pg_salt>
	<pg_status>ok</pg_status>
	<pg_sig>5e1af9d237952f56bd05c602d28704ac</pg_sig>
  </response>

Здесь:

pg_status Результат обработки запроса.
ok, если запрос принят на обработку. По результату будет вызван Capture URL магазина.
error в любом другом случае.
pg_error_description Описание ошибки в случае pg_status=error
pg_salt Случайная строка
pg_sig Подпись

Отмена платежа (полная или частичная)

Магазин может отменить успешно завершившийся платеж, если платежная система это позволяет (например, Банковские карты). В этом случае деньги возвращаются покупателю. Вернуть можно как полную сумму платежа, так и часть суммы. Можно делать несколько частичных возвратов до тех пор, пока общая сумма возвратов не достигнет суммы первоначального платежа.

Отозвать платеж можно как из личного кабинета магазина, так и в автоматическом режиме путем вызова скрипта https://www.platron.ru/revoke.php или https://www.platron.ru/revoke.php . Параметры передаются одним из методов прямого запроса (см. Способы прямого взаимодействия между магазином и Platronом). Максимальное время ожидания ответа – 30 секунд.

Список параметров запроса (все параметры обязательные):

pg_merchant_id Идентификатор магазина
pg_payment_id Идентификатор платежа
pg_refund_amount Сумма возврата.
Если параметр не передан или передан 0, то возвращается вся сумма.
pg_salt Случайная строка
pg_sig Подпись

Пример GET запроса:

https://www.platron.ru/revoke.php?pg_salt=123&pg_merchant_id=456&pg_payment_id=1234567&pg_refund_amount=800&pg_sig=6dd2a9d237952f56bd05c602d2872af8

Пример 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_payment_id>1234567</pg_payment_id>
	<pg_refund_amount>800</pg_refund_amount>
	<pg_sig>6dd2a9d237952f56bd05c602d2872af8</pg_sig>
  </request>

Ответ на запрос представляет собой XML следующего вида в случае успешного выполнения запроса на отмену платежа:

<?xml version="1.0" encoding="utf-8"?>
 <response>
	<pg_salt>9865</pg_salt>
	<pg_status>ok</pg_status>
	<pg_sig>48caf9d237952f56bd05c602d28762da</pg_sig>
  </response>

В случае ошибки:

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_salt>9865</pg_salt>
	<pg_status>error</pg_status>
	<pg_error_code>490</pg_error_code>
	<pg_error_description>this transaction can’t be revoked</pg_error_description>
	<pg_sig>4df0f9d237952f56bd05c602d2873ed0</pg_sig>
  </response>

Здесь:

pg_status Результат обработки запроса.
pg_error_code Код ошибки
pg_error_description Описание причины ошибки
pg_salt Случайная строка
pg_sig Подпись

Создание заявки на возврат денег

В случае если платежная система не позволяет вернуть деньги в автоматическом режиме, магазин может создать заявку на полную или частичную отмену успешно завершившегося платежа, если платежная система поддерживает возврат платежа через заявку на возврат.

Вернуть можно как полную сумму платежа, так и часть суммы. Можно делать несколько частичных возвратов до тех пор, пока общая сумма возвратов не достигнет суммы первоначального платежа.

Отозвать платеж можно как из личного кабинета магазина, так и в автоматическом режиме путем вызова скрипта https://www.platron.ru/create_refund_request.php или https://www.platron.ru/ create_refund_request.php . Параметры передаются одним из методов прямого запроса (см. Способы прямого взаимодействия между магазином и Platronом). Максимальное время ожидания ответа – 30 секунд.

В зависимости от того откуда пришли деньги и через какую систему они будут возвращаться используются разные параметры в запросе:

pg_merchant_id Идентификатор магазина
pg_payment_id Идентификатор платежа
pg_comment Причина возврата денег
pg_refund_amount Сумма возврата в валюте платежной системы.
Если параметр не передан или передан 0, то возвращается вся сумма.
pg_salt Случайная строка
pg_sig Подпись

Пример GET запроса:

https://www.platron.ru/create_refund_request.php?pg_salt=sdasdasd&pg_merchant_id=243&pg_payment_id=1172121&pg_comment=Сюда+вписываем+причину+возврата&pg_refund_amount=100&pg_sig=149b5b52ab0b5ebfa9693910769bc222

Пример XML запроса (передается POST’ом в параметре pg_xml):

<?xml version="1.0" encoding="utf-8"?>
  <request>
	<pg_salt>sdasdasd</pg_salt>
	<pg_merchant_id>243</pg_merchant_id>
	<pg_payment_id>1172121</pg_payment_id>
	<pg_comment>Сюда вписываем причину возврата</pg_comment>
	<pg_refund_amount>100</pg_refund_amount>
	<pg_sig>149b5b52ab0b5ebfa9693910769bc222</pg_sig>
  </request>

Отмена счёта до оплаты

Магазин может отменить выставленный, но ещё не оплаченный счёт. После совершения этой операции Platron будет отказывать в проведении платежа на этапе проверки возможности проведения платежа (если ПС поддерживает этот запрос). Кроме того, производится аннулирование счёта в тех ПС, которые поддерживают эту операцию. Таким образом, отмена счёта не гарантирует невозможность его оплаты во всех ПС.

Для отмены выставленного счёта вызывается скрипт https://www.platron.ru/cancel.php или https://www.platron.ru/cancel.php . Параметры передаются одним из методов прямого запроса (см. Способы прямого взаимодействия между магазином и Platronом). Максимальное время ожидания ответа – 30 секунд.

Список параметров запроса (все параметры обязательные):

pg_merchant_id Идентификатор магазина
pg_payment_id Идентификатор счёта
pg_salt Случайная строка
pg_sig Подпись

Пример GET запроса:

https://www.platron.ru/cancel.php?pg_salt=123&pg_merchant_id=456&pg_payment_id=1234567&pg_sig=628e300c3204c8ee398d878a5109b520

Пример 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_payment_id>1234567</pg_payment_id>
	<pg_sig>628e300c3204c8ee398d878a5109b520</pg_sig>
  </request>

Ответ на запрос представляет собой XML следующего вида в случае успешного выполнения запроса на отмену платежа:

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_salt>9865</pg_salt>
	<pg_status>ok</pg_status>
	<pg_sig>48caf9d237952f56bd05c602d28762da</pg_sig>
  </response>

В случае ошибки:

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_salt>9865</pg_salt>
	<pg_status>error</pg_status>
	<pg_error_code>200</pg_error_code>
	<pg_error_description>
	transaction not found
	</pg_error_description>
	<pg_sig>ac08f9d237952f5bc4e5c602d2873481</pg_sig>
  </response>

Здесь:

pg_status Результат обработки запроса.
pg_error_code Код ошибки
pg_error_description Описание причины ошибки
pg_salt Случайная строка
pg_sig Подпись

Ответ «ok» означает, что заявка на отмену счёта принята. Счёт всё же может быть оплачен, если ПС, в которую был выставлен счёт, не поддерживает операции аннулирования счёта и не делает предварительных запросов на подтверждение возможности проведения платежа.

Если ПС не поддерживает отмену счёта, но поддерживает возврат денежных средств (например, TRANSCRED), Platron делает попытку отмены полученного платежа. В этом случае может взиматься дополнительная плата за операцию отмены платежа.

Выплата без предшествующего платежа

Магазин может осуществить выплату денег в адрес своего клиента без привязки к предшествующей оплате через Platron. Это может быть полезно, например, если платеж был принят не через Platron, или когда необходимо одной операцией возвратить деньги сразу по нескольким платежам одного клиента.

Для создания выплаты необходимо отправить запрос на скрипт по адресу https://www.platron.ru/create_moneyback.php или https://www.platron.ru/create_moneyback.php

При запросе могут быть переданы следующие параметры:

Название (обязательные поля выделены жирным) Описание
pg_merchant_id Идентификатор магазина
pg_contract_id Номер контракта, по которому будет произведена выплата
pg_moneyback_system Название платежной системы, через которую будет производиться выплата
pg_amount Сумма выплаты в валюте RUB
pg_description Описание
pg_salt Случайная строка
pg_sig Подпись
pg_payment_id Номер транзакции в системе Platron
additional_value Дополнительные параметры для каждой ПС свои

Для каждой ПС может существовать свой набор обязательных дополнительных параметров, которые необходимо передавать при запросе на создание выплаты, эти параметры будут возвращены при запросе на список доступных ПС.

Пример запроса с дополнительными параметрами (выделены жирным):

https://www.platron.ru/сreate_moneyback.php?pg_merchant_id=82&pg_contract_id=24258&pg_payment_id=22568489&pg_moneyback_system=CONTACT_O&pg_amount=120.00&pg_description=Тестовая_выплата&pg_salt=732343&bName=Фамилия_получателя&bLastName=Имя&bSurName=Отчество получателя&pg_sig=4f22f5a4903738a69e3ac74b96b23d4e

Пример ответа:

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_status>ok</pg_status>
	<pg_moneyback_id>727188</pg_moneyback_id>
	<pg_salt>kdjdope983</pg_salt>
	<pg_sig>a3fc5f602d287096ed237952f56bd5fa</pg_sig>
  </response>

Ответ будет содержать результат попытки создания выплаты. В случае ошибки, появится поле pg_error_code с номером ошибки и поле pg_description с описанием ошибки

Пример ответа в случае ошибки в запросе:

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_status>error</pg_status>
	<pg_error_code>100</pg_error_code>
	<pg_description>Описание ошибки</pg_description>
	<pg_salt>kdjdope983</pg_salt>
	<pg_sig>a3fc5f602d287096ed237952f56bd5fa</pg_sig>
  </response>

Коды ошибок:

340 Возврат не найден
200 Отсутствует необходимый параметр
400 Сумма выплаты больше суммы транзакции
101 Магазин не найден
100 Неверная подпись запроса

Статусы:

ok Успешно
pending В процессе
canceled Выплата отменена

Если передан параметр pg_payment_id, то выплата привязывается к транзакции и сумма выплаты не может превышать сумму прямой транзакции, в противном случае будет возвращена ошибка.

Можно делать выплату по транзакции не на полную сумму. Или же несколько выплат, до тех пор пока общая сумма выплат не будет превышать сумму прямой транзакции.

Получение списка контрактов и доступных платежных систем по ним

Для получения списка контрактов с доступными по ним платежными системами нужно обратиться по адресу https://www.platron.ru/moneyback_system_list.php или https://www.platron.ru/moneyback_system_list.php и передать следующие параметры:

Название (обязательные поля выделены жирным) Описание
pg_merchant_id Идентификатор магазина
pg_salt Случайная строка
pg_sig Подпись

Пример запроса:

https://www.platron.ru/ moneyback_system_list.php?pg_merchant_id=82&pg_salt=aaaaa&pg_sig=0c86434c28fcc71166b28778c961a5d0

В ответ Platron вернет список, действующих контрактов, по которым есть доступные для выплат платежные системы и обязательные дополнительные поля.

Пример ответа:

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_contract_list>
	  <pg_contract>
		<pg_contract_id>24258</pg_contract_id>
		<pg_account_amout>-30061.6100</pg_account_amout>
		<pg_moneyback_system_list>
		 <pg_moneyback_system>
		  <pg_system_name>YANDEXMONEY_O</pg_system_name>
		  <pg_description>Описание</pg_description>
		  <pg_amout>Cумма</pg_amout>
		  <destination_account>Номер кошелька</destination_account>
		 </pg_moneyback_system>
		 <pg_moneyback_system>
		  <pg_system_name>CONTACT_O</pg_system_name>
		  <pg_description>Описание</pg_description>
		  <pg_amout>Cумма</pg_amout>
		  <bName>Фамилия получателя</bName>
		  <bLastName>Имя получателя</bLastName>
		  <bSurName>Отчество получателя</bSurName>
		 </pg_moneyback_system>
		</pg_moneyback_system_list>
	  </pg_contract>
	</pg_contract_list>
	<pg_salt>3399407</pg_salt>
	<pg_sig>700466634e329c11f6bbf094ea264eb8</pg_sig>
  </response>

Пример ответа в случае ошибки в запросе:

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_status>error</pg_status>
	<pg_error_code>100</pg_error_code>
	<pg_description>Неверная подпись запроса</pg_description>
	<pg_salt>kdjdope983</pg_salt>
	<pg_sig>a3fc5f602d287096ed237952f56bd5fa</pg_sig>
  </response>

Получение статуса выплаты

Получения статуса по выплате доступно по запросу на адрес https://www.platron.ru/get_moneyback_status.php или https://www.platron.ru/get_moneyback_status.php .

Параметры, передаваемые в запросе:

Название (обязательные поля выделены жирным) Описание
pg_merchant_id Идентификатор магазина
pg_moneyback_id Идентификатор выплаты
pg_salt Случайная строка
pg_sig Подпись
reference_id Идентификатор выплаты в платежной системе

Пример запроса:

https://www.platron.ru/get_moneyback_status.php?pg_merchant_id=1234&pg_moneyback_id=72612&pg_salt=f387f3h3&pg_sig=bfc5f9d2379d287052f56bd05c60296e

В случае успеха будет возвращен следующий ответ:

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_status>pending</pg_status>
	<pg_salt>kdjdope983</pg_salt>
	<pg_sig>a3fc5f602d287096ed237952f56bd5fa</pg_sig>
  </response>

Здесь:

pg_status Результат обработки запроса.
pg_moneyback_status Статус выплаты – список статусов можно посмотреть в справочнике статусов выплат
pg_reference_id Идентификатор в платежной системе – присутствует, если нужен для получения пользователем денег
pg_salt Случайная строка
pg_sig Подпись

В случае ошибки ответ будет выглядеть следующим образом:

<?xml version="1.0" encoding="utf-8"?>
  <response>
	<pg_status>error</pg_status>
	<pg_error_code>200</pg_error_code>
	<pg_description>Отсутствует необходимый параметр</pg_description>
	<pg_salt>kdjdope983</pg_salt>
	<pg_sig>a3fc5f602d287096ed237952f56bd5fa</pg_sig>
  </response>

Отмена выплаты доступна в личном кабинете на сайте Platron по ссылке https://www.platron.ru/admin/moneyback_transactions.php

Получение реестра операций

Для сверки проведенных операций вы можете воспользоваться скриптом https://www.platron.ru/get_registry.php

Ниже приведены параметры, которые должны быть переданы в запросе:

Название Описание
pg_merchant_id Идентификатор магазина
pg_date Дата, за которую вы получите операции. Формат yyyy-mm-dd
pg_salt Случайная строка
pg_sig Подпись

Вы не можете совершить еще один запрос, пока не отработал первый запрос. В этом случае вы получите ошибку.

Пример запроса:

https://www.platron.ru/get_registry.php?pg_merchant_id=1234&pg_date=2016-11-15&pg_salt=f387f3h3&pg_sig=bfc5f9d2379d287052f56bd05c60296e

В случае успеха будет возвращен такой ответ:

<?xml version="1.0" encoding="utf-8"?>
  <response>
    <pg_status>ok</pg_status>
    <operation>
      <type>pay</type>
      <payment_type>direct</payment_type>
      <pg_payment_id>28236796</pg_payment_id>
      <order_id>9789932</order_id>
      <description>hotel reservetion description</description>
      <merchant_id>82</merchant_id>
      <payment_system>GDSHOTELWITHRUSSIANSTANDARD</payment_system>
      <bill_amount>5138.0000</bill_amount>
      <amount>0.0000</amount>
      <currency>RUB</currency>
      <bill_cur_symbol>RUB</bill_cur_symbol>
      <op_date>15.11.2016</op_date>
      <op_time>10:26:45</op_time>
      <to_pay>0.0000</to_pay>
      <pg_commission>0.0000</pg_commission>
      <ps_commission>0.0000</ps_commission>
    </operation>
    <pg_salt>f387f3h3</pg_salt>
    <pg_sig>cac84530938b7e51b2d272e1d0212457</pg_sig>
  </response>

В случае ошибки ответ будет выглядеть следующим образом:

<?xml version="1.0" encoding="utf-8"?>
  <response>
    <pg_status>error</pg_status>
    <pg_error_code>200</pg_error_code>
    <pg_description>Отсутствует необходимый параметр</pg_description>
  </response>

В параметрах магазина есть возможность задать e-mail, на который каждый день будет высылаться реестр платежей по предыдущему дню. Реестр формируется в 0:10 по московскому времени.

Заголовки письма содержат следующую информацию:

• X-Merchant-ID: Merchant ID, выданный магазину (пример: 14)

• X-Registry-Date: Дата, на которую составлен реестр, в формате ГГГГ-ММ-ДД (пример: 2009-12-02)

• Поле «От» письма содержит info@platron.ru

• Тема письма: Platron report for merchant # [ГГГГ-ММ-ДД]

Реестр высылается в теле письма или во вложении, в зависимости от настроек в личном кабинете, представляет собой набор данных с разделителями «табуляция». Первая строка содержит названия полей. Если поле не определено, две табуляции следуют подряд.

Реестр высылается, даже если за прошедший день не было ни одной транзакции. В этом случае в теле письма присутствует только строка заголовка.

Код поля Название поля Описание
order_id Номер заказа Номер, переданный магазином как номер заказа
pg_payment_id Номер операции BILLNUMBER, номер платежа, сформированный Platronом.
op_date Дата операции
op_time Время операции
Type Тип операции Трехбуквенный код операции:
"pay" – операция оплаты счета,
"ref" – возврат средств(через ту же платежную систему, через которую прошла транзакция)
“rev” – reversal
“mb” – возврат средств(через платежную систему отличающуюся от платежной системы транзакции)
“rev_mb” – отмена возврата
payment_system Наименование платёжной системы Наименование платёжной системы (из Справочника платёжных систем и групп).
payment_type Тип платежа (direct или transit) Тип контракта с Платёжной системой: direct – прямой контракт между магазином и ПС, transit – контракт между Platron и ПС
bill_amount Сумма выставленного счета Сумма счета, первоначально выставленного мерчантом, в валюте, в которой он первоначально выставлен
bill_cur_symbol Валюта, в которой выставлен счет Код валюты в международном стандарте (RUB, EUR, USD)
amount Сумма Сумма, уплаченная плательщиком в пользу магазина
pg_commission Комиссионное вознаграждение Агента Комиссионное вознаграждение Platron за операцию.
ps_commission Комиссионное вознаграждение Платёжной системы Комиссионное вознаграждение платёжной системы за операцию (отсутствует, если type=”transit”)
to_pay К перечислению Разница между суммой операции и комиссионным вознаграждением.
currency Валюта Код валюты в международном стандарте (RUB, EUR, USD)

В целях обеспечения безопасности магазину рекомендуется проверять заголовки письма, чтобы убедиться в подлинности полученного реестра.

Пример реестра:

.scroll_table { width: auto; height: auto; overflow: auto; }
order_id pg_payment_id op_date op_time type payment_system payment_type bill_amount bill_cur_symbol amount pg_commission ps_commission to_pay currency
289 79004 02.12.09 13:32:56 pay WEBMONEYE direct 0.13 EUR 0.1300 0.0003 0.0000 0.13 EUR
291 79212 02.12.09 19:39:41 pay TEST transit 10 RUB 10.0000 0.0000 10.00 RUB
293 79216 02.12.09 19:42:10 pay TEST transit 0.30 USD 10.0000 0.0000 10.00 RUB
76392 78930 02.12.09 00:08:22 pay RAIFFEISEN direct 35.87 USD 1076.1400 2.5951 35.5100 1073.54 RUB
76394 78932 02.12.09 00:15:02 pay RAIFFEISEN direct 994.26 RUB 994.2600 2.3976 32.8100 991.86 RUB

Отправка данных в ОФД.

Перед настройкой необходимо связаться с менеджером.

Послать данные в ОФД можно как из личного кабинета магазина, так и в автоматическом режиме путем вызова скрипта https://www.platron.ru/receipt.php. Параметры передаются одним из методов прямого запроса (см. Способы прямого взаимодействия между магазином и Platron). Максимальное время ожидания ответа – 30 секунд.

Список параметров запроса:

Параметр Описание
pg_merchant_id Идентификатор магазина
pg_operation_type Тип операции (enum)
payment - оплата
refund – возврат по API
moneyback – выплата
pg_payment_id * Номер платежной транзакции (int)
pg_order_id * Номер заказа магазина
pg_salt Случайная строка
pg_sig Подпись
pg_items Массив позиций в чеке. См. таблицу ниже

* Требуется либо pg_payment_id, либо pg_order_id. В случае с pg_order_id, если он не уникальный, то чек будет создан к последнему заказу.

Поля pg_items:

pg_label Наименование товара (string)
Максимальная длина составляет 128 символов
pg_amount Сумма (float). Не обязательное поле. Если меньше pg_price * pg_quantity – воспринимается как скидка.
pg_price Цена одной позиции (float)
pg_quantity Количество (float)
pg_vat Ставка НДС (enum)
0 – ставка НДС 0%
10 – ставка НДС 10%
18 – ставка НДС 18%
110 – ставка НДС 10/110
118 – ставка НДС 18/118
Если поле отсутствует – не облагается НДС

Пример GET запроса:

https://platron.ru/receipt.php?pg_merchant_id=82&pg_operation_type=payment&pg_payment_id=27052361&pg_salt=aaaaaaaaaa&pg_items%5B0%5D%5Bpg_label%5D=name1&pg_items%5B0%5D%5Bpg_amount%5D=200.00&pg_items%5B0%5D%5Bpg_price%5D=100.00&pg_items%5B0%5D%5Bpg_quantity%5D=2.00&pg_items%5B0%5D%5Bpg_vat%5D=18&pg_items%5B1%5D%5Bpg_label%5D=name2&pg_items%5B1%5D%5Bpg_amount%5D=200.00&pg_items%5B1%5D%5Bpg_price%5D=50.00&pg_items%5B1%5D%5Bpg_quantity%5D=8.00&pg_items%5B1%5D%5Bpg_vat%5D=18&pg_sig=47409c78b3e3422184a65d98c88bb349

Пример XML запроса (передается POST’ом в параметре pg_xml):

<?xml version="1.0" encoding="utf-8"?>
<request>
	<pg_merchant_id>82</pg_merchant_id>
	<pg_operation_type>payment</pg_operation_type>
	<pg_payment_id>27052361</pg_payment_id>
	<pg_salt>aaaaaaaaaa</pg_salt>
	<pg_items>
		<pg_label>name1</pg_label>
		<pg_amount>200.00</pg_amount>
		<pg_price>100.00</pg_price>
		<pg_quantity>2.00</pg_quantity>
		<pg_vat>18</pg_vat>
	</pg_items>
	<pg_items>
		<pg_label>name2</pg_label>
		<pg_amount>400.00</pg_amount>
		<pg_price>50.00</pg_price>
		<pg_quantity>8.00</pg_quantity>
		<pg_vat>10</pg_vat>
	</pg_items>
	<pg_sig>73e52155367839ea531dfa11b8c7e997</pg_sig>
</request>

Ответ на запрос представляет собой XML следующего вида в случае успешного выполнения запроса:

<?xml version="1.0" encoding="utf-8"?>
<response>
    <pg_receipt_id>100500</pg_receipt_id>
	<pg_salt>9865</pg_salt>
	<pg_status>ok</pg_status>
	<pg_sig>48caf9d237952f56bd05c602d28762da</pg_sig>
</response>

Здесь:

pg_receipt_id Номер созданного чека

В случае ошибки:

<?xml version="1.0" encoding="utf-8"?>
<response>
	<pg_salt>9865</pg_salt>
	<pg_status>error</pg_status>
	<pg_error_code>100</pg_error_code>
	<pg_error_description>Incorrect signature</pg_error_description>
	<pg_sig>4df0f9d237952f56bd05c602d2873ed0</pg_sig>
</response>

Здесь:

pg_status Результат обработки запроса
pg_error_code Код ошибки
pg_error_description Описание причины ошибки
pg_salt Случайная строка
pg_sig Подпись

Получение статуса чека ОФД.

Получить статус чека ОФД можно путем вызова скрипта https://www.platron.ru/get_receipt_status.php. Параметры передаются одним из методов прямого запроса (см. Способы прямого взаимодействия между магазином и Platron). Максимальное время ожидания ответа – 30 секунд.

Список параметров запроса:

Параметр Описание
pg_merchant_id Идентификатор магазина (int)
pg_receipt_id Идентификатор чека полученный в ответе запроса на создание чека
pg_salt Случайная строка
pg_sig Подпись

Пример GET запроса:

https://platron.ru/get_receipt_status.php?pg_merchant_id=82&pg_receipt_id=10000&pg_salt=aaaaaaaaaa&pg_sig=b2c010162d43d2ba98a7f68caee24761

Пример XML запроса (передается POST’ом в параметре pg_xml):

<?xml version="1.0" encoding="utf-8"?>
<request>
	<pg_merchant_id>82</pg_merchant_id>
	<pg_receipt_id>10000</pg_receipt_id>
	<pg_salt>aaaaaaaaaa</pg_salt>
	<pg_sig>b2c010162d43d2ba98a7f68caee24761</pg_sig>
</request>

Ответ на запрос представляет собой XML следующего вида в случае успешного выполнения запроса:

<?xml version="1.0" encoding="utf-8"?>
<response>
	<pg_status>ok</pg_status>
	<pg_receipt_status>ok</pg_receipt_status>
	<pg_fiscal_receipt_number>6</fiscal_receipt_number>
	<pg_shift_number>23</pg_shift_number>
	<pg_receipt_date>2017-04-12 20:16:00</pg_receipt_date>
	<pg_fn_number>1110000100238211</pg_fn_number>
	<pg_ecr_registration_number>0000111118041361</pg_ecr_registration_number>
	<pg_fiscal_document_number>133</pg_fiscal_document_number>
	<pg_fiscal_document_attribute>3449555941</pg_fiscal_document_attribute>
	<pg_salt>aaaaaa</pg_salt>
	<pg_sig>531b7999c74d984fa8c9e1ff029a40d7</pg_sig>
</response>

В случае, если информации по чеку ещё нет:

<?xml version="1.0" encoding="utf-8"?>
<response>
	<pg_salt>9865</pg_salt>
	<pg_status>ok</pg_status>
	<pg_receipt_status>pending</pg_receipt_status>
	<pg_sig>75ed486aa0dfd5363e2e5a87e8e30634</pg_sig>
</response>

В случае ошибки:

<?xml version="1.0" encoding="utf-8"?>
<response>
	<pg_salt>9865</pg_salt>
	<pg_status>error</pg_status>
	<pg_error_code>100</pg_error_code>
	<pg_error_description>Incorrect signature</pg_error_description>
	<pg_sig>4df0f9d237952f56bd05c602d2873ed0</pg_sig>
</response>

Здесь:

pg_status Результат обработки запроса.
pg_error_code Код ошибки
pg_error_description Описание причины ошибки
pg_salt Случайная строка
pg_sig Подпись
pg_receipt_status Статус чека (ok или pending)
pg_fiscal_receipt_number Номер чека в смене.
pg_shift_number Номер смены.
pg_receipt_date Дата и время документа из ФН.
pg_fn_number Номер ФН.
pg_ecr_registration_number Регистрационный номер ККТ.
pg_fiscal_document_number Фискальный номер документа.
pg_fiscal_document_attribute Фискальный признак документа.

Примеры интеграции

Ниже указаны несколько типичных сценариев интеграции магазина с Platronом. Этот список не исчерпывающий, а лишь показывает наиболее часто встречающиеся потребности и способы их реализации.

Благотворительность

Задача. Магазин хочет принимать пожертвования на произвольные суммы. Никакие услуги в ответ не оказываются

Решение. На сайте магазина размещается кнопка для внесения пожертвований и поле для ввода суммы пожертвования. Кнопка ведет на Platron, где покупатель выбирает платежную систему и вносит деньги. Собранные деньги периодически пересылаются магазину.

pg_order_id Не используется
Check URL Не реализуется
Result URL Не реализуется

Простейший магазин

Задача. Магазин имеет в своем ассортименте небольшой набор позиций, и все заказы обрабатываются вручную, запас товаров/услуг не ограничен. Магазину не нужно в режиме online узнавать о том, что платеж состоялся.

Решение. На каждую позицию вешается кнопка, которая ведет на Platron. В коде кнопки указываются только цена товара, описание товара и идентификация магазина. После перехода на Platron покупатель выбирает платежную систему и совершает платеж. Сотрудники магазина узнают о платеже через личный кабинет магазина в Platronе, связываются с покупателем и организуют доставку товара / оказание услуги.

pg_order_id Не используется
Check URL Не реализуется
Result URL Не реализуется

Обычный магазин

Задача. Магазин имеет в своем ассортименте большой набор позиций, цена формируется динамически, возможен заказ нескольких позиций в одной корзине, все заказы обрабатываются (полу)автоматически, запас товаров/услуг ограничен. Магазину нужно в режиме online узнавать о том, что платеж состоялся.

Решение. Магазин формирует окончательную цену корзины, присваивает заказу уникальный (в своей системе) идентификатор и предлагает покупателю нажать динамически созданную кнопку, чтобы оплатить товар через Platron. После перехода на Platron покупатель выбирает платежную систему и оплачивает заказ. В ходе оплаты совершается проверка возможности совершения платежа (вызов Check URL), а после приема денег магазин уведомляется о совершении платежа (вызов Result URL). После платежа покупатель пересылается на Success URL или Failure URL на сайте магазина, где получает актуальную информацию о статусе своего платежа и дальнейших действиях для получения оплаченного заказа. В случае если в момент прихода покупателя на Success URL магазину не известен статус транзакции, магазин запрашивает эту информацию у Platronа

pg_order_id используется
Check URL реализуется
Result URL реализуется
Проверка статуса реализуется
Отмена платежа реализуется

Особенный магазин

Задача. Также как в предыдущем случае, но магазин желает кастомизировать страницу оплаты для покупателя, держать ее на своем сайте и хочет, чтобы покупатель как можно больше взаимодействовал с сайтом магазина и, по возможности, не замечал, что для оплаты используется Platron

Решение. В этом случае, в дополнение к сценарию «обычного магазина» магазину необходимо реализовать запрос списка платежных систем, предоставить выбор платежных систем покупателю на своем сайте и валидировать ввод. В качестве метода возврата с Platronа на сайт магазина необходимо установить AUTOGET или AUTOPOST.

Запрос списка платежных систем реализуется
pg_order_id используется
Check URL реализуется
Result URL реализуется
Проверка статуса реализуется
Отмена платежа реализуется

Работа через iFrame

Задача. Магазин хочет, чтобы platron не было видно, и клиент вводил все платежные данные и выбирал платежные способы никуда не переходя.

Решение. Магазин включает настройку использования iframe в настройках магазина в административное панели platron. Выводит iframe на стороне магазина.

Преимущество использования фрейма в том, что клиент уйдет на сторону платежной системы только в случае, если это онлайн оплата, и клиенту надо совершить какие-то действия. Если это оффлайн оплата, то даже отображение инструкций будет происходить на стороне магазина, что избавляет магазин от лишней работы – размещения инструкций по оплате.

При этом есть несколько важных рекомендаций:

1. Сайт должен быть открыт по https://, чтобы у клиента не возникло впечатление, что номер карты он вводит на небезопасном сайте (хотя на самом деле ввод данных и отправка происходит на https://www.platron.ru)

2. Ссылка для размещения должна быть получена запросом на init_payment.php и сохранена в БД магазина, чтобы при каждом обновлении пользователем страницы с iFrame, в системе Platron не создавался новый заказ.

3. Если пункт 2 вызывает сложности – то нужно хотя бы минимизировать создание транзакций на стороне Платрон. Т.е. если в iframe стоит ссылка на payment.php для создания транзакций, то страница оплаты должна быть последней при оформлении.

Справочник платежных систем и групп

Идентификатор (значение поля pg_payment_system) Название Базовая валюта Место комиссии ПС
Электронные деньги
WEBMONEYR ЭПС WebMoney, R-кошельки RUB сверху
WEBMONEYZ ЭПС WebMoney, Z-кошельки USD сверху
WEBMONEYE ЭПС WebMoney, E-кошельки EUR сверху
WEBMONEYRBANK ЭПС WebMoney, R-кошельки с перечислением на расчетный счет в банке RUB внутри и сверху
YANDEXMONEY ЭПС Яндекс.Деньги RUB внутри
QIWI QIWI Кошелёк RUB внутри
QIWIACTIVATION QIWI Кошелек с активационным платежом RUB внутри
PAYPALUSD ЭПС PAYPAL USD внутри
PAYPALEUR ЭПС PAYPAL EUR внутри
PAYPALRUR ЭПС PAYPAL RUB внутри
PAYLATE Система кредитования PayLate RUB внутри
Банковские карты
TRANSCRED Банковские карты через процессинг Транскредит банка RUB внутри
RUSSIANSTANDARD Банковские карты через процессинг банка Русский Стандарт RUB внутри
PSCB Банковские карты через процессинг Петербуржский социально-коммерческий банк RUB внутри
BANKCARDPRU Банковские карты. RUB внутри
TINKOFFBANKCARD Банковские карты через процессинг Тиньков банка RUB внутри
Наличные
EUROSET Евросеть RUB внутри
EUROPLAT Евросеть через Rapida RUB внутри
SVYAZNOY Связной через Rapida RUB внутри
ELECSNET Терминалы Элекснет RUB внутри
CONTACT Система приёма платежей «Контакт» RUB внутри
CASH Наличные (включает EUROSET, ELECSNET, QIWI, CONTACT, SVYAZNOY, EUROPLAT) RUB внутри
Счета мобильных телефонов
RURU Счет на телефоне Билайн RUB внутри
MOBILEPHONE Лицевой счет на мобильном телефоне (включает все ПС этого раздела) RUB внутри
MIXPLATMTS MIXPLATMEGAFON MIXPLATTELE2 Счет на телефоне МТС, Мегафон, Теле2 RUB внутри
Интернет-банкинг
ALFACLICK Интернет-банкинг Альфа-банка RUB внутри
PSB Интернет-банкинг Промсвязьбанк RUB внутри
VTB24 Интернет-банкинг ВТБ24 RUB внутри
SBRF Интернет-банкинг Сбербанка RUB внутри
Тестовые Платежные Системы
TEST Тестовая платежная система с переводами в виртуальной валюте, используется для отладки прохождения платежей тестик внутри
TESTCARD Тестовая платежная система с переводами в виртуальной валюте, используется для отладки прохождения платежей по картам тестик внутри

Технические подробности

Идентификатор (значение поля pg_payment_system) Проверка возможности совершить платеж (вызывается ли Check URL) Поддержка времени жизни счета платежной системой (pg_lifetime) Возможность отзыва платежа (может ли быть pg_can_reject=1) Возможность отмены счета до оплаты Возможно использование рекуррентных платежей Способ возврата
Электронные деньги
WEBMONEYR да нет нет на стороне Platronа, только до check нет Online, только refund на кошелек
WEBMONEYZ да нет нет на стороне Platronа, только до check нет Online, только refund на кошелек
WEBMONEYE да нет нет на стороне Platronа, только до check нет Online, только refund на кошелек
WEBMONEYRBANK да нет да на стороне Platronа, только до check нет Online, только refund на кошелек
YANDEXMONEY да нет да на стороне Platronа, только до check нет Online, только refund на кошелек
QIWI нет да да да нет Online, только на кошелек
QIWIACTIVATION нет да да да нет Online, только на кошелек
PAYPALUSD да нет да да нет online
PAYPALEUR да нет да да нет online
PAYPALRUR да нет да да нет online
PAYLATE да нет нет на стороне Platronа, только до check нет по заявке
Банковские карты
TRANSCRED нет нет да на стороне Platronа, reversal после оплаты нет online, на карту
RUSSIANSTANDARD нет нет да на стороне Platronа, reversal после оплаты да online, на карту
PSCB нет да да нет нет online, на карту. Возможен только один возврат по каждой транзакции
BANKCARDPRU нет нет нет нет да До клиринга online, на карту После клиринга по заявке, на карту
TINKOFFBANKCARD нет нет да на стороне Platronа, reversal после оплаты да online, на карту
Наличные
EUROSET да да нет на стороне Platronа, только до check нет по заявке, через системы возврата
EUROPLAT да да нет на стороне Platronа, только до check нет по заявке, через системы возврата
SVYAZNOY да нет нет на стороне Platronа, только до check нет по заявке, через системы возврата
ELECSNET да нет нет на стороне Platronа, только до check нет по заявке, через системы возврата
CONTACT да да нет на стороне Platronа, только до check нет по заявке, через системы возврата
CASH зависит от ПС зависит от ПС нет зависит от ПС нет по заявке, через системы возврата
Счета мобильных телефонов
RURU да да нет нет нет по заявке, через системы возврата
MOBILEPHONE нет да нет да нет по заявке, через системы возврата
MIXPLAT
(MIXPLATMTS, MIXPLATMEGAFON, MIXPLATTELE2)
нет нет нет нет нет по заявке, через системы возврата
Интернет банкинг
ALFACLICK да нет нет да нет по заявке, через системы возврата
PSB да нет нет на стороне Platronа, только до check нет по заявке, через системы возврата
VTB24 да нет нет на стороне Platronа, только до check нет по заявке, через системы возврата
SBRF нет нет нет нет нет по заявке, через системы возврата
Тестовые платежные системы
TEST да да нет да нет по заявке, на кошелек
TESTCARD нет да да да нет online

Справочник дополнительных параметров ПС

Идентификатор Название поля Значение поля
ALFACLICK pg_alfaclick_client_id Цифровой идентификатор клиента или логин
PAYLATEpg_client_name Имя пользователя. Допускаются только буквы.

Справочник валют

Идентификатор (значение поля pg_currency) Название
RUB Российские рубли
USD Доллары США
EUR Евро

Справочник кодов ошибок

Код ошибки Описание ошибки
100 Некорректная подпись запроса *
101 Неверный номер магазина
110 Отсутствует или не действует контракт с магазином
120 Запрошенное действие отключено в настройках магазина
200 Не хватает или некорректный параметр запроса
340 Транзакция не найдена
350 Транзакция заблокирована
360 Транзакция просрочена
365 Срок жизни рекуррентного профиля истек
400 Платеж отменен покупателем или платежной системой
420 Платеж отменен по причине превышения лимита
465 Ошибка связи с платежной системой
466 Истек SSL сертификат
470 Ошибка на стороне платежной системы
475 Общий сбой платежной системы
490 Отмена платежа невозможна
600 Общая ошибка
700 Ошибка в данных введенных покупателем
701 Некорректный номер телефона
711 Номер телефона неприемлем для выбранной ПС
850 Ни одна из платежных систем не готова принять запрос
1000 Внутренняя ошибка сервиса (может не повториться при повторном обращении)

*Чтобы проанализировать причины возникшей ошибки подписи, можно воспользоваться страницей «Проверка подписи к запросу» в Личном Кабинете.

Справочник причин отказа

Код отказа Описание причины отказа
0 Нет ошибки (в описании придет пустая строка)
1 Неизвестная причина отказа
2 Общая ошибка
3 Ошибка на стороне платежной системы
4 Не удалось выставить счет ни в одну из платежных систем
5 Неправильный запрос в платежную систему
40 Превышение лимитов
50 Платеж отменен
100 Ошибка в данных покупателя
101 Некорректный номер телефона
300 Некорректная транзакция по карте
301 Неверный номер карты
302 Неверное имя держателя карты
303 Неверное значение CVV2/CVC2
304 Неверный срок действия карты
305 Данный вид карты не поддерживается банком
306 Некорректная сумма
310 Карта клиента просрочена
320 Отказ по соображениям безопасности
321 Не пройдена аутентификация по 3ds
329 Карта украдена, утеряна или скомпрометирована.
330 Неизвестный банк эквайер
350 Превышение количества использований карты клиента за определенный промежуток времени
351 Превышение установленного эмитентом лимита по карте.
352 На счете клиента не хватает средств
353 Отказ от банка эмитента без объяснения причины.
354 Транзакция не разрешена для банка эквайера
355 Эмитент запрещает online оплату для этой карты
389 Общая техническая ошибка системы
390 Ограничения по карте
391 Карта заблокирована
400 Транзакция заблокирована по решению fraud-фильтров
410 Клиент не подтвердил свой номер телефона

Справочник статусов выплат

pending Транзакция создана, но не отправлена в платежную систему
ok Транзакция отправлена в платежную систему, но не получена пользователем
received Транзакция получена пользователем. Это финальный статус
canceled Транзакция отменена до получения денег пользователем. Это финальный статус

Справочник статусов платежа

Каждая платежная транзакция может находиться в одном из следующих состояний:

partial Платежная транзакция еще не до конца создана, например, не определена платежная система. Из этого состояния платеж может перейти только в состояние pending.
pending Платежная транзакция создана и ждет оплаты. Из этого состояния платеж может перейти только в состояния ok или failed.
ok Платеж завершился успешно. Из этого состояния платеж может перейти только в состояние revoked
failed Платеж не прошел. Это окончательный статус.
revoked Платеж прошел успешно, но затем был отозван. Это окончательный статус.

История версий API

версия

дата

автор

объект изменений

изменения

0.1.20090608

08.06.2009

А.Чурюмов

документация

Начальная версия

0.1.20090609

09.06.2009

А.Чурюмов

документация

В справочник платежных систем добавлена информация о проверке возможности платежа, о возможности отзыва платежа и о месте комиссии ПС

0.1.20090611

11.06.2009

А.Чурюмов

документация

Уточнено поведение Platronа при вызовах Check URL и Result URL

0.1.20090618

18.06.2009

А.Чурюмов

документация

функционал

Добавлены ссылки на справочники валют и платежных систем.

Уточнено поведение Platronа при временных сбоях в вызове Check URL.

Уточнен порядок перенаправления покупателя при отказе от платежа.

Уточнено поведение Platronа в отношении времени жизни счета.

Добавлена информация о способности ПС отслеживать время жизни счета.

Добавлено замечание о методе возврата покупателя в текущей версии.

Исправлен пример формирования подписи.

В ответе на запрос списка платежных систем имя ПС перенесено из атрибута в тег, и список отсортирован по имени ПС.

0.1.20090701

01.07.2009

А.Чурюмов

документация

функционал

В ответе на запрос списка платежных систем добавлен список платежных систем, входящих в группу

0.1.20090716

16.07.2009

А.Редозубов

функционал

В ответе на запрос check добавлено поле «время ожидания оплаты», добавлен пример использования

0.1.20090720

20.07.2009

А.Редозубов

документация

Убрано замечание о неполной реализации методов вызова Failure URL и Success URL

0.1.20090810

10.08.2009

А.Редозубов

документация

функционал

Убраны замечания о неполной реализации функции подписи. Исправлен порядок полей в примере подписи сообщения. Добавлен комментарий по поводу pg_redirect_url_type=”need data”. Добавлено замечание по кодировке запросов check и result.

0.1.20090817

17.08.2009

А.Чурюмов

документация


Уточнение поведения для pg_redirect_url_type=”need data”.

0.1.20090827

27.08.2009

А.Чурюмов

функционал

Изменение формата ответа на вызов Check URL: добавлен статус rejected, поле pg_error_description переименовано в pg_description, изменена реакция на статус error.

0.1.20090903

03.09.2009

С.Предеин

функционал

Изменение формата вызова Check URL: убран параметр pg_net_amount

0.1.20091026

26.10.2009

А.Чурюмов

документация

Уточнены требования к формату передачи денежных сумм, уточнен список платежных систем.

1.0.20091029

29.10.2009

А.Чурюмов

функционал

документация

Удалены оговорки о не полностью реализованной функциональности. Изменен номер версии.

1.1.20091112

12.11.2009

А.Чурюмов

А.Редозубов

функционал

документация

Добавлены оповещения об отмене платежа.

Уточнены описания запросов и ответов (поля pg_salt и pg_sig).

Исправлено наименование платежной системы Билайн.

1.2.20091211

11.12.2009

И.Бакулин

функционал

Добавлена ежедневная рассылка реестров платежей. Исправлено наименование платёжной системы «Банковские карты», добавлены платёжные системы TRANSCRED, COMEPAY и WEBMONEYRBANK

1.2.20091222

22.12.2009

А.Толмачев

функционал

Если Platron не смог идентифицировать мерчанта и поэтому не знает его secret_key и не может подписать ответное сообщение, то возвращается ошибка 101.

1.3.20100212

12.02.2010

И.Бакулин

функционал

Добавлена информация об извещениях о частичных возвратах.

1.3.20100226

26.02.2010

И.Бакулин

функционал

Если для оплаты в платёжной системе требуются дополнительные параметры, эти параметры передаются в ответе на инициализацию платежа.

1.3.20100309

09.03.2010

А.Толмачев

функционал

Добавлено поле pg_payment_scenario в список ПС.

1.3.20100408

08.04.2010

А.Толмачев

документация

Добавлен справочник кодов ошибок.

1.4.20100415

15.04.2010

И.Бакулин

функционал

Добавлено новое обязательное поле pg_user_ip.

1.5.20100713

13.07.2010

И.Бакулин

функционал

Добавлен API-вызов для отмены выставленного счёта.

1.5.20100726

26.07.2010

А.Толмачев

функционал

Добавлено ограничение на значение параметра pg_lifetime.

1.5.20100830

30.08.2010

А.Чурюмов

документация

Обновлен список платежных систем, указаны особенности отмены счетов в разных ПС. Указано ограничение на длину поля pg_description.

1.6.20101015

15.10.2010

А.Толмачев

функционал

Изменение формата вызова Result URL: добавлен параметр pg_user_phone.

1.6.20101020

20.10.2010

А.Толмачев

функционал

Добавлено ограничение на минимальное значение параметра pg_lifetime.

1.6.20101110

10.11.2010

А.Толмачев

функционал

Добавлена настройка магазина site_url.

1.6.20101126

26.11.2010

И.Бакулин

функционал

Добавлено поле pg_accepted_payment_systems.

1.6.20110210

10.02.2011

А.Чурюмов

функционал

документация

Добавлена возможность возврата неполной суммы платежа. Добавлена ссылка на страницу отладки подписей.

1.6.20110525

25.05.2011

А.Чурюмов

функционал

документация

В оповещение о возврате добавлена подробная информация о возврате, добавлены новые платежные системы.

1.6.20110701

01.07.2011

Д.Кармишкин

функционал

документация

Добавлена возможность оставлять заявки на возврат в автоматическом режиме через API

Добавлена тестовая платежная система TESTCARD, эмулирующая Банковские карты. Добавлено поле pg_user_contact_email в запрос инициализации платежа.

1.6.20110721

21.07.2011

Д.Кармишкин

функционал

Добавлена возможность создания счетов с отложенной оплатой: поле pg_postpone_payment в запрос

1.6.20110825

25.08.2011

А.Чурюмов

функционал

Добавлена возможность устанавливать язык платежных страниц.

1.7.20111216

16.12.2011

Д.Кармишкин

функционал

Добавлены типы операций в реестре.

Добавлены платежные системы.

1.7.20120228

28.02.2012

Д.Кармишкин

функционал

Добавлен тестовый режим для магазинов

1.7.20120321

21.03.2012

Д.Кармишкин

функционал

Добавлено поле pg_card_brand в вызове Result URL.

В формат реестров добавлены поля, описывающие выставленный счет.

1.7.20120425

25.04.2012

Д.Кармишкин

функционал

документация

Добавлена возможность делать отложенный clearing, для TRANSCRED, RUSSIANSTANDARD, MASTERBANKCARD.

Добавлена возможность работы с длинной записью, через

TRANSCRED, MASTERBANKCARD. Смотри дополнительную документацию по длинной записи.

Добавлена возможность переплаты.

Добавлены рекомендации по использованию Result URL и Success URL.

1.7.20120614

14.06.2012

Д.Кармишкин

функционал

Добавлена передача причины отказа при неудачном платеже.

Добавлена возможность задавать индивидуальный Site URL для каждой транзакции.

1.7.20120725

25.07.2012

Д.Кармишкин

функционал

Расширен список платежных систем


1.7.20120815

15.08.2012

Д.Кармишкин

функционал

документация

Добавлено поле pg_auth_code в вызове Result URL.

Появилась возможность запрашивать информацию о платеже (через get_status.php) с использованием pg_order_id. Упорядочен список платежных систем.

1.7.20130222

22.02.2013

А.Лашнев

функционал


Добавлено поле pg_card_pan в вызове Result URL.

Добавлена возможность делать выплаты без предшествующего платежа.

1.8.20130517

17.05.2013

А.Чурюмов

функционал


Добавлен запрос статуса выплаты без предшествующего платежа.

Расширен функционал фрод-фильтров.

1.8.20130920

Д.Кармишкин

функцианал

Добавлен возможность осуществлять рекуррентные платежи.

Расширен функционал при работе GDS Amadeus.

Расширен список платежных систем.

Добавлен запрос на отмену выплаты.

Расширен справочник причин отказа.

2.0 26.03.2014

Д.Кармишкин

функционал, новые платежные системы

Qiwi на протоколе QIWIREST

Протокол TINKOFFBACKCARD

Длинная запись по RUSSIANSTANDARD

Отображения данных длинной записи в административной панели Platron

Внутренние оптимизации по работе с бинами

Возможность отменить транзакцию из административной панели Platron

2.1 10.06.2014

А. Лашнев

функционал

Параметр pg_user_ip перестал быть обязательным.

3.0 07.07.2014

А. Лашнев

функционал

В ответе скрипта ps_list.php появились теги, pg_require и pg_additional.

Добавлены поля pg_state_url и pg_state_url_method.

Появилась возможность держать клиента на стороне мерчанта, когда статус “в ожидании”. Поле доступно для редактирования в настройках мерчанта а так же можно отправлять в запросе создания транзакции.

Появилась новая схема работы с GDS и Sabre и изменена схема работы с Galileo.

Появилась возможность списывать штраф с клиента при работе с GDS (рекуррентные платежи) и ограничивать тип принимаемых карт.

3.1 23.09.2014

функционал

Возможность отправлять Refund/Reverse мерчанту, из административной панели.

Валидация карт Маэстро с 19 значными номерами.

Новая ПС QBANK.


3.2 11.11.2014

Т. Мурадян

функционал,

новые платежные системы

Возможность использовать тестовую платежную систему как настоящую банковскую платежную систему. Возможность присылать данные длинной записи не только на capture.Возможность кастомизировать админ панель и визард под гейта. Мобильный оператор теперь определяется на основе данных россвязь реестра и с учетом пользователей, сменивших операторов.

Новые ПС MOBICOMMTS, MOBICOMMEGAFON, MOBICOMTELE2, PAYLATE.

3.3 12.12.2014

Т. Мурадян

новые платежные системы

Новые ПС UNISTREAM, SBRF

3.4 24.02.2015

функционал

1. Возможность настраивать каждому магазину и гейту собственные смс и email шаблоны

2. Хешированый номер карты теперь отдается магазину в запросе result

3.5 19.05.2015

функционал

1. Возможность создания фрод фильтров по особенным параметрам магазина.

2. Возможность оплаты картами JSB

3. Добавлена возможность не отсылать клиенту email или sms в виде настройки транзакции или магазина (pg_need_phone_notification и pg_need_email_notification)

4. Добавлены параметры pg_user_contact_email, pg_need_phone_notification и pg_need_email_notification в запросе на result

5. Ускорен поиск по транзакциям в административной части

6. Параметр pg_description удален из запроса на result

3.5 09.07.2015

Платежные системы

1. ПС SBRF переименована в SBRFOFFLINE

2. Добавлена новая ПС SBRF

3.5 22.07.2015

Платежные системы

Добавлены две новые ПС

1. MININTERNETBANK

2. OCEANINTERNETBANK

3.5 02.10.2015

Платежные системы

Добавлена новая ПС QIWIACTIVATION

4.0 17.12.2015

Функционал

1. Улучшено отображение смс и email шаблонов

2. Оптимизированы внутренние механизмы работы системы и поиска

4.0 20.06.2016

Функционал

Переход на работу с валютой RUB вместо RUR по международному стандарту ISO

4.0 24.06.2016

Платежные системы

Удалены неработающие ПС

  1. MOBW

  2. W1RUB

  3. UNISTREAM

  4. OSMP

  5. OSMP-II

  6. OSMPSTD

  7. OSMPTRAVEL

  8. ESGP

  9. PETROCOMMERCE

  10. MTSMK

  11. MEGAFONMK

  12. FAKTURA

4.0 27.06.2016

Платежные системы

Удалены неработающие ПС

  1. RUSSIANSTANDARDIB

  2. QBANK

4.1 31.08.2016

Функционал

Выплаты переведены на новый REST протокол

Удаленные сервисы:

  • create_payout.php

  • cancel_payout.php

  • get_payout_status.php

Новые сервисы:

  • moneyback_system_list.php

  • create_moneyback.php

  • get_moneyback_status.php

Изменено поведение скрипта create_refund_request.php. Теперь через него делаются только заявки на возвраты. Если система не поддерживает возврат по API

5.0 07.10.2016

Функционал

Изменен платежный визард. Страница выбора платежных систем и ввода банковской карты совмещены в одну. Изменены коды ошибок – в силу асинхронности выставления транзакции в ПС. Теперь некоторые коды ошибок можно получить только при запросе result.

Сделан новый шаблон для кастомизации.

В запросе ps_list появился тег, означающий категорию ПС – category.

В ответе на init_payment не будет списка ПС, куда удалось выставить транзакцию. Список перенесен в get_status.

Ответ на recurring payment ok означает результат создания транзакции, не результат оплаты. Результат как и раньше приходит на result_url.

5.0 28.11.2016

Функционал

Изменен ответ запроса get_moneyback_status.php – он стал более информативным

5.0 03.02.2016

Функционал

Добавлена возможность получать операции за 1 день запросом на скрипт get_registry.php