Я сталкиваюсь с критической проблемой, в которой мой бэкэнд django не может получить подтверждение от Square о том, был ли оплата завершен. < /p> Детали среды: < /strong> < /p>
python: 3.13.2 < /li>
django: 5.1.6 < /li>
django: 5.1. SDK: 43.0.0.20250618 < /li>
< /ul>
Сводка задачи: < /strong> < /p>
Основной поток процесса оплаты заключается в следующем: < /p>
Пользователь. Страница оформления в квадрате, на которой пользователь завершает платеж. (https://api.mydomain.com/api/wallet/webhooks/square/ ) должен автоматически запускать Square, чтобы подтвердить платеж. Я проверил журналы сервера и постоянно получаю 401 несанкционированный ответ от попыток вызова Webhook Square. Информация:
Ниже приведен код бэкэнд, который я в настоящее время использую для обработки запросов CreateSquareorder, SquareWebHookView и VerifySquareorder. Я следил за последними руководящими принципами и лучшими практиками в соответствии с квадратной документацией: < /p>
Я сталкиваюсь с критической проблемой, в которой мой бэкэнд django не может получить подтверждение от Square о том, был ли оплата завершен. < /p> [b] Детали среды: < /strong> < /p>
python: 3.13.2 < /li> django: 5.1.6 < /li> django: 5.1. SDK: 43.0.0.20250618 < /li> < /ul> Сводка задачи: < /strong> < /p> Основной поток процесса оплаты заключается в следующем: < /p>
Пользователь. Страница оформления в квадрате, на которой пользователь завершает платеж. (https://api.mydomain.com/api/wallet/webhooks/square/ ) должен автоматически запускать Square, чтобы подтвердить платеж. Я проверил журналы сервера и постоянно получаю 401 несанкционированный ответ от попыток вызова Webhook Square. Информация: [/b] Ниже приведен код бэкэнд, который я в настоящее время использую для обработки запросов CreateSquareorder, SquareWebHookView и VerifySquareorder. Я следил за последними руководящими принципами и лучшими практиками в соответствии с квадратной документацией: < /p> [code]import uuid from decimal import Decimal from django.utils import timezone from django.conf import settings from dateutil.relativedelta import relativedelta from rest_framework.views import APIView from rest_framework.response import Response from rest_framework.permissions import IsAuthenticated, AllowAny from rest_framework import status from square import Square from square.environment import SquareEnvironment import hmac import hashlib import base64 from django.views.decorators.csrf import csrf_exempt from django.utils.decorators import method_decorator from rest_framework.request import Request from rest_framework.parsers import JSONParser from users.models import CustomUser from subscription.models import Subscription from wallet.models import Wallet, Transaction, SecurityDeposit
class VerifySquareOrder(APIView): permission_classes = [AllowAny]
def post(self, request): try: payment_id = request.data.get("payment_id") if not payment_id: return Response({"error": "Payment ID is required"}, status=400)
if payment_response.errors: print(f"Square Payment API Errors: {payment_response.errors}") return Response({"error": "Failed to retrieve Square payment", "details": payment_response.errors}, status=400)
payment_data = payment_response.payment if payment_data.status != "COMPLETED": return Response({"error": f"Payment not completed. Current status: {payment_data.status}"}, status=400)
order_id = payment_data.order_id if not order_id: return Response({"error": "Order ID not found for this payment."}, status=400)
order_response = client.orders.retrieve_order(order_id=order_id, location_id=SQUARE_LOCATION_ID) if order_response.errors: print(f"Square Order API Errors: {order_response.errors}") return Response({"error": "Failed to retrieve Square order associated with payment", "details": order_response.errors}, status=400)
# Here i will create records that i need in my website
return Response({"message": "Payment verified and subscription activated."})
except CustomUser.DoesNotExist: print("User not found based on metadata user_id.") return Response({"error": "User specified in Square order metadata not found."}, status=404) except Exception as e: print(f"Error verifying Square order: {e}") return Response({"error": str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) [/code] [b] Что мне нужно: [/b]
Почему Square возвращает ошибку 401 для URL Webhook?>
Я сталкиваюсь с критической проблемой, в которой мой бэкэнд django не может получить подтверждение от Square о том, был ли оплата завершен.
Вот подробности среды для справки:
У меня есть php-код для регулярного платежа в пользу GP, но платежный шлюз завершает работу из-за ошибки 31.
В службе поддержки мне сказали, что подпись имеет кодировку 2x Base64, и поэтому вы получают ошибку подписи.
В коде обратите внимание на эту...
Я хочу подражать поведению страницы подтверждения удаления перед сохранением
определенных моделей в администраторе. В моем случае, если я изменяю один объект,
определенные другие должны быть удалены, поскольку они зависят от сейчас устаревшего...
Я использую Omnipay для платежей PayPal, я получаю эту ошибку:
Payment failed: Authentication failed due to invalid authentication credentials or a missing Authorization header.
Это мой код для продажи, я проверил с несколькими учетными записями...
Я не знаю, что означает эта ошибка. Я много искал в Google, но не смог понять, почему получаю эту ошибку.
E/FirebaseAuth: SMS verification code request failed: unknown status code: 17006 null
Я пытаюсь аутентифицировать клиента Android с помощью...