Square Webhook не подтверждает, произведен ли платеж на Python-django или нет

Я столкнулся с критической проблемой, из-за которой мой сервер Django не может получить подтверждение от Square о том, был ли платеж завершен.

Вот подробная информация об окружающей среде для справки:

  • Python: 3.13.2
  • Джанго: 5.1.6
  • Пакет SDK для Square: 43.0.0.20250618

Краткое описание проблемы:

Основной процесс оплаты выглядит следующим образом:

  • Пользователь создает заказ с помощью метода CreateSquareOrder.
  • После этого на сайте Square будет успешно создана страница оформления заказа, на которой пользователь завершит платеж.
  • Платеж обработан правильно — я могу подтвердить, что средства поступили на мой счет в Square.

Однако проблема возникает после завершения оплаты:

  • Веб-интерфейс, который я настроил (https://api.mydomain.com/api/wallet/webhooks/square/), должен автоматически запускаться Square для подтверждения платежа.
  • К сожалению, этот веб-узел не запускается должным образом. Я проверил логи сервера и постоянно получаю 401 несанкционированный ответ на попытки вызова веб-узла Square.
  • Из—за сбоя webhook последующая логика в моем приложении Django, в частности метод VerifySquareOrder, не выполняется, что означает, что критически важные записи приложения никогда не создаются.

Дополнительная информация:

Ниже приведен серверный код, который я в настоящее время использую для обработки запросов CreateSquareOrder, SquareWebhookView и VerifySquareOrder. Я следовал рекомендациям по последней версии и рекомендуемым практикам в соответствии с документацией Square:

То, что мне нужно:

  • Не могли бы вы, пожалуйста, уточнить, почему Square возвращает ошибку 401 для URL-адреса webhook?
  • Требуется ли какая-либо дополнительная аутентификация или настройка заголовка, которые могут отсутствовать?
  • Мне нужно срочно решить эту проблему, так как эта проблема блокирует процесс подтверждения платежа и синхронизации данных для всех пользователей.

Буду признателен за вашу помощь и предложения. Спасибо вам, ребята

Вернуться на верх