Handle failed credit cards.
parent
7e84601d13
commit
d464660495
|
@ -26,6 +26,11 @@
|
||||||
<div class="pro-hero">
|
<div class="pro-hero">
|
||||||
snip<span>t</span> <span class="pro">Pro</span>
|
snip<span>t</span> <span class="pro">Pro</span>
|
||||||
</div>
|
</div>
|
||||||
|
{% if request.GET.declined %}
|
||||||
|
<div class="alert alert-error" style="margin: 30px;">
|
||||||
|
<strong>Your card was declined.</strong> You have not been charged. Please try again.
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
<div class="static-box">
|
<div class="static-box">
|
||||||
<form class="form-horizontal" id="pro-signup" method="post" action="/pro/signup/complete/">
|
<form class="form-horizontal" id="pro-signup" method="post" action="/pro/signup/complete/">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
|
|
15
views.py
15
views.py
|
@ -56,7 +56,6 @@ def homepage(request):
|
||||||
'users_count': User.objects.all().count(),
|
'users_count': User.objects.all().count(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ajax_request
|
@ajax_request
|
||||||
def lexers(request):
|
def lexers(request):
|
||||||
lexers = get_lexers_list()
|
lexers = get_lexers_list()
|
||||||
|
@ -83,14 +82,12 @@ def lexers(request):
|
||||||
|
|
||||||
return {'objects': objects}
|
return {'objects': objects}
|
||||||
|
|
||||||
|
|
||||||
def login_redirect(request):
|
def login_redirect(request):
|
||||||
if request.user.is_authenticated():
|
if request.user.is_authenticated():
|
||||||
return HttpResponseRedirect('/' + request.user.username + '/')
|
return HttpResponseRedirect('/' + request.user.username + '/')
|
||||||
else:
|
else:
|
||||||
return HttpResponseRedirect('/')
|
return HttpResponseRedirect('/')
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@render_to('pro-signup.html')
|
@render_to('pro-signup.html')
|
||||||
def pro_signup(request):
|
def pro_signup(request):
|
||||||
|
@ -98,7 +95,6 @@ def pro_signup(request):
|
||||||
return HttpResponseRedirect('/' + request.user.username + '/')
|
return HttpResponseRedirect('/' + request.user.username + '/')
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@render_to('pro-signup-complete.html')
|
@render_to('pro-signup-complete.html')
|
||||||
def pro_signup_complete(request):
|
def pro_signup_complete(request):
|
||||||
|
@ -110,9 +106,12 @@ def pro_signup_complete(request):
|
||||||
|
|
||||||
plan = 'snipt-pro-monthly'
|
plan = 'snipt-pro-monthly'
|
||||||
|
|
||||||
customer = stripe.Customer.create(card=token,
|
try:
|
||||||
plan=plan,
|
customer = stripe.Customer.create(card=token,
|
||||||
email=request.user.email)
|
plan=plan,
|
||||||
|
email=request.user.email)
|
||||||
|
except stripe.CardError:
|
||||||
|
return HttpResponseRedirect('/pro/signup/?declined=true')
|
||||||
|
|
||||||
profile = request.user.profile
|
profile = request.user.profile
|
||||||
profile.is_pro = True
|
profile.is_pro = True
|
||||||
|
@ -124,7 +123,6 @@ def pro_signup_complete(request):
|
||||||
else:
|
else:
|
||||||
return HttpResponseBadRequest()
|
return HttpResponseBadRequest()
|
||||||
|
|
||||||
|
|
||||||
def sitemap(request):
|
def sitemap(request):
|
||||||
|
|
||||||
tags = Tag.objects.filter(snipt__public=True)
|
tags = Tag.objects.filter(snipt__public=True)
|
||||||
|
@ -136,7 +134,6 @@ def sitemap(request):
|
||||||
context_instance=RequestContext(request),
|
context_instance=RequestContext(request),
|
||||||
mimetype='application/xml')
|
mimetype='application/xml')
|
||||||
|
|
||||||
|
|
||||||
@render_to('tags.html')
|
@render_to('tags.html')
|
||||||
def tags(request):
|
def tags(request):
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue