API

  1. Home
  2. API
  3. Общие принципы взаимодействия

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример: Вызов http://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

Articles