我正在开发一个 Django 应用程序。我需要在应用程序中包含订阅服务。我在 is_subscribed
模型中使用字段 subscription_start
、subscription_end
和 user profile
。我正在使用 Razorpay 进行支付集成。成功付款后,我更新订阅状态如下:
UserProfile.objects.filter(user=request.user).update(is_subscribed=True,subscription_start=datetime.datetime.now(),subscription_end=datetime.datetime.now()+datetime.timedelta(days))
如何在 UserProfile
小于当前时间时自动更新 subscription_end
。我希望模型在时间结束后立即更新为 is_subscribed
as False。截至目前,每当用户访问任何网址时,我都会检查用户的订阅是否有效。如果没有,那么我正在以这种方式更新模型
user = UserProfile.objects.filter(user=request.user).values()
use1 = UserProfile.objects.filter(user=request.user,subscription_end__gte=datetime.datetime.now()).values()
if not use1[0]['is_admin']:
UserProfile.objects.filter(user=request.user).update(is_subscribed=False,joined=[])
。订阅结束后立即更新的正确方法是什么。
答案 0 :(得分:0)
您需要使用 RazorPay Webhooks,特别是 Subscriptions Webhooks。
您需要配置您的 RazorPay 帐户以触发您的订阅事件并指定将处理该特定事件的 Django 应用程序端点。您需要构建自己的端点,以便在触发该事件时处理该事件。 [Follow This Guide to configure your RazorPay Account]
您需要等待的 webhook 事件是 subscription.pending
。