API

  1. Домой
  2. API
  3. Результат платежа

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

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

http://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.