bug fix
This commit is contained in:
parent
a318185147
commit
7ff91acb82
2 changed files with 32 additions and 28 deletions
|
|
@ -104,16 +104,15 @@ class PaymentRequest(models.Model):
|
|||
gateway_class = get_gateway_class(self.gateway)
|
||||
return gateway_class.objects.get(payment_request=self)
|
||||
|
||||
def set_gateway(self, data):
|
||||
def set_gateway(self, gateway_label):
|
||||
preferred_gateways = self.get_preferred_gateways()
|
||||
for gateway_label in preferred_gateways:
|
||||
if gateway_label in data:
|
||||
self.gateway = gateway_label
|
||||
gateway_class = get_gateway_class(gateway_label)
|
||||
pg = gateway_class.objects.create(payment_request=self)
|
||||
pg.payment_request = self
|
||||
if gateway_label in preferred_gateways:
|
||||
self.gateway = gateway_label
|
||||
gateway_class = get_gateway_class(gateway_label)
|
||||
pg = gateway_class.objects.create(payment_request=self)
|
||||
pg.payment_request = self
|
||||
|
||||
self.save()
|
||||
self.save()
|
||||
|
||||
if not self.gateway:
|
||||
raise Exception('No gateway')
|
||||
|
|
@ -122,7 +121,7 @@ class PaymentRequest(models.Model):
|
|||
def reference_number(self):
|
||||
gateway_tools = self.get_gateway_tools()
|
||||
if gateway_tools:
|
||||
return f'{self.gateway.value}{gateway_tools.pk}'
|
||||
return f'{self.gateway}{gateway_tools.pk}'
|
||||
|
||||
else:
|
||||
return '00000000'
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ from django.shortcuts import render
|
|||
from utils.commons import calculate_pna_commission
|
||||
from .constans import StateChoices
|
||||
from .forms import PaymentRequestForm
|
||||
from .models import PaymentRequest
|
||||
from .models import PaymentRequest, get_gateway_class
|
||||
from .serializers import PaymentRequestSerializer, CommissionSerializer
|
||||
from ..core.models import BasePGModel
|
||||
from ..gooyal_oauth2.utils import get_application
|
||||
|
|
@ -144,30 +144,35 @@ class PaymentRequestView(UpdateView):
|
|||
def form_valid(self, form):
|
||||
self.object = form.save()
|
||||
charge_request: PaymentRequest = self.get_object()
|
||||
application_policy = charge_request.get_policy()
|
||||
preferred_gateways = application_policy.get_preferred_gateways()
|
||||
|
||||
charge_request.set_gateway(form.data)
|
||||
charge_request.save_commission()
|
||||
if preferred_gateways:
|
||||
for gateway_label in preferred_gateways:
|
||||
if gateway_label in form.data:
|
||||
charge_request.set_gateway(gateway_label)
|
||||
charge_request.save_commission()
|
||||
|
||||
tool:BasePGModel = charge_request.get_gateway_tools()
|
||||
tool:BasePGModel = charge_request.get_gateway_tools()
|
||||
tool.make_request()
|
||||
|
||||
tool.make_request()
|
||||
redirect_url = tool.get_pg_page_url()
|
||||
|
||||
redirect_url = tool.get_pg_page_url()
|
||||
|
||||
if redirect_url:
|
||||
if tool.redirect_method == 'GET':
|
||||
return HttpResponseRedirect(redirect_url)
|
||||
elif tool.redirect_method == 'POST':
|
||||
print(redirect_url)
|
||||
else:
|
||||
pass
|
||||
if redirect_url:
|
||||
if tool.redirect_method == 'GET':
|
||||
return HttpResponseRedirect(redirect_url)
|
||||
elif tool.redirect_method == 'POST':
|
||||
print(redirect_url)
|
||||
return
|
||||
else:
|
||||
pass
|
||||
|
||||
|
||||
else:
|
||||
messages.error(self.request, 'can not redirect to payment gateway')
|
||||
messages.info(self.request, 'در پردازش صفحه خطایی وجود دارد.')
|
||||
# TODO: redirect to error page
|
||||
return HttpResponseRedirect(reverse('pg:payment-confirm-view', kwargs={'uuid': charge_request.uuid}))
|
||||
|
||||
messages.error(self.request, 'can not redirect to payment gateway')
|
||||
messages.info(self.request, 'در پردازش صفحه خطایی وجود دارد.')
|
||||
# TODO: redirect to error page
|
||||
return HttpResponseRedirect(reverse('pg:payment-confirm-view', kwargs={'uuid': charge_request.uuid}))
|
||||
|
||||
|
||||
@method_decorator(csrf_exempt, name='dispatch')
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue