Не удается настроить метод оплаты stripe

Я пытаюсь закончить функцию оплаты в моем приложении, впервые пытаюсь сделать это, следуя руководству Брайана Данна. Я добавил SITE_URL как он сделал, но я не знаю, нужно ли мне это, так как я добавил прокси в мой package.json и использую axios для api вызовов, я могу использовать axios вместо этого в этом случае? И когда я нажимаю на кнопку "Proceed to checkout", url не работает, я попробовал изменить его на form.control, он перенаправляется на url, но форма stripe prebuilt и продукт тоже не отображаются.

Урлы:

urlpatterns = [
    path('', views.getRoutes, name="get-routes"),
    path('users/register/', views.registerUser, name="register"),
    path('users/login/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
    path('products/', views.getProducts, name="get-products"),
    path('products/<str:pk>', views.getProduct, name="get-product"),
    path('user/profile/', views.getUserProfile, name="get-user-profile"),
    path('users/', views.getUsers, name="get-users"),
    path('search/', ProductFilter.as_view(), name="search-product"),
    path('create-checkout-session/', StripeCheckoutView.as_view()),
]

Просмотров:

class StripeCheckoutView(APIView):
    def post(self, request):
        try:
            checkout_session = stripe.checkout.Session.create(
                line_items=[
                    {
                        'currency': 'usd',
                        'price': 'price_1MAtSLJU3RVFqD4TnNYWOxPO',
                        'quantity': 1,
                    },
                ],
                payment_method_types=['card'],
                mode='payment',
                success_url=settings.SITE_URL +
                '/?success=true&session_id={CHECKOUT_SESSION_ID}',
                cancel_url=settings.SITE_URL + '/' + '?canceled=true',
            )
            return redirect(checkout_session.url)
        except:
            return Response(
                {'error': 'Something went wrong when creating stripe checkout session'},
                status=status.HTTP_500_INTERNAL_SERVER_ERROR
            )

cartScreen.js:

config.js:

import { useMemo } from "react";
import { useLocation } from "react-router";

export const API_URL = "http://localhost:8000";

export const useQuery = () => {
  const { search } = useLocation();

  return useMemo(() => new URLSearchParams(search), [search]);
};

app.js:

настройки:

package.json:

"proxy": "http://127.0.0.1:8000/",

Вы должны обернуть свои компоненты внутри Form, чтобы перенаправление формы работало правильно.

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