Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- model:
- class Subscription(models.Model):
- user = models.ForeignKey(User)
- stripe_id = models.CharField(max_length=255)
- subscribed = models.BooleanField(default=False)
- created = models.DateTimeField(auto_now_add=True)
- updated = models.DateTimeField(auto_now=True)
- expires = models.DateTimeField(null=True, blank=True)
- def save(self, *args, **kwargs):
- self.expires = datetime.datetime.now() + datetime.timedelta(365)
- super(Subscription, self).save(*args, **kwargs)
- view:
- @require_login
- def payment(request):
- context = {}
- if request.method == 'POST':
- token = request.POST['stripeToken']
- customer = stripe.Customer.create(
- description = request.POST['email'],
- card = token,
- plan = 'premium_annual',
- email = request.POST['email'],
- )
- subscription = Subscription(
- user=request.user,
- stripe_id=customer.id,
- subscribed=True,
- )
- try:
- if Subscription.objects.filter(user=request.user).exists():
- context['subscription'] = subscription
- else:
- subscription.save()
- #UserProfile.objects.get(user=request.user, is_premium=True).save()
- except IntegrityError:
- messages.error(request, "Subscription already exists.")
- context['publishable'] = settings.STRIPE_PUBLISH
- return HttpResponseRedirect("/activities/all/")
- form = StripePaymentForm()
- if Subscription.objects.filter(user=request.user).exists():
- messages.error(request, "Subscription already exists.")
- return HttpResponseRedirect("/activities/all/")
- context['form'] = form
- context['no_left_bar'] = True
- return render_to_response('signup/premium_payment.html', context, context_instance=RequestContext(request))
Add Comment
Please, Sign In to add comment