diff options
Diffstat (limited to 'inventory/views.py')
-rw-r--r-- | inventory/views.py | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/inventory/views.py b/inventory/views.py index 681009d..88f7199 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -40,7 +40,19 @@ from django.http import JsonResponse def fulfillment(request): - return render(request, 'inventory/fulfillment.html') + order_id = request.GET.get('order_id') + if order_id is None: + return HttpResponse("Error while loading the page") + order_instance = Order.objects.get(order_id=order_id) + product = order_instance.product_id.all() + for item in range(len(product)): + if product[item].document: + filename = product[item].document.file.name.split('/')[-1] + response = HttpResponse(product[item].document.file, content_type='application/pdf') + response['Content-Disposition'] = 'inline; filename=%s' % filename + return response + else: + return render(request, 'inventory/fulfillment.html') def shipment(request): @@ -106,7 +118,7 @@ def pay(request): def payment(request): - # session_id = request.session.session_key + session_id = request.session.session_key name = request.GET.get('name') price = request.GET.get('price') merchant = request.GET.get('merchant') @@ -139,15 +151,25 @@ def payment(request): ) ) order_resp = backend_post("order", order) + try: + order_id = order_resp["order_id"] + except Exception as e: + return HttpResponse("Please refresh and try again") # Checking Payment Status and Prompting for Payment pay_params = dict( instance="default", - order_id=order_resp["order_id"], - # session_id=session_id, + order_id=order_id, + session_id=session_id, ) pay_status = backend_get("check-payment", pay_params) - payment_redirect_url = pay_status["payment_redirect_url"] - return redirect(payment_redirect_url) + if pay_status["paid"]: + base_url = request.build_absolute_uri().rsplit('/', 1)[0] + url = base_url+"/fulfillment?order_id="+order_resp["order_id"] + return redirect(url) + else: + if pay_status["payment_redirect_url"]: + payment_redirect_url = pay_status["payment_redirect_url"] + return redirect(payment_redirect_url) def backend_get(endpoint, params): |