Инициируйте пост-запрос оплаты paypal, возвращающий ошибку 404, но отображение url в бэкенде django корректно, синтаксических ошибок во фронтенде React нет

Мой сайт на React и Django развернут на render, когда я запускаю службу backend из render, инициирующий платежный url paypal отображается там, я также проверил Django urls, но когда я отправляю post запрос из frontend, я получаю 404 ошибку, и яyour text проверил правильно, у меня нет синтаксических ошибок, я отправляю правильные данные в backend, forward slash есть.

Я использую режим песочницы, я удалил идентификатор клиента и идентификатор секрета из settings.py и поместил их в переменную окружения render, так что вот как я получаю к ним доступ:

    <<<1><>>PAYPAL_CLIENT_ID
  • = os.getenv('PAYPAL_CLIENT_ID')<<<2><>>
  • PAYPAL_SECRET_CLIENT
  • = os.getenv('PAYPAL_SECRET_CLIENT')

у меня такое ощущение, что всякий раз, когда я нажимаю на кнопку «оплатить с помощью Paypal», чтобы отправить запрос, что-то блокирует ее, поэтому возникает ошибка 404.

Я просто не знаю, в чем проблема, я до сих пор пробовал все, любой, кто может помочь мне, я ценю спасибо

код бэкенда


@api_view(['POST'])
def initiate_paypal_payment(request):
    if request.method == 'POST' and request.user.is_authenticated:
        tx_ref = str(uuid.uuid4())
        user = request.user
        cart_id = request.data.get('cart_id')

        #checking if cart_id is available
        if not cart_id:
            return Response({"error": "Cart ID is required"}, status=status.HTTP_400_BAD_REQUEST)

        try:
            cart = Cart.objects.get(cart_id=cart_id)
        except Cart.DoesNotExist:
            return Response({"error": "Cart not found"}, status=status.HTTP_404_NOT_FOUND)

    
        from decimal import Decimal

        amount = sum(Decimal(cake.cake.price) * Decimal(cake.quantity) for cake in cart.cakes.all())
        tax = amount * Decimal('0.18')
        total = amount + tax

        payment = paypalrestsdk.Payment({
            "intent": "sale",
            "payer": {"payment method": "paypal"},
            "redirect_urls": {
                "return_url": f"{BASE_URL}/status?paymentStatus=success&tx_ref={tx_ref}",
                "cancel_url": f"{BASE_URL}/status?paymentStatus=cancel"
            },
            "transactions": [{
                "item_list": {
                    "items": [{
                        "name": "Cart-item",
                        "sku": "cart",
                        "price": f"{total:.2f}",
                        "currency": "USD",
                        "quantity": 1
                    }]
                },
                "amount": {
                    "total": f"{total:.2f}",
                    "currency": "USD"
                },
                "description": f"Payment for cart items for user"
            }]
        })

        transaction, created = Transaction.objects.get_or_create(
            tx_ref=tx_ref,
            cart=cart,
            user=user,
            amount=total,
            status='pending',
        )

        if payment.create():
            for link in payment.links:
                if link.rel == 'approval_url':
                    return Response({'approvalUrl': str(link.href)}, status=status.HTTP_201_CREATED)

        return Response({'error': payment.error}, status=status.HTTP_400_BAD_REQUEST)

это код фронтенда

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