Как принимать JSON формат через php (Яндекс.Деньги)?

Использую яндекс API для приема информации о платеже. Яндекс отправляет данные на сайт JSON форматом, как принять эти данные?

Вот документация - https://tech.yandex.ru/money/doc/dg/reference/noti...
  • Вопрос задан
  • 616 просмотров
Пригласить эксперта
Ответы на вопрос 2
@entermix
А где там написано про JSON?

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

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

метод — POST;
каждый параметр уведомления указывается парой ключ/значение в виде параметра POST-запроса;
MIME-тип — application/x-www-form-urlencoded;
кодировка символов — UTF-8.


К Вам на сайт придет POST запрос, ловить примерно так:
if (isset($_POST['operation_id'])){
    // Делаем проверку подлинности запроса, послечего выполняем нужные действия на сайте
}
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. Какой JSON?!
Уведомление отправляется как HTTP-запрос на адрес, указанный в настройках счета, в следующем формате:

метод — POST;
каждый параметр уведомления указывается парой ключ/значение в виде параметра POST-запроса;
MIME-тип — application/x-www-form-urlencoded;
кодировка символов — UTF-8.

Данные будут в массиве $_POST. Вам нужно их просто сохранить в текстовый файл, чтобы увидеть. (страницу - не надо яндексу отдавать: она ему не нужна)))
В момент получения перед сохранением, Вы можете выполнить любые операции с данными (на основе проверенных данных уведомления о платеже от Яндекса), находящимися в Вашей базе данных. Например, обновить баланс пользователя на оплаченную сумму и т.д.

2. Внимательно проверяйте подлинность полученных параметров:
Удостоверение подлинности и целостности уведомления

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

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

Войдите, чтобы написать ответ

Похожие вопросы