Private
Public Access
1
0

better error handling

This commit is contained in:
Sander Roosendaal
2018-12-20 21:29:13 +01:00
parent ab9579a048
commit 98900059f8
6 changed files with 48 additions and 77 deletions

View File

@@ -171,6 +171,17 @@ def update_subscription(rower,data,method='up'):
return True
else:
errors = result.errors.for_object("subscription")
codes = [str(e.code) for e in errors]
create_new = False
proceed_codes = ['81901','81910']
for c in codes:
if c in proceed_codes:
create_new = True
if create_new:
return create_subscription(rower,data)
return False
return False
@@ -237,7 +248,7 @@ def cancel_subscription(rower,id):
errormessages = []
try:
result = gateway.subscription.cancel(id)
messages.append("Subscription canceled")
themessages.append("Subscription canceled")
except:
errormessages.append("We could not find the subscription record in our customer database. We have notified the site owner, who will contact you.")
@@ -250,7 +261,8 @@ def cancel_subscription(rower,id):
return False, themessages, errormessages
rower.paidplan = None
basicplans = PaidPlan.objects.filter(price=0,paymentprocessor='braintree')
rower.paidplan = basicplans[0]
rower.teamplanexpires = timezone.now()
rower.planexpires = timezone.now()
rower.clubsize = 0

View File

@@ -0,0 +1,25 @@
<script src="https://js.braintreegateway.com/web/dropin/1.14.1/js/dropin.min.js"></script>
<script>
var form = document.querySelector('#payment-form');
var client_token = '{{ client_token }}';
braintree.dropin.create({
authorization: client_token,
container: '#bt-dropin',
paypal: {
flow: 'vault'
}
}, function (createErr, instance) {
form.addEventListener('submit', function (event) {
event.preventDefault();
instance.requestPaymentMethod(function (err, payload) {
if (err) {
console.log('Error', err);
return;
}
// Add the nonce to the form and submit
document.querySelector('#nonce').value = payload.nonce;
form.submit();
});
});
});
</script>

View File

@@ -83,31 +83,7 @@
</li>
</ul>
<script src="https://js.braintreegateway.com/web/dropin/1.14.1/js/dropin.min.js"></script>
<script>
var form = document.querySelector('#payment-form');
var client_token = '{{ client_token }}';
braintree.dropin.create({
authorization: client_token,
container: '#bt-dropin',
paypal: {
flow: 'checkout'
}
}, function (createErr, instance) {
form.addEventListener('submit', function (event) {
event.preventDefault();
instance.requestPaymentMethod(function (err, payload) {
if (err) {
console.log('Error', err);
return;
}
// Add the nonce to the form and submit
document.querySelector('#nonce').value = payload.nonce;
form.submit();
});
});
});
</script>
{% include 'braintreedropin.html' %}
{% endblock %}

View File

@@ -78,31 +78,7 @@
</li>
</ul>
<script src="https://js.braintreegateway.com/web/dropin/1.14.1/js/dropin.min.js"></script>
<script>
var form = document.querySelector('#payment-form');
var client_token = '{{ client_token }}';
braintree.dropin.create({
authorization: client_token,
container: '#bt-dropin',
paypal: {
flow: 'checkout'
}
}, function (createErr, instance) {
form.addEventListener('submit', function (event) {
event.preventDefault();
instance.requestPaymentMethod(function (err, payload) {
if (err) {
console.log('Error', err);
return;
}
// Add the nonce to the form and submit
document.querySelector('#nonce').value = payload.nonce;
form.submit();
});
});
});
</script>
{% include 'braintreedropin.html' %}
{% endblock %}

View File

@@ -87,31 +87,8 @@
</li>
</ul>
<script src="https://js.braintreegateway.com/web/dropin/1.14.1/js/dropin.min.js"></script>
<script>
var form = document.querySelector('#payment-form');
var client_token = '{{ client_token }}';
braintree.dropin.create({
authorization: client_token,
container: '#bt-dropin',
paypal: {
flow: 'checkout'
}
}, function (createErr, instance) {
form.addEventListener('submit', function (event) {
event.preventDefault();
instance.requestPaymentMethod(function (err, payload) {
if (err) {
console.log('Error', err);
return;
}
// Add the nonce to the form and submit
document.querySelector('#nonce').value = payload.nonce;
form.submit();
});
});
});
</script>
{% include 'braintreedropin.html' %}
{% endblock %}

View File

@@ -29,6 +29,7 @@ import re
import cgi
from icalendar import Calendar, Event
import rowers.braintreestuff as braintreestuff
import rowers.payments as payments
from django.shortcuts import render
from django.template.loader import render_to_string
@@ -1074,6 +1075,10 @@ def paidplans_view(request):
def billing_view(request):
r = getrequestrower(request)
if payments.is_existing_customer(r):
url = reverse(upgrade_view)
return HttpResponseRedirect(url)
if request.method == 'POST':
billingaddressform = RowerBillingAddressForm(request.POST)
planselectform = PlanSelectForm(request.POST,paymentprocessor='braintree')