Django - Stripe - Обновление поля модели после успешной покупки?

В настоящее время я создаю игровое приложение, в котором зарегистрированные пользователи покупают наши цифровые монеты, чтобы играть в игры и разблокировать функции.

У меня установлен Stripe вместе с веб-хуком Stripe, и он работает правильно, поэтому пользователи могут покупать монеты. Я могу получать успешные платежи и видеть их через приложение Stripe с нулевыми проблемами.

Далее я хочу обновить поле модели с именем bankroll после успешной оплаты.

Так, когда вошедший в систему пользователь покупает, скажем, 2 000 монет за $100.00, поле bankroll обновляется.

Как я могу сделать это с помощью моего текущего кода?

Я не могу заставить это работать так, как я хочу, судя по тому, что я тестировал.

Модель UserInfo содержит основную информацию о пользователе.

Модели Price и Product относятся к продукту Stripe.

На стоимость монет к продукту Stripe ссылается поле credits в модели Price.

Цена каждого credits указывается в поле price в Price модели.

Скриншоты ниже, а также мой код.

Администратор банковского счета

enter image description here

stripe-product-admin enter image description here

модальный мотив монет на передней панели

enter image description here

Любая помощь будет принята с радостью!

Спасибо!

models.py

class UserInfo(models.Model):
    bankroll = models.IntegerField(default=0)

    def get_display_price(self):
        return "{0:.2f}".format(self.bankroll / 100)


class Price(models.Model):
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    enable_price = models.BooleanField()
    stripe_price_id = models.CharField(max_length=100)
    credits = models.CharField(max_length=100, null=True)
    price = models.IntegerField(default=0)  # cents

    def get_display_price(self):
        return "{0:.2f}".format(self.price / 100)


class Product(models.Model):
    name = models.CharField(max_length=100)
    stripe_product_id = models.CharField(max_length=100)
    url = models.URLField()

    def __str__(self):
        return self.name
    
    class Meta:
        verbose_name_plural = "Products"

views.py

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