Москва: 8 (495) 984-87-51
Санкт-Петербург: 8 (812) 385-75-57
8 (800) 775-37-51Контакт центр

Приём POST оповещений

При каждом принятом платеже PayKeeper может отправлять POST-запрос на указанный URL предприятия. Для этого необходимо включить данную функцию в личном кабинете предприятия.

В запросе от PayKeeper будут передаваться следующие данные:

  Параметр Назначение Обязательный
1 Параметр:id Назначение:Уникальный номер платежа Обязательный:Да
2 Параметр:sum Назначение:Сумма платежа Обязательный:Да
3 Параметр:clientid Назначение:Фамилия Имя Отчество Обязательный:Нет
4 Параметр:orderid Назначение:Номер заказа Обязательный:Нет
5 Параметр:key Назначение:Цифровая подпись запроса, строка из символов a-f и 0-9 Обязательный:Да

Поле key  — цифровая подпись запроса. Она является md5-хешем, который вычисляется от конкатенации параметров 1-4 с добавлением в конец секретного слова. Секретное слово также настраивается в личном кабинете.

Обязательно нужно проверять, что sum  , clientid  и orderid  соответствуют друг другу в вашей информационной системе. То есть. если было получено оповещение об успешном платёже по заказу номер orderid , нужно проверить, что он действительно есть, что его сумма действительно совпадает с полученной суммой оплаты sum , что он принадлежит пользователю clientid . Если ваша система не использует идентификацию заказов или пользователей, проверяйте только релевантные для вашего случая параметры.

Помимо вышеуказанных дополнительно в POST-оповещении передаются следующие дополнительные параметры:

  Параметр Назначение Обязательный
1 Параметр:service_name Назначение:Наименование услуги Обязательный:Нет
2 Параметр:client_email Назначение:Адрес электронной почты Обязательный:Нет
3 Параметр:client_phone Назначение:Телефон Обязательный:Нет
4 Параметр:ps_id Назначение:Идентификатор платежной системы Обязательный:Да
5 Параметр:batch_date Назначение:Дата списания авторизованного платежа Обязательный:Нет
6 Параметр:fop_receipt_key Назначение:Код страницы чека 54-ФЗ Обязательный:Нет
7 Параметр:bank_id Назначение:Идентификатор привязки карты Обязательный:Нет
8 Параметр:bank_payer_id Назначение:Идентификатор привязки клиента Обязательный:Нет
9 Параметр:card_number Назначение:Маскированный номер карты Обязательный:Нет
10 Параметр:card_holder Назначение:Держатель карты Обязательный:Нет
11 Параметр:card_expiry Назначение:Срок действия карты Обязательный:Нет
12 Параметр:bank_operation_datetime Назначение:Дата и время совершения платежа в банке Обязательный:Нет

Если параметр отмечен как необязательный, то в запросе он может отсутствовать, либо быть пустым. Поля clientid , orderid , service_name , client_email , client_phone будут те же, что и при инициализации платёжа.

ps_id устанавливается в зависимости от платёжной системы, через которую проходит платёж (например, через Qiwi, Яндекс.Деньги или WebMoney) либо в зависимости от банка-эквайера, через который принимается оплата.

batch_date передается в том случае, если платёжная платформа PayKeeper работает в двухстадийном режиме оплаты (режим «авторизация + списание»). В этом режиме успешная оплата является операцией авторизации денежных средств, которые по прошествии заданного периода времени должны быть списаны с карты плательщика. batch_date  в этом случае представляет собой дату запланированного списания платёжа.

fop_receipt_key передается в том случае, если платёжная платформа интегрирована с онлайн-кассой. С помощью fop_receipt_key формируется постоянный адрес страницы с чеком 54-ФЗ по данному платёжу.

Если в процессе оплаты была создана привязка карты, то дополнительно передаётся bank_id  — идентификатор созданной привязки карты. Он понадобится при выполнении платёжа по привязанной карте. Если платёж происходит с уже привязанной карты, то в bank_id будет идентификатор использованной привязки.

Параметры card_number , card_holder , card_expiry , могут быть заполнены соответственно маскированным номером карты, именем держателя карты и сроком действия карты плательщика, если использующийся шлюз банка эти данные передаёт.

В ответ на данный запрос должна быть отправлена строка вида:

OK hash

где hash вычисляется как md5-хеш от конкатенации поля id запроса и того же секретного слова, а слово «OK» состоит из английских букв O и K. Такой ответ считается подтверждением того, что информационная система предприятия приняла данный платёж.

В случае, если на запрос не будет получен корректный ответ, PayKeeper будет продолжать попытки сообщить о платёже, повторяя запрос каждую минуту. Если через определённое число попыток (50 по умолчанию) не будет получен корректный ответ, платёж в PayKeeper получит статус «Совершён без оповещения». Такой платёж можно повторно провести через веб-интерфейс администратора.

Например, на языке PHP приём оповещений можно реализовать так:

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

Другие типы уведомлений

Существует также возможность настроить уведомления о произведённых возвратах и неуспешных платёжах (в статусе «Не состоялся»). Для настройки таких уведомлений необходимо обратиться в службу поддержки.

Оставьте заявку

Менеджер перезвонит вам и расскажет про детали подключения