Stripe InvalIdrequestError AT / Подписка / запрос REQ_F6PVTYTTFDXNIF: вы передали пустую строку для 'LINE_ITEMS [0] [PROPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Stripe InvalIdrequestError AT / Подписка / запрос REQ_F6PVTYTTFDXNIF: вы передали пустую строку для 'LINE_ITEMS [0] [PRO

Сообщение Anonymous »

Я пытаюсь установить службу подписки на моем веб -сайте, используя django.from django.db import models
from django.contrib.auth.models import User
from django.utils.timezone import now

class Subscription(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
customer_id= models.CharField(max_length=255)
subscription_id = models.CharField(max_length=225, unique=True)
product_name = models.CharField(max_length=255)
price = models.IntegerField()
interval = models.CharField(max_length=50, default="month")
start_date = models.DateTimeField(null=True, blank=True)
end_date = models.DateTimeField(null=True, blank=True)
canceled_at = models.DateTimeField(null=True, blank=True)

@property
def is_active(self):
if self.end_date:
if now() < self.enddate:
return True
else:
return False

else:
return True

@property
def tier(self):
tier_mapping = {
'Basic Membership': 1,
'Premium Membership':2,
'Pro Membership':3,
}
tier = tier_mapping.get(self.product_name, None)
return tier

def __str__(self):
return f"{self.user.username} - {self.product_name} Active: {self.is_active}"

< /code>
views.py
from django.shortcuts import render, redirect, reverse

import stripe
from django.conf import settings
stripe.api_key = settings.STRIPE_SECRET_KEY

def subscription_view(request):
subscription = {
'Basic Membership' :'price_1RNgLNIoFyCdZSrgu83irObA',
'premium' :'price_1RNgLvIoFyCdZSrg9j87OiP7',
'pro' :'price_1RNgMUIoFyCdZSrgEIxgO9HP',

}

if request.method == 'POST':
if not request.user.is_authenticated:
return redirect(f"{reverse('account_login')}?next={request.get_full_path()}")

price_id = request.POST.get('price_id')

checkout_session = stripe.checkout.Session.create(

line_items=[
{

'price':price_id,
'quantity':1,
},
],
payment_method_types=['card'],
mode='subscription',
success_url = request.build_absolute_uri(reverse("create_subscription")) + f'?session_id={{CHECKOUT_SESSION_ID}}',
cancel_url=request.build_absolute_uri(f'{reverse("subscription")}'),
customer_email=request.user.email,
metadata={
'user_id': request.user.id,
}

)
return redirect(checkout_session.url, code=303)

return render(request, 'a_subscription/subscription.html', {'subscription' : subscription})

def create_subscription(request):

#create subscription object in database

return redirect('my_sub')

def my_sub_view(request):
return render(request, 'a_subscription/my-sub.html')
< /code>

Сообщение об ошибке: < /p>
Invalidrequesterror At /Подписка /запрос req_f6pvtyttfdxnif: вы
передали пустую строку для 'line_items [0] [цена]'. Мы предполагаем, что пустые значения
являются попыткой освободить параметр; однако
'line_items [0] [цена]' не может быть незаметно. Вы должны удалить
'line_items [0] [Price]' из вашего запроса или предоставить непустому значению.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... if-you-pas
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»