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