Qiwi p2p что это
Открываем API для приема p2p-переводов
Мы тут в QIWI открыли API приема переводов. Новый сервис должен решить сразу несколько проблем для тех, кто часто посылает (а особенно — получает) деньги именно посредством p2p-перевода. Во-первых, мы открыли возможности, ранее доступные только для бизнеса, и постарались сделать процесс безопасным, быстрым и удобным, а во-вторых, хотим снять риски вида «Мне тут за работу заплатили и банк счет поблочил».
Почему p2p-переводы важны
Люди часто кидают друг другу деньги с помощью переводов с карты на карту или по номеру телефона — суть одна, это прямой платеж от одного физлица другому. Это может быть возврат денег, если вы купили другу кофе, когда у него с собой не было денег (или желания платить за кофе), это может быть открытый сбор средств на что-нибудь, это может быть какой-то киоск с мороженым или тем же кофе в парке, где продавец принимает только наличку, но есть возможность и «кинуть на сбер».
Отдельной строкой тут проходят и самозанятые граждане. Допустим, человек получает постоянный доход за какой-то фриланс (или сдает квартиру, например) и хочет легализовать свои доходы. Делать ИП не каждому хочется, поэтому государство позаботилось о самозанятых. Судя по всему, в формате открытой беты, потому что инициатива сама по себе, как и налоговые ставки, разумная, но практика показывает, что некоторые из первых ласточек столкнулись с произвольными блокировками основных банковских счетов. Банку иногда сложно провести водораздел между приемом средств таким самозанятым гражданином в рамках его профессиональной деятельности и обычными денежными переводами. Поэтому банк на всякий случай сначала все блочит, а потом уже разбирается, чего там и как.
Обсуждать это дело мы не будем, мы решили просто придумать альтернативу.
Получается, что де-факто у людей есть сам запрос на прием платежей подобными способами. А у государства есть запрос на легализацию всего этого дела, чтобы такие люди могли работать в белую и платить налоги. Вот именно в этих двух историях мы и захотели поучаствовать.
В том году мы создали универсальный протокол для приема средств, который успешно объединил в себе все доступные способы оплаты — эквайринг-кошелек, банковские карты, мобильную коммерцию, рассрочку по Совести, я писал о нем вот тут. Конечно, для него сделали SDK и поддержку в разных CMS. Поэтому в решении для примера p2p переводов решили использовать именно его. Такой подход позволит клиенту без технологических изменений идти от редких переводов и самозанятости к своей фирме.
Начали с пользовательских тестов, чтобы понять, как люди воспринимают форму. Главное здесь — чтобы они понимали, что с помощью формы совершается перевод денежных средств, а не покупка какой-то услуги. Потому что человек может использовать для этого кредитную карту. И если покупка онлайн с кредитной карты рассматривается банком именно как покупка и не облагается комиссией, то при переводе с кредитки на другую карту комиссия обычно есть. И у некоторых банков достигает такого значения, что при возврате другу денег за кофе банку ты даришь две таких порции кофе. Что всегда грустно, а иногда еще и внезапно.
Поэтому мы сразу заменили кнопку «Оплатить» на однозначную «Перевести», чтобы отсеять сомнения и дать пользователю понять, что с нашей стороны тут все прозрачно и без комиссий, но возможна комиссия со стороны банка, который выпустил саму карту.
Посмотрели глубже, как пользователи взаимодействуют с формой. Поняли, что человеку все же важно при переводе видеть в форме, кому именно он переводит деньги (люди привыкли переводить по номеру телефону или ФИО из контактов в смартфоне). Но показывать фамилию целиком на публичной форме — так себе затея, поэтому мы показываем имя и первую букву фамилии.
Кстати, о безопасности. Почему лучше не показывать прямой телефон на формах и виджетах для сбора средств и почему мы его скрываем? Во-первых, через сам номер телефона могут попытаться взломать кошелек, попытаться в салоне восстановить симку и прочее, то есть тут есть фактор целевой атаки на абонента и на кошелек. Нет номера — нет фактора. А во-вторых, это помогает еще и от разного рода оленей, которые собирают по сети актуальные номера мобильных телефонов для обзвона и предложения разных услуг и прочей чуши.
А теперь получается, что перевод осуществляется либо по короткой ссылке, либо с виджета на сайта, либо с QR-кода.
Мы сразу заложили для p2p скрытие номера телефона. Люди могли ранее собирать средства разными способами — номер карты, номер QIWI Кошелька и прочее, и мы объединили их все.
На чем все крутится
Нам удалось успешно адаптировать платежный протокол, сделанный для бизнеса, к решению для переводов, сохранив все возможности и совместимость с библиотеками. Теперь любой человек с идентифицированным кошельком может залогиниться и получить доступ ко всему этому добру. Сейчас физ. лицам не доступны только возвраты, но они в планах и не так востребованы.
Все это можно посмотреть в работе на p2p.qiwi.com
При входе с помощью кошелька вам станет доступна персональная короткая ссылка. Например, my.qiwi.com/gkonnov. Её удобно как пересылать в сообщении, так и, например, сделать QR код. Форма хорошо адаптируется к мобильным устройствам, поэтому конверсия будет хорошей. Еще появятся персональные виджеты на выбор (widget.qiwi.com/gkonnov). Их сделали для сайтов и блогов. На виджетах и форме можно кастомизировать по желанию, чтобы они соответствовали оформлению вашего сайта или бренда. Это все было в возможностях для большого бизнеса и крупных магазинов — мы перенесли все и на пользователей.
А еще появилась возможность выставлять счет за оказанные услуги. Сделали вы кому-то сайт и хотите принять средства за работу — вбиваете нужную сумму, формируете ссылку на счет, пересылаете ее заказчику. Заказчик переходит по ней и понимает, кому переводит и за что.
Т.к. под капотом полноценное API — есть возможность создавать ключи, настраивать необходимые уведомления, подключать это к своему интернет-магазину на WordPress и других CMS, все работает.
Так, а что у вас про самозанятых?
Сейчас у самозанятых такая ситуация, что регистрироваться надо на одном сервисе, потом принимать деньги на карту, которую банк вполне может поблочить (потому что ты принимаешь туда деньги от множества разных людей, да, так редко бывает у обычных клиентов), а чеки выдаешь вообще в третьем приложении. И такой зоопарк при ведении бизнеса, пусть даже малого и очень малого, все же нервирует.
Да, в целом, ничего не мешает использовать p2p.qiwi.com уже сейчас и, если вы самозанятый, регистрировать доход в сервисе “Мой налог”, но прямо сейчас мы активно взаимодействуем с ФНС и интегрируем их API, что позволит и регистрировать самозанятых, и вести учет их деятельности. В общем, человек получит коробочное решение, которое должно будет закрыть все его потребности как самозанятого.
Заодно, зная сферу деятельности клиента, мы сможем расширить лимиты, снизить риск блокировок и предложить удобные сервисы, которые сделают легальную работу не столько обязанностью, сколько выгодной возможностью.
Здесь мы предлагаем командам, желающим написать какой-нибудь свой полезный сервис для самозанятых, поработать вместе с нами, запустить пилот и получить до 3 млн рублей, в зависимости от результата. Подробности, требования к командам и условия оценок тут. Уже работающих компаний это тоже касается. Мы открыты к сотрудничеству по адаптации сервисов для самозанятых, эти проекты тоже можно подавать на QIWI Universe.
Что это может быть — можно придумать сервис, который поможет собирать средства уличным фотографам, музыкантам, создателям полезных вебинаров, людям, сдающим квартиры, в общем, сценариев может быть множество.
Главный фокус — самозанятые. Именно им мы должны помогать, запуская продукт. Я искренне верю, что это крутая возможность помочь людям, компаниям и государству на новом, огромном рынке. Остались вопросы? Записывайся на вебинар 24 апреля или спрашивай в комментариях.
Если вам не очень близка тема самозанятых, посмотрите любой из 8 проектов на QIWI Universe 2019. Они разные.
Да, кстати, 18 апреля, мы проводим еще и митап для разработчиков, приходите, будем рады.
С моей карты Сбербанк были переведены денежные средства на QIWI P2P MOSKVA RUS. Как мне их обратно
С моей карты Сбербанк были переведены денежные средства на QIWI P2P MOSKVA RUS. Как мне их обратно вернуть на карту? Деньги сняли мошенники.
Ответы на вопрос:
Какую сумму перевели?
Похожие вопросы
Я перевел с карты Сбербанк денежные средства на QIWI P2P MOSKVA RUS. И как вернуть их обратно, история оплаты есть.
Я перевел с карты Сбербанк денежные средства на QIWI P2P MOSKVA RUS. Хотя оплачивал теле 2
С моей карты сбербанк были переведены.
Денежные средства на
QIWI p2p mockwa.RUS.
Как мне их обратно вернуть на карту?
Деньги сняли машинки.
У меня мошенники под предлогом кредита выманили 22000, через систему QIWI P2P MOSKVA. RU. Есть ли шанс вернуть деньги.
У меня с этого сайта QIWI p2p Moskva RUS сняли с карточки деньги что делать?
У меня арестован в сбербанке счет, я понимаю что деньги снять или перевести нельзя но недавно мошенники сняли с моей карты деньги. Как это может быть и как вернуть денежные средства на карту.
Я перевела деньги на QIWI P2P MOSKVA модно ли как то вернуть?
Что нужно знать о p2p-платежах и их будущем в России
Популярность p2p растет
p2p-платежи (от англ. Peer-to-Peer — от человека человеку) — самый простой способ отправки денег от одного физического лица другому. Такие транзакции можно использовать для чего угодно: оплатить аренду, разделить счет в ресторане между друзьями и т.п. Эти платежи позволяют переводить деньги с помощью мобильных банковских приложений между двумя сторонами с использованием их дебетовых, кредитных карт или индивидуальных банковских счетов.
Развитие p2p-платежей происходит из-за повсеместного перехода на безналичный расчет. Поэтому расчетами с карты на карту начали активно пользоваться представители микро- и малого бизнеса. Даже на рынке, где у продавца нет терминала, чтобы принять оплату с помощью банковской карты, у покупателя теперь есть возможность перевести деньги напрямую на карту продавца или владельца бизнеса. В этом случае p2p-переводы используют как псевдоэквайринг.
Но в сфере услуг p2p-платежи играют действительно важную роль и для бизнеса. На них стоит обратить внимание владельцам ресторанов, салонов красоты, барбершопов, сервисов по доставке еды.
Эти транзакции можно использовать для сбора чаевых, за счет чего сотрудники: а) получают больше денег; б) станут более лояльными.
Аналитики отмечают, что бизнес в целом продолжает уходить от наличных расчетов. Например, по данным Сбербанка и «Платформы ОФД», в 2019 году доля безналичной оплаты в ресторанах достигла 69%.
Условия использования
Последнее обновление: 09-09-2021
Для подключения на свой сайт сервиса приема переводов для физических лиц p2p необходимо иметь QIWI Кошелек со статусом идентификации «Основной» или «Профессиональный». Если Ваш кошелек имеет статус «Анонимный» – пройдите идентификацию удобным для вас способом. Для получения «Основного» статуса достаточно указать паспортные данные, для получения «Профессионального» статуса необходимо пройти очную идентификацию.
Рекомендуем получить «Профессиональный» статус. Такой статус имеет повышенные лимиты на остаток на балансе, сумму платежей и переводов в месяц, максимальную сумму одной операции. Подробнее про лимиты.
Рекомендуем ознакомиться с частыми вопросами по нашему сервису, а также с информацией о том, как избежать блокировки кошелька.
Активация p2p
Поздравляем! Вы можете приступить к интеграции.
Для работы API потребуются публичный и секретный ключи. Ключи создаются в разделе «API».
Схема работы с API
Пользователь формирует счет на вашей стороне.
Вы перенаправляете пользователя на платежную форму для выставления счета. Или выставляете счет по API и перенаправляете пользователя на созданную платежную форму.
Пользователь выбирает способ перевода и подтверждает перевод. По умолчанию подбирается оптимальный для пользователя способ перевода.
После перевода по счету вы получаете уведомление (предварительно настройте отправку уведомлений в Личном кабинете при создании ключей). Уведомления о переводе по счету содержат параметры авторизации, которые необходимо проверять на Вашем сервере.
Готовые решения
SDK и библиотеки
С руководством по работе с SDK можно ознакомиться здесь.
Решения для CMS
Авторизация
Ваши запросы авторизуются посредством секретного ключа API ( SECRET_KEY ). Параметр авторизации указывается в заголовке Authorization, значение которого формируется как «Bearer SECRET_KEY».
Публичный ключ ( PUBLIC_KEY ) используется для выставления счетов через форму.
Ключи создаются в личном кабинете на вкладке API после авторизации на p2p.qiwi.com.
Для выпуска пары ключей выполните следующие шаги:
Внизу страницы нажмите на кнопку Настроить.
Придумайте название паре ключей, чтобы упростить поиск в списке.
Подключите уведомления об оплате счетов, отметив Использовать эту пару ключей для серверных уведомлений об изменении статусов счетов.
В поле URL сервера для уведомлений укажите адрес вашего сервера, который будет обрабатывать уведомления об оплате, и нажмите на кнопку Создать.
Скопируйте в буфер секретный ключ и сохраните его в безопасном месте — в дальнейшем он не будет отображаться в интерфейсе. Используйте секретный ключ для запросов к API.
Выставление счета через форму
Простой способ для интеграции. При открытии формы клиенту автоматически выставляется счет. Параметры счета передаются в открытом виде в ссылке. Далее клиенту отображается форма с выбором способа перевода. При использовании этого способа нельзя гарантировать, что все счета выставлены вами, в отличие от выставления по API.
REDIRECT →
URL https://oplata.qiwi.com/create
Параметры
Взаимодействие через API
1. Выставление счета
Доступно выставление счетов в рублях и тенге.
Надежный способ для интеграции. Параметры передаются server2server с использованием авторизации.
Также существует более простой способ выставления счета — непосредственно через вызов платежной формы
Запрос → PUT
URL https://api.qiwi.com/partner/bill/v1/bills/HEADERS
Ответ ←
Пример тела ответа при ошибке
HEADERS
2. Проверка статуса перевода по счету
Пример тела ответа при ошибке
Метод позволяет проверить статус перевода по счету. Рекомендуется его использовать после получения уведомления о переводе.
Запрос → GET
URL https://api.qiwi.com/partner/bill/v1/bills/HEADERS
Ответ ←
Пример тела ответа при ошибке
HEADERS
3. Отмена неоплаченного счета
Пример тела ответа при ошибке
Метод позволяет отменить счет, по которому не был выполнен перевод.
Запрос → POST
URL https://api.qiwi.com/partner/bill/v1/bills//reject
HEADERS
Ответ ←
Пример тела ответа при ошибке
HEADERS
Статусы оплаты счетов
Статус | Описание | Финальный |
---|---|---|
WAITING | Счет выставлен, ожидает оплаты | — |
PAID | Счет оплачен | + |
REJECTED | Счет отклонен | + |
EXPIRED | Время жизни счета истекло. Счет не оплачен | + |
Уведомления о переводе по счету
Адрес сервера для уведомлений указывается в личном кабинете p2p.qiwi.com при генерации ключей.
Перед началом работы с сервисом уведомлений прочитайте условия по интеграции API уведомлений.
Пулы IP-адресов, с которых сервисы QIWI отправляют уведомления:
Если ваш сервер обработки уведомлений работает за брандмауэром, необходимо добавить эти IP-адреса в список разрешенных адресов входящих TCP-пакетов.
Запрос ← POST
Уведомление представляет собой входящий POST-запрос.
Тело запроса содержит JSON-сериализованные данные счета (кодировка UTF-8).
HEADERS
Авторизация уведомлений
Алгоритм проверки подписи:
Объединить значения следующих параметров уведомления в одну строку с разделителем | :
где <*>– значение параметра. Все значения при проверке подписи должны трактоваться как строки.
Вычислить HMAC-хэш c алгоритмом хэширования SHA256:
hash = HMAС(SHA256, invoice_parameters, secret_key) Где:
Сравнить значение заголовка X-Api-Signature-SHA256 с результатом из п.2.
Строка и ключ подписи кодируются в UTF-8.
Данные
В уведомлении содержится информация о счете.
Поле | Описание | Тип |
---|---|---|
bill | Данные о счете | Object |
billId | Уникальный идентификатор счета в вашей системе, указанный при выставлении | String(200) |
siteId | Ваш идентификатор в системе p2p.qiwi | String |
amount | Данные о сумме счета | Object |
amount.value | Сумма счета, округленная до двух десятичных знаков в меньшую сторону | Number(6.2) |
amount.currency | Идентификатор валюты суммы счета (Alpha-3 ISO 4217 код) | String(3) |
status | Данные о статусе счета | Object |
status.value | Строковое значение статуса | String |
status.changedDateTime | Дата обновления статуса. Формат даты ГГГГ-ММ-ДДTЧЧ:ММ:ССZ | String |
customer | Данные о пользователе | Object |
customer.phone | Номер телефона (если был указан при выставлении счета) | String |
customer.email | E-mail пользователя (если был указан при выставлении счета) | String |
customer.account | Идентификатор пользователя в вашей системе (если был указан при выставлении счета) | String |
creationDateTime | Дата создания счета. Формат даты ГГГГ-ММ-ДДTЧЧ:ММ:ССZ | String |
expirationDateTime | Срок оплаты счета. Формат даты ГГГГ-ММ-ДДTЧЧ:ММ:СС+ЧЧ:ММ\-Z | String |
comment | Комментарий к счету | String(255) |
customFields | Дополнительные данные счета (если были указаны при выставлении счета). | Object |
version | Версия уведомлений | String |
Ответ →
HEADERS
После того, как был получен входящий запрос-уведомление, необходимо проверить подлинность цифровой подписи и отправить ответ.
Настройки формы и счета
При выставлении счета через API в ответе присутствует поле payUrl со ссылкой на форму. К ссылке можно добавить следующие параметры:
Добавьте реферальные ссылки для платежей с сайта. Полная ссылка подтвердит реальность сайта и позволит избежать проблем с блокировкой кошелька. Платежи, проходящие со страницы без заголовка запроса Refer будут приводить к блокировке кошелька. Подробнее читайте в статье Как передавать реферальные ссылки.
Пример передачи реферальной ссылки
Персонализация
Вы можете настроить персонализированную форму оплаты – изменить свое имя на название магазина и настроить цвет фона и кнопок.
Перейдите в личном кабинете в раздел Форма приема переводов, нажмите на кнопку Настроить, произведите настройку и нажмите на кнопку Сохранить.
Пример передачи параметра при вызове платежной формы
Пример передачи параметра в запросе к API
Обратите внимание, что значение themeCode индивидуально для разных кошельков.
Для применения стиля к платежной форме:
Checkout Popup
Пример работы popup
Всплывающее окно (popup) позволяет открыть форму перевода поверх вашего сайта.
В библиотеке доступно два метода: открытие существующего счета и открытие вашей формы приема переводов.
Установка и подключение:
Открытие существующего счета
Пример открытия уже созданного счета в popup
Открытие персонализированной формы
Пример открытия персонализированной формы
Процесс интеграции через SDK
Ознакомьтесь с нашей документацией.
Шаг 1. Подготовка среды разработки
Выберите SDK для вашего языка программирования и перейдите в репозиторий на GitHub:
Обратите внимание, что в зависимости от выбранного вами SDK потребуется установка Composer, Apache Maven или NuGet.
Шаг 2. Создание секретного ключа
Перейдите на вкладку API.
Нажмите на кнопку Настроить и придумайте название, по которому потом сможете найти нужный API-ключ.
Рекомендуем подключить уведомления об оплате, отметив чекбокс Использовать эту пару ключей для серверных уведомлений об изменении статусов счетов. После настройки серверных уведомлений вы сможете узнавать, когда выставленные счета оплачены, и автоматически реагировать на оплату счетов (пополнять баланс, отгружать товар, давать доступ к контенту). Подробнее об уведомлениях – в документации.
В поле URL сервера для уведомлений укажите адрес вашего сервера для обработки уведомлений об оплате.
Нажмите Создать и получите ключи авторизации.
Скопируйте себе секретный ключ (в оранжевом блоке), нажав на ссылку Скопировать в буфер. Рекомендуем не закрывать данное окно и не нажимать на кнопку Дальше, пока не настроите авторизацию.
Шаг 3. Авторизация
В разрабатываемом коде заведите константу SECRET_KEY и присвойте ей значение секретного ключа, вставив его из буфера обмена комбинацией клавиш Ctrl+V.
Раздел документации с примерами авторизации находится здесь.
Шаг 4. Выставление счета
Рекомендуем использовать дополнительные параметры:
Необязательные параметры для выставления счета:
В ответе на запрос выставления счета возвращаются следующие поля:
Для тестирования и отладки сервиса рекомендуем выставлять и оплачивать счета суммой 1 рубль.
Раздел документации с примерами выставления счетов находится здесь.
Шаг 5. Установка дополнительных параметров к ссылке на счёт
При выставлении счета через API в ответе присутствует поле payUrl, содержащее ссылку на форму. К данной ссылке можно добавить следующие параметры:
Шаг 6. Редирект пользователя на платежную форму
Пример получения URL оплаты по счету
Реализуйте на вашем сайте перенаправление пользователя на платежную форму по ссылке, полученной в поле payUrl ответа на запрос выставления счёта или по ссылке с дополнительными параметрами, сформированной на шаге 5.
Добавьте реферальные ссылки для платежей с сайта. Полная ссылка подтвердит его реальность и позволит избежать проблем с блокировкой кошелька.
Пример передачи реферальной ссылки
Сервис уведомлений позволяет понять, когда и по какому счету произошла оплата. Вам не нужно каждый раз отправлять запросы в QIWI, можно подключить сервис и получать уведомления автоматически. Но стоит обратить внимание на то, что уведомление может быть отправлено несколько раз даже в случае успешного ответа от вашего сервиса, поэтому это необходимо учитывать при разработке бизнес-логики отгрузки товара или услуги на вашей стороне.
Формат уведомлений описан в документации.
Данные приходят в теле запроса (body). Данные запроса хранятся в формате JSON.
Так как для отладки уведомлений тестовый контур не предусмотрен, рекомендуем выставлять счета на 1 рубль и оплачивать их самостоятельно.
Сервис уведомлений не является обязательным для интеграции, вы можете реализовать более простой вариант с опросом статуса счета. В этом случае перейдите сразу к шагу 11.
Условия интеграции с API уведомлений
Если же вы пока не можете определиться, тогда ознакомьтесь с условиями обслуживания интеграции с API уведомлений:
Мы устанавливаем на своей стороне таймаут на установление соединения – 2 секунды, и таймаут на получение ответа – также 2 секунды. Поэтому не рекомендуем внедрять долго выполняющуюся логику или логику, связанную с ожиданием (waiter, sleep), в процесс обработки уведомления.
Рекомендуем на стороне вашего сервера организовывать очередь и складывать в нее входящие запросы от QIWI с изменением статусов счетов, после чего отвечать QIWI на уведомление успешным статусом.
Обработку уведомлений в очереди и свою бизнес-логику стоит проводить в потоках, отдельных от приема уведомлений, чтобы успевать отвечать нам вовремя.
Мы не можем гарантировать exactly once доставку уведомления, т.е. вам может прийти более одного уведомления об одной и той же успешной оплате счёта.
Чтобы обработать такие ситуации, вам необходимо проверять на своей стороне, присылали ли мы уже уведомление по оплате данного счета и была ли произведена отгрузка товара/услуги по этому счету вашему клиенту.
Если вы выберете механизм уведомлений для интеграции и получения сообщений об успешных платежах, мы все же рекомендуем использовать в дополнение к нему опрос статуса счета.
Шаг 8*. Настройка серверных уведомлений
Уведомление представляет собой входящий POST-запрос.
Тело запроса содержит JSON-сериализованные данные счета (кодировка UTF-8).
Проверьте, что IP-адреса, с которых QIWI отправляет уведомления, находятся в списке разрешенных:
Если не приходят уведомления по счету:
Попробуйте отправить себе уведомление, заменив в примере https://test.com/notif.php на URL, который вы указали при создании ключей для получения уведомлений.
Если вы не используете облачные сервисы для приема уведомлений вроде amazon или heroku, а настраивали свой вебсервер и ssl в нем самостоятельно, проверьте ssl сертификат.
Если ssl сертификат для установления соединения по https выпущен не общеизвестным доверенным центром сертификации (например, Comodo, Verisign, Thawte и т.п.), проверьте, что ваш сервер при установке соединения отправляет полную цепочку сертификатов, включая доверенный корневой центр сертификации в начале цепочки.
Полную цепочку сертификатов вы можете загрузить на сайте центра сертификации, выпустившего ваш сертификат.
Шаг 9*. Проверка подписи уведомлений
Настоятельно рекомендуем проверять уведомления на подлинность, т.к. мы не несем ответственность, если будут приходить поддельные уведомления от мошенников.
Формат уведомлений описан в документации.
Данные приходят в теле запроса (body). Данные запроса хранятся в формате JSON.
Алгоритм проверки подписи:
Объединить значения следующих параметров уведомления в одну строку с разделителем | :
где <*>– значение параметра. Все значения при проверке подписи должны трактоваться как строки.
Вычислить HMAC-хэш c алгоритмом хэширования SHA256:
hash = HMAС(SHA256, invoice_parameters, secret_key)
где: secret_key – секретный ключ, при помощи которого был выставлен счёт; invoice_parameters – строка из п.1.
Сравнить значение заголовка X-Api-Signature-SHA256 с результатом из п.2.
В разрабатываемом коде заведите константу merchantSecret и присвойте ей значение секретного ключа, который выпустили в личном кабинете. Значение должно быть то же самое, что в константе SECRET_KEY на шаге авторизации.
После проверки уведомлений на подлинность отправьте QIWI ответ на уведомление успешным статусом.
Если вы наблюдаете задержки в получении уведомлений более 10 минут (увеличился баланс вашего кошелька или написал клиент, что оплатил, а уведомление так и не пришло) – рекомендуем в дополнение переключиться на поллинг статусов счетов – см. следующий шаг.
Шаг 11*. Проверка статуса перевода по счету
Так как в случае недоступности вашего сервера или сбоя на нашей стороне уведомления могут быть доставлены с задержкой, поэтому рекомендуем использовать метод проверки статуса оплаты счета как дополнение к механизму обработки уведомлений.
Также данный метод можно использовать как самостоятельный, т.е. после выставления счета раз в какой-то промежуток времени опрашивать статус этого счета. Этот метод проще интеграции с сервисом уведомлений.
Раздел документации с примерами проверки статуса оплаты счета находится здесь.
Шаг 12. Бизнес-логика
Счет в своем жизненном цикле проходит следующие статусы оплаты:
Статус | Описание | Комментарий |
---|---|---|
WAITING | Счет выставлен, ожидает оплаты | Нефинальный, ожидание оплаты или истечения срока действия |
PAID | Счет оплачен | Финальный (измениться не может) |
REJECTED | Счет отклонен | Финальный (измениться не может) |
EXPIRED | Время жизни счета истекло. Счет не оплачен | Финальный (измениться не может) |
Опираясь на статус счета, полученный в уведомлении или при помощи поллинга статуса, доработайте бизнес-логику вашего сайта.
Поздравляем, интеграция с QIWI для получения платежей закончена!
Дополнительно. Шаг 13. Отмена неоплаченных счетов
Вы можете отменять неоплаченные счета самостоятельно, используя метод cancelBill.
Раздел документации с примерами запросов для отмены неоплаченных счетов находится здесь.