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?
- Требуется ли какая-либо дополнительная аутентификация или настройка заголовка, которые могут отсутствовать?
- Мне нужно срочно решить эту проблему, так как эта проблема блокирует процесс подтверждения платежа и синхронизации данных для всех пользователей.
Буду признателен за вашу помощь и предложения. Спасибо вам, ребята