API

  1. Домой
  2. API
  3. Проверка возможности платежа

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

Перед тем как принять деньги от покупателя по счету, платежный гейт может вызвать скрипт магазина 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 вызова магазина гейтом:

http://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 или получения ответа, который невозможно интерпретировать, платеж также будет временно отменен.