Интеграция stripe в проект Django TypeError

Я новичок в Django и Stripe API. Я следую документу Stripe и скопировал код из документа в свой файл view.py:

это мой файл views.py

from django.shortcuts import render,redirect
from django.conf import settings
from django.urls import reverse
from django.views import View
import stripe
stripe.api_key = settings.STRIPE_SECRET_KEY

class Create_checkout_session (View):
    def post(self, request, *args, **kwargs):
        DOMAIN = "http://127.0.0.1:8000"
        checkout_session = stripe.checkout.Session.create(
                line_items=[
                    {
                        # Provide the exact Price ID (e.g. pr_1234) of the product you want to sell
                        'price': 'price_id',
                        'quantity': 1,
                    },
                ],
                payment_method_types=[
                'card',
                ],
                # mode can be subscription, setup, payment
                mode='payment',
                success_url=DOMAIN+'/success/',
                cancel_url=DOMAIN+'/cancel/',
            )

       
        return redirect(checkout_session.url, code=303)

Вот мой urls.py в платежном приложении:

from django.urls import path, include

#import views.py
from . import views
app_name ='payment'
#set urls for the app
urlpatterns = [
   path('create-checkout-session/',views.Create_checkout_session, name='create-checkout-session')
]

Сообщение об ошибке, которое я имею, когда я отображаю эту страницу, я имею:

TypeError at /create-checkout-session/ init() принимает 1 позиционный аргумент, но было задано 2 Метод запроса: GET URL запроса: http://127.0.0.1:8000/create-checkout-session/. Версия Django: 3.2.8 Тип исключения: TypeError Значение исключения:
init() принимает 1 позиционный аргумент, но было задано 2 Местоположение исключения: /Users/hannah/Desktop/TDMock/venv/lib/python3.9/site-packages/django/core/handlers/base.py, строка 181, in _get_response Python Executable: /Users/hannah/Desktop/TDMock/venv/bin/python

.

Я поместил секретный ключ и открытый ключ stripe в файл настроек. Что еще я должен сделать, чтобы интеграция работала? Большое спасибо.

Я полагаю, что ваше представление основано на классе, поэтому в нем отсутствует вызов ".as_view()". Напишите его следующим образом. views.Create_checkout_session.as_view() в вашем файле urls.py.

from django.urls import path, include

#import views.py
from . import views
app_name ='payment'
#set urls for the app
urlpatterns = [
   path('create-checkout-session/',views.Create_checkout_session.as_view(), name='create-checkout-session')
]
Вернуться на верх