5cbe093400
schedule job for updeing bank status and az iranian bank gateway admin style
40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
import logging
|
|
from urllib.parse import unquote
|
|
|
|
from django.http import Http404
|
|
from django.shortcuts import render
|
|
from django.views.decorators.csrf import csrf_exempt
|
|
|
|
from azbankgateways.bankfactories import BankFactory
|
|
from azbankgateways.exceptions import AZBankGatewaysException
|
|
|
|
|
|
@csrf_exempt
|
|
def callback_view(request):
|
|
bank_type = request.GET.get("bank_type", None)
|
|
identifier = request.GET.get("identifier", None)
|
|
|
|
if not bank_type:
|
|
logging.critical("Bank type is required. but it doesnt send.")
|
|
raise Http404
|
|
|
|
factory = BankFactory()
|
|
bank = factory.create(bank_type, identifier=identifier)
|
|
try:
|
|
bank.verify_from_gateway(request)
|
|
except AZBankGatewaysException:
|
|
logging.exception("Verify from gateway failed.", stack_info=True)
|
|
return bank.redirect_client_callback()
|
|
|
|
|
|
@csrf_exempt
|
|
def go_to_bank_gateway(request):
|
|
context = {"params": {}}
|
|
for key, value in request.GET.items():
|
|
if key == "url" or key == "method":
|
|
context[key] = unquote(value)
|
|
else:
|
|
context["params"][key] = unquote(value)
|
|
|
|
return render(request, "azbankgateways/redirect_to_bank.html", context=context)
|