test payments working (sort of)
This commit is contained in:
@@ -28,6 +28,7 @@ import isodate
|
||||
import re
|
||||
import cgi
|
||||
from icalendar import Calendar, Event
|
||||
import braintree
|
||||
|
||||
from django.shortcuts import render
|
||||
from django.template.loader import render_to_string
|
||||
@@ -50,7 +51,7 @@ from rowers.forms import (
|
||||
RaceResultFilterForm,PowerIntervalUpdateForm,FlexAxesForm,
|
||||
FlexOptionsForm,DataFrameColumnsForm,OteWorkoutTypeForm,
|
||||
MetricsForm,DisqualificationForm,disqualificationreasons,
|
||||
disqualifiers,SearchForm,
|
||||
disqualifiers,SearchForm,BrainTreeForm
|
||||
)
|
||||
from django.core.urlresolvers import reverse, reverse_lazy
|
||||
|
||||
@@ -139,6 +140,7 @@ from rowsandall_app.settings import (
|
||||
UNDERARMOUR_CLIENT_SECRET,UNDERARMOUR_CLIENT_KEY,
|
||||
RUNKEEPER_CLIENT_ID,RUNKEEPER_REDIRECT_URI,RUNKEEPER_CLIENT_SECRET,
|
||||
TP_CLIENT_ID,TP_REDIRECT_URI,TP_CLIENT_KEY,TP_CLIENT_SECRET,
|
||||
BRAINTREE_MERCHANT_ID,BRAINTREE_PUBLIC_KEY,BRAINTREE_PRIVATE_KEY
|
||||
)
|
||||
|
||||
from rowers.tasks_standalone import addcomment2
|
||||
@@ -1027,6 +1029,87 @@ def add_defaultfavorites(r):
|
||||
f.save()
|
||||
return 1
|
||||
|
||||
# Experimental - Payments
|
||||
@login_required()
|
||||
def payments_view(request):
|
||||
|
||||
r = getrequestrower(request)
|
||||
|
||||
gateway = braintree.BraintreeGateway(
|
||||
braintree.Configuration(
|
||||
braintree.Environment.Sandbox,
|
||||
merchant_id=BRAINTREE_MERCHANT_ID,
|
||||
public_key=BRAINTREE_PUBLIC_KEY,
|
||||
private_key=BRAINTREE_PRIVATE_KEY,
|
||||
)
|
||||
)
|
||||
|
||||
# add code to store customer_id
|
||||
|
||||
client_token = gateway.client_token.generate({
|
||||
"customer_id": r.id,
|
||||
})
|
||||
|
||||
return render(request,
|
||||
"payments.html",
|
||||
{
|
||||
'client_token':client_token,
|
||||
})
|
||||
|
||||
|
||||
@login_required()
|
||||
def checkouts_view(request):
|
||||
|
||||
r = getrequestrower(request)
|
||||
|
||||
if request.method != 'POST':
|
||||
url = reverse(payments_view)
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
# we're still here
|
||||
gateway = braintree.BraintreeGateway(
|
||||
braintree.Configuration(
|
||||
braintree.Environment.Sandbox,
|
||||
merchant_id=BRAINTREE_MERCHANT_ID,
|
||||
public_key=BRAINTREE_PUBLIC_KEY,
|
||||
private_key=BRAINTREE_PRIVATE_KEY,
|
||||
)
|
||||
)
|
||||
|
||||
form = BrainTreeForm(request.POST)
|
||||
if form.is_valid():
|
||||
nonce_from_the_client = form.cleaned_data['payment_method_nonce']
|
||||
amount = form.cleaned_data['amount']
|
||||
amount = str(amount)
|
||||
|
||||
result = gateway.transaction.sale({
|
||||
"amount": amount,
|
||||
"payment_method_nonce": nonce_from_the_client,
|
||||
"options": {
|
||||
"submit_for_settlement": True
|
||||
}
|
||||
})
|
||||
if result.is_success:
|
||||
transaction = result.transaction
|
||||
amount = transaction.amount
|
||||
messages.info(request,
|
||||
"We have successfully received your payment of {amount} Euro".format(
|
||||
amount=amount
|
||||
)
|
||||
)
|
||||
else:
|
||||
messages.error(request,"We are sorry but there was an error with the payment")
|
||||
url = reverse(payments_view)
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
else:
|
||||
messages.error(request,"There was an error in the payment form")
|
||||
url = reverse(payments_view)
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
url = reverse(payments_view)
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
|
||||
# User registration
|
||||
def rower_register_view(request):
|
||||
|
||||
Reference in New Issue
Block a user