diff --git a/osinaweb/customercore/__pycache__/views.cpython-310.pyc b/osinaweb/customercore/__pycache__/views.cpython-310.pyc index 7bf03a5f..c7143e45 100644 Binary files a/osinaweb/customercore/__pycache__/views.cpython-310.pyc and b/osinaweb/customercore/__pycache__/views.cpython-310.pyc differ diff --git a/osinaweb/customercore/views.py b/osinaweb/customercore/views.py index bfd60fdc..01fca607 100644 --- a/osinaweb/customercore/views.py +++ b/osinaweb/customercore/views.py @@ -36,6 +36,10 @@ def pricing(request, *args, **kwargs): return render(request, 'pricing.html', context) +import requests +import base64 +import uuid +from django.http import JsonResponse @customer_login_required def initiate_checkout(request): @@ -50,8 +54,6 @@ def initiate_checkout(request): # Data for Initiate Checkout operation data = { "apiOperation": "INITIATE_CHECKOUT", - "apiUsername": api_username, - "apiPassword": api_password, "merchant": merchant_id, "interaction.operation": "PURCHASE", "interaction.merchant.name": merchant_name, @@ -61,9 +63,18 @@ def initiate_checkout(request): "order.description": "description_of_order" } - try: - response = requests.post("https://creditlibanais-netcommerce.gateway.mastercard.com/api/nvp/version/72", data=data) + # Encode the username and password in Base64 format + credentials = f"{api_username}:{api_password}" + encoded_credentials = base64.b64encode(credentials.encode()).decode() + + # Construct the headers with the Authorization header + headers = { + "Authorization": f"Basic {encoded_credentials}", + "Content-Type": "application/json" + } + + response = requests.post("https://creditlibanais-netcommerce.gateway.mastercard.com/api/nvp/version/72", json=data, headers=headers) print("Response Content:", response.content.decode()) # Print response content @@ -79,4 +90,4 @@ def initiate_checkout(request): except Exception as e: print("Exception:", e) # Print exception traceback - return JsonResponse({"error": "Internal Server Error"}, status=500) \ No newline at end of file + return JsonResponse({"error": "Internal Server Error"}, status=500)