Мгновенные уведомления о платеже
Система Velespay в фоновом процессе производит отправку сообщений по указанному вами URL-адресу обо всех успешных транзакциях. Эти уведомления содержат данные о платеже, а также персональную информацию о клиенте.
Активация - IPN
Перед началом работы, необходимо выполнить нижеперечисленные действия:
- Зайти в личный кабинет;
- Меню Профиль -> Кошельки;
- Выбрать Кошелек;
- Открыть вкладку "Мерчант";
- Верифицировать ваш бизнес;
- Раздел "Уведомление об оплате (IPN):"
- Активировать данный функционал;
- Укажите URL на который будет направляться запрос о статусе платежа, после успешной оплаты;
- Укажите метод отправки параметров;
- Укажите Пароль;
Параметры которые передает платформа Velespay на ваш сервер при успешной оплате:
vm_txn = <ID транзакции в системе Velespay (целое число)>; vm_invoice = <Номер счета-фактуры, в соответствии с вашей системой ведения учета>; vm_wallet = <Кошелек на который зачислена оплата (Ваш). Пример: VM123456789>; vm_who_fee = <кто оплачивал комиссию false = покупатель, true = продавец>; vm_amount[gross] = <Сумма счета-фактуры. Данную сумму необходимо проверять, если комиссию оплачивал продавец.>; vm_amount[fee] = <Комиссия>; vm_amount[net] = <Сумма зачисления. Данную сумму необходимо проверять, если комиссию оплачивал покупатель.>; vm_currency[id] = <Цифровой код валюты по стандарту ISO 4217. Пример: 0840>; vm_currency[code] = <Код валюты по стандарту ISO 4217. Пример: USD>; vm_ps[system] = <Код платежной системы, через которую был оплачен счет, поле code раздела "Информационные данные" -> "Платежные системы/банки">; vm_ps[code] = <Код электронной валюты, с помощью которой был оплачен счет, поле code раздела "Информационные данные" -> "Электронные валюты">; vm_ps[currency] = <Код национальной валюты (USD), поле code раздела "Информационные данные" -> "Валюты">; vm_ps[gross] = <Сколько заплатил покупатель">; vm_ps[fee] = <Комиссия в валюте оплаты>; vm_ps[net] = <Разница суммы оплаты и комиссии>; vm_ps[rate] = <Обменный Курс, если валюта счета и валюта оплаты отличается>; vm_buyer[wallet] = <Внутренний кошелек. Пример: VM123456789> или <Номер карты/счета/кошелька в сторонней системе>; vm_buyer[account] = <Аккаунт (целое число), если плательщик из системы>; vm_buyer[email] = <E-mail плательщика>; vm_buyer[phone] = <Телефон плательщика>; vm_buyer[name] = <Имя плательщика (Имя и Фамилия или название компании)>; vm_buyer[country] = <Страна (Цифровой код страны ISO 3166-1), если плательщик из системы>; vm_buyer[lang] = <Язык плательщика>; vm_buyer[status] = <Статус аккаунта (целое число), если плательщик из системы>; vm_buyer[ip] = <IP адрес при оплате>; vm_buyer[bank_name] = <Название банка, если оплата SWIFT/SEPA/Картой>; vm_buyer[bank_country] = <Страна банка, если оплата SWIFT/SEPA/Картой>; vm_status = <Статус счета. Статус транзакции (целое число). Если счет полностью оплачен, статус = 7>; vm_description = <Комментарий или сообщение продавца>; vm_sign = <Контрольная подпись, которая используется для проверки подлинности полученной информации>;
Если покупатель не зарегистрирован в системе Velespay поле vm_buyer будет иметь только один параметр email.
Проверка vm_sign
Вы должны создать и сравнить полученную у вас подпись с полем vm_sign.
С помощью следующего алгоритма:
- Сгенерировать URL-кодированную строку из всех полученных параметров кроме vm_sign;
- Сгенерировать хеш-код на основе <Вашего Пароля IPN>, используя метод HMAC с алгоритмом sha512;
Пример на PHP:
//В зависимости какой метод передачи данных был выбран в настройках $params = $_POST;//или $_GET unset($params['vm_sign']); //Формируем подпись $secretKey = "Ваш Пароль от IPN"; $hash = hash_hmac('sha512', urldecode(http_build_query($params)), $secretKey); //Если подписи совпадают и статус платежа = 7 (Completed) if($_POST['vm_sign'] === $hash && $_POST['vm_status'] === 7){ //Здесь производятся действия при успешной оплате счета-фактуры exit('true'); } //Если платеж проверку не прошел exit('false');//Или true, что бы система Velespay не повторяла запросы
Обработчик платежа должен обязательно вернуть true. В противном случае уведомление будет отправляться, пока не будет получен правильный ответ. Не более 10 попыток.
Для безопасности принимаемых уведомлений установите проверку по IP адресу сервера уведомлений Velespay. Наши IP-адреса серверов уведомлений: 95.163.67.176
Имейте введу, что IP адреса серверов уведомлений могут измениться.
Вы всегда можете посмотреть, что отвечает Ваш обработчик платежа на наше уведомление об оплате, если зайдете в Личном кабинете: Меню Профиль -> IPN - История.