Меню

настройка http уведомлений яндекс деньги

Пошаговая настройка Яндекс.Деньги с HTTP уведомлениями

Наверное у каждого разработчика найдется заказчик, который просил. или просит установить систему оплаты на сайт, чтобы принимать платежи в автоматическом режиме.

Сегодня мы рассмотрим настройку http уведомлений для сервиса Яндекс.Деньги. С помощью этого, мы без лишних заморочек и документов (ака Робокасса) можем настроить автоматический прием платежей на нашем сайте.

Для начала рассмотрим HTML форму. Она простая, все тэги я прокомментирую.

Следующий шаг — Настройка HTTP-Уведомлений.

Сейчас сделаем настройку для нашего кошелька в системе Яндекс.Деньги. Для этого переходим по ссылке: https://sp-money.yandex.ru/myservices/online.xml.

Тут мы получаем секретный код, который понадобиться для формирования ключа проверки в нашем скрипте, который будет принимать уведомления. Ну и естественно ссылка на сам скрипт, на который Яндекс.Деньги будут отсылать уведомления, после успешной оплаты.

Есть небольшая хитрость. Если сайт не поддерживает протокол https://, то личные данные пользователя (email, адрес, фио) которые отсылаются из формы яндекса будут пустыми.

А теперь рассмотрим сам PHP-скрипт.

Полный список передаваемых параметров можно прочитать в документации Яндекс.

источник

Яндекс Деньги: Пошаговая настройка системы оплаты на сайте с автоматическими HTTP-уведомлениями

Несмотря на то, что у Яндекса довольно обширный раздел справки и то, что в инете сейчас полно инфы практически обо всем, с настройкой оплаты через Яндекс Деньги и получением при этом HTTP-уведомлений могут возникнуть проблемы .

Для того, чтобы понять, что такое HTTP-уведомления (уверен, не все знают), я приведу два примера покупки плагина на сайте.

    Без уведомлений. Кто-то покупает плагин у вас на сайте. Вам приходит email об оплате. После того, как вы получаете этот email, вы отсылаете плагин человеку, купившему его.

Думаю, что минус данного подхода очевиден — вас может не быть дома или у вас в данный момент может не работать интернет. В итоге покупатель превращается в недовольного покупателя, так как ему приходиться ждать плагин какое-то время (может быть ему потом этот плагин и вовсе не нужен будет уже).

  • С HTTP-уведомлением. Посетитель оплачивает плагин у вас на сайте и сразу же получает ссылку на скачивание либо плагин сразу же высылается ему по email.
  • В течение этого поста я буду периодически ссылаться на документацию Яндекса, так как не вижу смысла описывать у себя в статье каждый параметр.

    Шаг 1. Настройка формы HTML

    Для удобства я оставил комментарии непосредственно в коде формы.

    Шаг 2. Настройка HTTP-уведомлений

    Сейчас нужно будет сделать небольшую настройку на сайте Яндекс Денег. Для этого переходим по адресу https://sp-money.yandex.ru/myservices/online.xml.

    Перед тем, как у вас отобразится следующая страница, Яндекс попросит вас ввести платёжный пароль.

    Я думаю тут особо нечего комментировать, потому что и так всё понятно — указываем URL скрипта, который будет обрабатывать уведомления (мы его создадим в следующем шаге), жмём кнопку «Показать секрет» и копируем его, так как он тоже понадобится нам в следующем шаге. В заверешении отмечаем галочку «Показать уведомления» и жмём кнопку «Сохранить».

    Читайте также:  выслать настройки mms mts

    Также в данном случае прошу вас обратить внимание на защищенный протокол https:// адреса получения обновлений. Если ваш сайт поддерживает https:// , то вы сможете получать личную информацию пользователей в уведомлении (email, адрес, фио), если же использовать незащищенный http:// , то эти параметры будут пустыми.

    Хотя как вариант (плохой вариант), можно попытаться затолкать всё необходимое в label .

    Шаг 3. Прием HTTP-уведомлений. PHP скрипт.

    В соответствии с предыдущим шагом я создаю файл receive.php в корне сайта. Содержимое файла будет зависеть от того, какие действия вы будете предпринимать после получения уведомления.

    Сейчас мы рассмотрим только то, как получить параметры платежа и сделать проверку того, что все полученные данные верны.

    Полный список параметров уведомлений вы найдёте здесь, в документации Яндекса.

    В последние годы я долго не знал, что мне делать с сайтом misha.blog, ведь он практически не приносит никакого профита, но недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

    Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

    Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.

    источник

    Уведомление о входящем переводе

    Уведомление отправляется, если:

    Формат запроса

    Уведомление отправляется как HTTP-запрос на адрес, указанный в настройках счета, в следующем формате:

    Яндекс.Деньги делают три попытки доставить уведомление: сразу при получении перевода, затем — через 10 минут, последняя — через час.

    Для приема уведомлений рекомендуется использовать протокол HTTPS. Обратите внимание, что получение контактной информации об отправителе в уведомлениях возможно только при использовании этого протокола. При использовании протокола HTTP контактные данные в уведомлении передаваться не будут.

    Если уведомления не приходят, проверьте настройки: правильно ли указан адрес вашего сервера и доступен ли сервер сейчас (используйте кнопку «Протестировать»). При этом запись о входящем переводе сохранится в истории кошелька (при отправке тестовых уведомлений запись в истории не сохраняется).

    Для приема уведомлений рекомендуется использовать протокол HTTPS. Обратите внимание, что получение контактной информации об отправителе в уведомлениях возможно только при использовании этого протокола. При использовании протокола HTTP контактные данные в уведомлении передаваться не будут.

    Для переводов из кошелька — p2p-incoming

    Для переводов с произвольной карты — card-incoming .

    operation_id string Идентификатор операции в истории счета получателя. amount amount Сумма операции. withdraw_amount amount Сумма, которая списана со счета отправителя. currency string

    Код валюты счета пользователя. Всегда 643 (рубль РФ согласно ISO 4217).

    Для переводов из кошелька — номер счета отправителя.

    Для переводов с произвольной карты — параметр содержит пустую строку.

    Читайте также:  state of decay yose day one edition настройки графики

    Для переводов из кошелька — перевод защищен кодом протекции.

    Для переводов с произвольной карты — всегда false.

    источник

    Уведомления

    Самый простой способ получать информацию о переводах — подключить уведомления по электронной почте в настройках кошелька на Яндексе. Сообщения будут приходить на адрес, привязанный к кошельку.

    Если вы хотите мгновенно узнавать о поступлении денег и сразу идентифицировать каждый перевод, включите HTTP-уведомления. Сервис будет передавать данные о сумме, значении поля label, а также контактные данные отправителя (контактные данные отправителя передаются только по HTTPS-соединению.)

    HTTP-уведомления можно получать только на один адрес сервера. Если у вас несколько сайтов и разные формы, с помощью которых вы собираете переводы на один кошелек в Яндекс.Деньгах, на сервере нужно настроить разбор поля label. Например: label=XXyyyyyy, где ХХ — ID магазина, а уууууу — номер транзакции.

    HTTP-уведомления

    Уведомление отправляется при получении перевода из кошелька или с банковской карты.

    Уведомление не отправляется при пополнении с баланса мобильного.

    Формат запроса

    Уведомление отправляется как HTTP-запрос на адрес, указанный в настройках кошелька, в следующем формате:

    каждый параметр уведомления указывается в виде пары «ключ=значение» в виде параметра POST-запроса;

    Прием уведомления

    Яндекс.Деньги делают три попытки доставить уведомление: сразу при получении перевода, затем — через 10 минут, последняя — через час.

    Для приема уведомлений рекомендуется использовать протокол HTTPS (получение контактной информации об отправителе в уведомлениях возможно только по этому протоколу; по HTTP контакты не передаются).

    Если уведомления не приходят, проверьте настройки: правильно ли указан адрес вашего сервера и доступен ли сервер сейчас (используйте кнопку Протестировать). При этом запись о входящем переводе сохранится в истории кошелька (при отправке тестовых уведомлений запись в истории не сохраняется).

    Параметры уведомления

    ФИО и контакты отправителя перевода (указывает отправитель, если не запрашивались, параметры содержат пустую строку)

    Адрес доставки (указывает отправитель, если адрес не запрашивался, параметры содержат пустую строку)

    Параметр Тип Описание
    Передаются по HTTP
    notification_type string Для переводов из кошелька — p2p-incoming. Для переводов с произвольной карты — card-incoming.
    operation_id string Идентификатор операции в истории счета получателя.
    amount amount Сумма, которая зачислена на счет получателя.
    withdraw_amount amount Сумма, которая списана со счета отправителя.
    currency string Код валюты — всегда 643 (рубль РФ согласно ISO 4217).
    datetime datetime Дата и время совершения перевода.
    sender string Для переводов из кошелька — номер счета отправителя. Для переводов с произвольной карты — параметр содержит пустую строку.
    codepro boolean Для переводов из кошелька — перевод защищен кодом протекции. Для переводов с произвольной карты — всегда false.
    label string Метка платежа. Если ее нет, параметр содержит пустую строку.
    sha1_hash string SHA-1 hash параметров уведомления.
    unaccepted boolean Перевод еще не зачислен. Получателю нужно освободить место в кошельке или использовать код протекции (если codepro=true).
    Передаются только по HTTPS
    lastname string Имя.
    firstname string Фамилия.
    fathersname string Отчество.
    email string Адрес электронной почты отправителя перевода. Если email не запрашивался, параметр содержит пустую строку.
    phone string Телефон отправителя перевода. Если телефон не запрашивался, параметр содержит пустую строку.
    city string Город.
    street string Улица.
    building string Дом.
    suite string Корпус.
    flat string Квартира.
    zip string Индекс.

    ФИО и контакты отправителя перевода (указывает отправитель, если не запрашивались, параметры содержат пустую строку)

    Адрес доставки (указывает отправитель, если адрес не запрашивался, параметры содержат пустую строку)

    Параметр Тип Описание
    Передаются по HTTP
    notification_type string Для переводов из кошелька — p2p-incoming. Для переводов с произвольной карты — card-incoming.
    operation_id string Идентификатор операции в истории счета получателя.
    amount amount Сумма, которая зачислена на счет получателя.
    withdraw_amount amount Сумма, которая списана со счета отправителя.
    currency string Код валюты — всегда 643 (рубль РФ согласно ISO 4217).
    datetime datetime Дата и время совершения перевода.
    sender string Для переводов из кошелька — номер счета отправителя. Для переводов с произвольной карты — параметр содержит пустую строку.
    codepro boolean Для переводов из кошелька — перевод защищен кодом протекции. Для переводов с произвольной карты — всегда false.
    label string Метка платежа. Если ее нет, параметр содержит пустую строку.
    sha1_hash string SHA-1 hash параметров уведомления.
    unaccepted boolean Перевод еще не зачислен. Получателю нужно освободить место в кошельке или использовать код протекции (если codepro=true).
    Передаются только по HTTPS
    lastname string Имя.
    firstname string Фамилия.
    fathersname string Отчество.
    email string Адрес электронной почты отправителя перевода. Если email не запрашивался, параметр содержит пустую строку.
    phone string Телефон отправителя перевода. Если телефон не запрашивался, параметр содержит пустую строку.
    city string Город.
    street string Улица.
    building string Дом.
    suite string Корпус.
    flat string Квартира.
    zip string Индекс.

    Формат ответа

    Уведомление считается принятым, если получатель ответил на запрос кодом HTTP 200 OK.

    Удостоверение подлинности и целостности уведомления

    Один из параметров уведомления, sha1_hash, содержит значение хэш-функции SHA-1 от свертки параметров уведомления совместно с секретным словом.

    Секретное слово для проверки уведомлений используется как разделяемый секрет между Яндекс.Деньгами и разработчиком приложения. Благодаря этому подделать уведомление невозможно. Секретное слово можно получить в настройках HTTP-уведомлений для вашего кошелька.

    Всегда проверяйте значение параметра sha1_hash. Это нужно, чтобы удостовериться:

    в целостности данных уведомления;

    в том, что уведомление отправлено Яндекс.Деньгами.

    Чтобы проверить целостность и подлинность уведомления, рассчитайте хэш по алгоритму, приведенному ниже. Сравните полученные данные со значением параметра sha1_hash в уведомлении.

    Шаг 1. Сформируйте строку из параметров уведомления в кодировке UTF-8 (где notification_secret — это секретное слово для проверки уведомлений).

    Пример строки параметров с меткой платежа:

    Шаг 2. Вычислите значение хэш-функции SHA-1 от полученной строки.

    Шаг 3. Отформатируйте полученный результат в HEX-кодированном виде.

    Пример рассчитанного значения параметра sha1_hash:

    Примеры уведомлений

    Уведомление о переводе с карты с запросом ФИО и адреса отправителя (по HTTPS):

    источник

    Добавить комментарий