Skip to content

Commit 290fb12

Browse files
authored
Merge pull request #129 from birddevelper/fix/bmi-token
fix: resolve bmi token issue
2 parents 89cfa7a + 0ed4530 commit 290fb12

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

azbankgateways/banks/bmi.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import requests
66
from Crypto.Cipher import DES3
7-
from django.conf import settings
7+
88
from azbankgateways.banks import BaseBank
99
from azbankgateways.exceptions import BankGatewayConnectionError, SettingDoesNotExist
1010
from azbankgateways.exceptions.exceptions import (
@@ -23,7 +23,10 @@ class BMI(BaseBank):
2323
def __init__(self, **kwargs):
2424
super(BMI, self).__init__(**kwargs)
2525
if not self._is_strict_origin_policy_enabled():
26-
raise SettingDoesNotExist("SECURE_REFERRER_POLICY is not set to 'strict-origin-when-cross-origin' in django setting, it's mandatory for BMI gateway")
26+
raise SettingDoesNotExist(
27+
"SECURE_REFERRER_POLICY is not set to 'strict-origin-when-cross-origin'"
28+
" in django setting, it's mandatory for BMI gateway"
29+
)
2730

2831
self.set_gateway_currency(CurrencyEnum.IRR)
2932
self._token_api_url = "https://sadad.shaparak.ir/vpg/api/v0/Request/PaymentRequest"
@@ -105,7 +108,8 @@ def verify(self, transaction_code):
105108
if str(response_json["ResCode"]) == "0":
106109
self._set_payment_status(PaymentStatus.COMPLETE)
107110
extra_information = (
108-
f"RetrivalRefNo={response_json['RetrivalRefNo']},SystemTraceNo={response_json['SystemTraceNo']}"
111+
f"RetrivalRefNo={response_json['RetrivalRefNo']}"
112+
",SystemTraceNo={response_json['SystemTraceNo']}"
109113
)
110114
self._bank.extra_information = extra_information
111115
self._bank.save()
@@ -116,10 +120,13 @@ def verify(self, transaction_code):
116120
def prepare_verify_from_gateway(self):
117121
super(BMI, self).prepare_verify_from_gateway()
118122
request = self.get_request()
119-
for method in ["POST", "GET", "data", "PUT"]:
120-
token = getattr(request, method, {}).get("token", None)
121-
if token:
123+
method_data = getattr(request, "POST", {})
124+
token = None
125+
for key, value in method_data.items():
126+
if key.lower() == "token":
127+
token = value
122128
break
129+
123130
if not token:
124131
raise BankGatewayStateInvalid
125132
self._set_reference_number(token)

0 commit comments

Comments
 (0)