added auth token #49
@@ -58,6 +58,8 @@ class Config:
|
|||||||
BANK_CALL_COLLECT_LOAN_ENDPOINT = os.getenv("BANK_CALL_COLLECT_LOAN_ENDPOINT","/CollectLoan")
|
BANK_CALL_COLLECT_LOAN_ENDPOINT = os.getenv("BANK_CALL_COLLECT_LOAN_ENDPOINT","/CollectLoan")
|
||||||
BANK_CALL_TRANSACTION_VERIFY = os.getenv("BANK_CALL_TRANSACTION_VERIFY", "/TransactionVerify")
|
BANK_CALL_TRANSACTION_VERIFY = os.getenv("BANK_CALL_TRANSACTION_VERIFY", "/TransactionVerify")
|
||||||
BANK_HEALTH_CHECK_ENDPOINT = os.getenv("BANK_HEALTH_CHECK_ENDPOINT", "/system-health-check")
|
BANK_HEALTH_CHECK_ENDPOINT = os.getenv("BANK_HEALTH_CHECK_ENDPOINT", "/system-health-check")
|
||||||
|
BANK_CALL_AUTH_ENDPOINT = os.getenv("BANK_CALL_AUTH_ENDPOINT", "/api/Auth/generate-token")
|
||||||
|
BANK_GRANT_TYPE = os.getenv("BANK_GRANT_TYPE", "password")
|
||||||
TEST_NO = os.getenv("TEST_NO", "2347038224367")
|
TEST_NO = os.getenv("TEST_NO", "2347038224367")
|
||||||
|
|
||||||
settings = Config()
|
settings = Config()
|
||||||
|
|||||||
+38
-5
@@ -1,9 +1,42 @@
|
|||||||
from app.config import settings
|
from app.config import settings
|
||||||
|
import requests
|
||||||
|
from app.utils.logger import logger
|
||||||
|
|
||||||
def get_headers():
|
def get_headers():
|
||||||
return {
|
BANK_CALL_BASE_URL = settings.BANK_CALL_BASE_URL
|
||||||
"Content-Type": "application/json",
|
BANK_CALL_AUTH_ENDPOINT = settings.BANK_CALL_AUTH_ENDPOINT
|
||||||
"x-api-key": settings.BANK_CALL_API_KEY,
|
BANK_CALL_BASIC_AUTH_USERNAME = settings.BANK_CALL_BASIC_AUTH_USERNAME
|
||||||
"App-Id": settings.BANK_CALL_APP_ID,
|
BANK_CALL_BASIC_AUTH_PASSWORD = settings.BANK_CALL_BASIC_AUTH_PASSWORD
|
||||||
|
BANK_GRANT_TYPE = settings.BANK_GRANT_TYPE
|
||||||
|
|
||||||
|
url = f"{BANK_CALL_BASE_URL}{BANK_CALL_AUTH_ENDPOINT}"
|
||||||
|
data = {
|
||||||
|
"grant_type": BANK_GRANT_TYPE,
|
||||||
|
"username": BANK_CALL_BASIC_AUTH_USERNAME,
|
||||||
|
"password": BANK_CALL_BASIC_AUTH_PASSWORD,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try:
|
||||||
|
response = requests.post(url, data=data, timeout=10)
|
||||||
|
response.raise_for_status() # Raises HTTPError for 4xx/5xx
|
||||||
|
result = response.json()
|
||||||
|
logger.info(f"Bank Call Auth Response: {result}")
|
||||||
|
|
||||||
|
# Check if access_token is present
|
||||||
|
if 'access_token' not in result:
|
||||||
|
logger.error("No access_token found in Bank Call Auth response")
|
||||||
|
return {"error": "Authentication failed: no access_token returned"}
|
||||||
|
|
||||||
|
return {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
"x-api-key": settings.BANK_CALL_API_KEY,
|
||||||
|
"App-Id": settings.BANK_CALL_APP_ID,
|
||||||
|
"Authorization": result['access_token'] # no Bearer
|
||||||
|
}
|
||||||
|
|
||||||
|
except requests.exceptions.RequestException as e:
|
||||||
|
logger.error(f"Failed to get auth token: {e}")
|
||||||
|
return {"error": "Authentication request failed"}
|
||||||
|
except ValueError as e:
|
||||||
|
logger.error(f"Failed to parse auth response JSON: {e}")
|
||||||
|
return {"error": "Invalid authentication response"}
|
||||||
|
|||||||
Reference in New Issue
Block a user