Stripe Checkout Session: Отсутствие session_id в запросе после успешной оплаты в Django
Я работаю над проектом Django, в котором пользователи могут покупать подписки на различные пакеты с помощью Stripe Checkout. Однако после успешной оплаты я сталкиваюсь с проблемой, когда идентификатор сессии не передается в запросе при перенаправлении на представление payment_success.
здесь models.py:
class Package(models.Model):
name = models.CharField(max_length=255)
description = models.TextField()
price_monthly = models.DecimalField(max_digits=10, decimal_places=2)
price_annually = models.DecimalField(max_digits=10, decimal_places=2)
tax_percentage = models.DecimalField(max_digits=5, decimal_places=2, default=0)
def __str__(self):
return self.name
class Subscription(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
stripe_customer_id = models.CharField(max_length=255)
stripe_subscription_id = models.CharField(max_length=255)
package = models.ForeignKey(Package, on_delete=models.CASCADE)
interval = models.CharField(max_length=10) # 'monthly' or 'annual'
active = models.BooleanField(default=True)
Вот соответствующие мнения:
Issue. После успешной оплаты пользователь перенаправляется в представление payment_success, но в запросе не указан идентификатор сессии, в результате чего в запросе не указан идентификатор сессии.
Ожидаемое поведение Пользователь должен быть перенаправлен на представление payment_success с указанием session_id в качестве параметра запроса, что позволит представлению получить данные о сессии и отобразить информацию о подписке.
Фактическое поведение Пользователь перенаправляется на страницу пакета, а не на экран успеха из-за ошибки
вопрос, как я могу исправить эту ошибку invoice.payment_succeeded и есть checkout.session.completed все появляющиеся коды [500]
В вебхуке я получаю [500] Post however
вам следует обернуть CHECKOUT_SESSION_ID
одинарной фигурной скобкой вместо двойной фигурной скобки.
Измените session_id={{CHECKOUT_SESSION_ID}}
на session_id={CHECKOUT_SESSION_ID}
и попробуйте снова.