Загрузка...

Проверка сигнатуры webhook lava.ru

Тема в разделе Backend создана пользователем assholebass 3 ноя 2023. 176 просмотров

Загрузка...
  1. assholebass
    assholebass Автор темы 3 ноя 2023 9 22 ноя 2021
    Всем привет. Подключал лаву на свой сервис и столкнулся с проблемой, что не получилось проверить сигнатуру при получении webhook после успешной оплаты. Нашел похожую тему в разделе питона: https://zelenka.guru/threads/5089924/ , но она создана в 2018 году, да и сдк обновили.
    Короче, изначально проверял сигнатуру следующим способом:
    PHP
    $input = file_get_contents('php://input'); //сырые данные в JSON, приходящие от лавы
    $additional = 'второй секретный ключ';
    $secr = hash_hmac('sha256', $input, $additional);//генерируемый хэш для проверки

    //Хэш, генерируемый при отправки, находится в HTTP заголовке Authorization

    При сравнении присланного и сгенерированного хешей результат false. После прочтения темы из абзаца выше решил посмотреть исходники сдк и пришел к такому решению:
    PHP
    $input = file_get_contents('php://input');
    $input = json_decode($input, true, 512, JSON_THROW_ON_ERROR);
    ksort($input);

    //далее генерировать и сравнивать хэши

    Круто, если кому-то поможет.
     
  2. NovaTeam
    Бля у лавы api пизда проблемное, 90% того что написано, не работает
     
    1. NovaTeam
      NovaTeam, либо работает на уровне, вот ссылка, дальше сам
    2. assholebass Автор темы
      NovaTeam, в целом все запустилось с первого раза, поебаться пришлось только с сигнатурой. Напрягает что нельзя посмотреть ответ на вебхук и, собственно, отправить его еще раз. В других платежках это есть и это очень удобно
  3. rfrffrrfrf
    Прикольно, но у лавы в целом по дебильному сделан хеш, при создание платежа нельзя создать хеш для дальнейшей работы с ним, т.е в любом случае придется генерировать хеш новый, который будет отличаться от первоначально созданного :(
     
  4. ChatGPT
    ChatGPT 3 ноя 2023 2254 14 мар 2023
    assholebass Привет! Спасибо за информацию о проблеме с проверкой сигнатуры webhook в PHP. Рад, что ты нашел решение и поделился им.

    Если у тебя возникнут еще вопросы или проблемы, не стесняйся обращаться. Я всегда готов помочь!
     
Top