· 7 years ago · Apr 25, 2018, 07:02 PM
1@login_required(login_url='login')
2def payment(request):
3 if request.method == 'POST':
4 action = "https://simplepayments.herokuapp.com/pay/" # Fixme Todo: parametrize
5 amount = order.total
6 sid = "italiancrea2016" # Fixme Todo: parametrize
7 success_url = request.build_absolute_uri(reverse("payment_result"))
8 cancel_url = request.build_absolute_uri(reverse("payment_result"))
9 error_url = request.build_absolute_uri(reverse("payment_result"))
10 secret_key = "3328913f961f8b2bfb78000b3f9da02b" # Fixme Todo: parametrize
11
12 checksum = "pid={}&sid={}&amount={}&token={}".format(pid, sid, amount, secret_key) # Fixme Todo: parametrize, secret key!
13
14
15 game_ids = [g.id for g in order._games.all()]
16
17 # The form for the payment is hard-coded on the view.
18 # just pass corresponding variables to the template
19 return render(request, 'store/purchase.html', {'user': request.user,
20 'cart': to_client_cart(game_ids),
21 'action': action,
22 'pid': pid,
23 'sid': sid,
24 'amount': amount,
25 'success_url': success_url,
26 'cancel_url': cancel_url,
27 'error_url': error_url,
28 'checksum': checksum})
29
30 else:
31 # This view only supports GET
32 return HttpResponse(status=405, content="Invalid method.")