Podorojnik: Payments
Документация

Чтобы делать запросы к API, укажите заголовок X-Api-Key: <Ваш токен>

Алгоритм работы с сервисом

  1. В стороннем сервисе оплат (LifePay) укажите ссылку обработчика оплат на https://payments.podorojnik.ru/handlers/transaction
  2. В личном кабинете этого сервиса укажите URL для вебхука, чтобы получать сообщения от этого сервиса. Описание структуры сообщения смотри ниже.
  3. Задайте настройки сервисов, чтобы мы обнаружили Ваши оплаты и отправили Вам вебхук сообщение
  4. Перед тем как отправить данные в сторонний сервис оплат (LifePay), зарегистрируйте заказ в этом сервисе POST /api/orders. Вам придет идентификатор, который Вы и отправляете в сторонний сервис.
  5. Вы можете воспользоваться API, чтобы получить статус оплаты заказов, вручную отменить заказ, пометить оплаченным или возвращенным

Структура сообщений транзакции

Сообщение отправляется в формате application/json

Ключ Описание
event Тип события:
  • payment-received - Получена оплата от стороннего сервиса
  • refund-received - Получен возврат от стороннего сервиса
  • transaction-operation-fail - Сообщение стороннего сервиса не было обработано
error Описание ошибки при event = transaction-operation-fail. Структура:
  • code - код ошибки
  • message - текст ошибки
transaction Объект транзакции, полученный при обработке сообщения от стороннего сервиса. Структура:
  • id - Идентификатор транзакции
  • type - Тип транзакции: payment, refund
  • created_at - Дата и время транзакции
  • partner_id - Идентификатор партнера для кого это сообщение
  • order_id - Идентификатор заказа транзакции. Может быть как ID заказа в этой системе, так и ID заказа в Вашей
  • order_number - Номер заказа в Вашей системе
  • order_total_amount - Полная сумма заказа, в копейках
  • order_description - Описание заказа
  • amount - Сумма оплаты, в копейках
  • comment - Комментарий
order Объект заказа, который был найден или создан при обработке сообщения от стороннего сервиса
  • id - ID заказа в нашей системе
  • order - ID заказа в системе партнера
  • amount - Сумма заказа, в копейках
  • income - Сумма оплаченная, в копейках
  • description - Описание заказа
  • created_at - Зарегистрирован в нашей системе
  • created_at - Изменен в нашей системе
  • status - Статус заказа:
    • pending - Ждет оплаты
    • canceled - Отменен
    • paid - Оплачен
    • refunded - Возвращен
  • checks - Чеки операций, массив:
    • type - Тип чека: payment, refund
    • amount - Сумма чека, в копейках
    • note - Комментарий
    • created_at - Дата создания чека
raw Объект оригинального сообщения от стороннего сервиса

Структура сообщений чека

Сообщение отправляется в формате application/json

Ключ Описание
event Тип события:
  • payment-check-received - Получена оплата от стороннего сервиса
  • refund-check-received - Получен возврат от стороннего сервиса
  • check-operation-fail - Сообщение стороннего сервиса не было обработано
error Описание ошибки при event = check-operation-fail. Структура:
  • code - код ошибки
  • message - текст ошибки
operation Объект операции, полученный при обработке сообщения от стороннего сервиса. Структура:
  • id - Идентификатор чека
  • type - Тип чека: payment, refund
  • datetime - Дата и время чека
  • transaction_number - Номер транзакции чека
  • partner_inn - ИНН партнера
  • amount - Сумма чека, в копейках
  • partner_order_id - Идентификатор заказа в Вашей системе
  • partner_order_number - Номер заказа в Вашей системе
check Объект чека, который был найден или создан при обработке сообщения от стороннего сервиса
  • id - Идентификатор чека
  • operation - Тип операции: payment, refund
  • order_id - Идентификатор заказа в нашей системе
  • partner_id - Идентификатор партнера
  • transaction_number - Номер транзакции чека
  • created_at - Когда пришел в нашу систему
raw Объект оригинального сообщения от стороннего сервиса

Подпись вебхука

Если Вы указали в личном кабинете Секретный ключ для вебхука, то при отправке вебхука на ваш URL, он будет подписан

Подпись указана в заголовке Signature: <подпись>

Чтобы проверить подпись, сравните строку с sha256 хэшем из данных POST, кодированных в json. Пример на PHP:

hash_hmac('sha256', json_encode($_POST), '<секретный ключ>')