Обработчик платежа
Last updated
Last updated
По мере выполнения платежа мы уведомляем платформу магазина о статусе оплаты, последовательно отправляя GET запросы на URL обработчика.
Важно: домен в обработчике платежей должен полностью совпадать с тем, который вы добавляете к нам в систему в качестве проекта
CHECK: проверка возможности оказания услуги абоненту, запрос отправляется до прохождения оплаты. Вы должны подтвердить готовность системы (проверить корректность суммы платежа, существование счета в БД и т. д.)
PAY: уведомление об успешном списании, вы должны оказать услугу абоненту. При любой ошибке на данном этапе (например, не доступна БД) платеж получает статус «Не завершен». После устранения проблем вы можете повторно провести платеж в интерфейсе статистики. Деньги зачисляются на баланс партнера независимо от ответа обработчика.
ERROR: ошибка платежа на любом из этапов. Если ошибка вызвана пустым/ошибочным ответом сервера партнера, то запрос отправлен не будет. Следует учесть, что данный статус не конечный и возможны ситуации, когда после запроса ERROR может последовать запрос PAY.
Всегда проверяйте IP адреса, с которых приходят запросы к обработчику платежей
ВАЖНО: в системе партнера не должно быть двух разных платежей с одним unitpayId. При получении повторного запроса CHECK или PAY необходимо вернуть результат выполнения предыдущего запроса, ничего не пополняя/зачисляя.
ВАЖНО: на этапе PAY при любой ошибке (например, нет доступа к БД) платеж получит статус «Не завершен». После устранения проблем повторите платеж в статистике.
Значение
Описание
method
string
check — запрос на проверку состояния абонента pay — уведомление о списании error — уведомление об ошибке
unitpayId
число
Внутренний номер платежа в UnitPay
projectId
число
ID проекта в UnitPay
account
string
Идентификатор абонента в системе партнера
payerSum
число
Сумма списания с лицевого счета абонента
payerCurrency
string
Валюта списания с лицевого счета абонента по стандарту ISO 4217 (RUB, UAH, BYN, EUR, USD или другие валюты. Подробнее)
profit
число
Ваш доход с данного платежа, в USD
paymentType
string
orderSum
число
Сумма заказа. Обязательно сверяйте поступившее значение с оригинальной суммой заказа
orderCurrency
string
Валюта заказа по стандарту ISO 4217 (RUB, UAH, BYN, EUR, USD или другие валюты. Подробнее). Обязательно сверяйте поступившее значение с оригинальной валютой заказа
date
string
Дата платежа в формате YYYY-mm-dd HH:ii:ss (например 2012-10-01 12:32:00)
errorMessage
string
Детализация ошибки (только для метода error)
test
число
Признак тестового режима, если запрос делается с использованием механизма "тестового запроса", то значение будет равно 1. Для реальных платежей значение всегда 0
3ds
число
Признак наличия 3-DS для операций по карте, флаг присутствует при PAY уведомлениях
signature
string
Цифровая подпись. Образуется как sha256(method + "{up}" + params + "{up}" + secretKey), где sha256 - метод шифрования; "{up}" - разделитель параметров в хеш-функции; method - тип вызова (check, pay, error); params - значения параметров из массива params, объединенные разделителем "{up}". Все параметры должны быть предварительно отсортированы по ключу, в склейке не участвуют параметры sign и signature; secretKey - секретный ключ проекта (доступен в личном кабинете); Пример расчета подписи для запроса http://partnerUrl?method=check & params[b]=bob & params[c]=sam & params[a]=todи секретного ключа "a1b1c1d1" sha256("check{up}tod{up}bob{up}sam{up}a1b1c1d1")
Значение
Описание
message
string
Текстовый статус выполнения запроса.
Значение
Описание
message
string
Информация с описанием ошибки формирования платежа.
При использовании формы оплаты текст из параметра "message" будет показан плательщику. Например: "Магазин отклонил платеж: причина блокировки", где "Магазин отклонил платеж:" - вводная часть. "Причина блокировки" - значение параметра message
locale
string
Настраивает язык вводной части.
Возможные значения: "en" или "ru". По умолчанию "ru"