Skip to content

Instantly share code, notes, and snippets.

@cmsimike
Created August 31, 2012 16:46
Show Gist options
  • Save cmsimike/3555706 to your computer and use it in GitHub Desktop.
Save cmsimike/3555706 to your computer and use it in GitHub Desktop.
Fixes
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))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment