これに答えるのを手伝ってくれる人に感謝します。私は Django e ラーニング サービスを実行していますが、これには 90 日間有効な 1 回払いのサブスクリプションが必要です。django-paypalを使用して支払いを統合しました。主な支払い方法として、Web Payments Standard の IPN (Instant Payment Notification) を使用しています。
質問 - IPN シグナルを受信するpayment_was_successful
と、次の許可をシグナルします。
def purchase_success(sender, **kwargs):
ipn_obj = sender
student = User.objects.get(username=str(ipn_obj.custom))
permission = Permission.objects.get(name="Subscribed")
student.user_permissions.add(permission)
payment_was_successful.connect(purchase_success)
サブスクリプションを 90 日で自動的に「期限切れ」にする方法を見つけようとしています。すなわち:
permission - Permission.objects.get(name="Subscribed")
student.user_permissions.remove(permission)