I have issues trying to settup an api endpoint in my Django DRF server
using Flutterwave by calling their Api in my view function. When I wrote my
code and tested it with Postman client I got payment failed error. I
believe I set everything well but I don’t know why am getting the error.
This is my code snippet for the test mode implementation, I need quick help:
from rest_framework.response import Response from django.http import
JsonResponse from django.views.decorators.csrf import csrf_exempt from
rest_framework.decorators import api_view import logging import requests
logger = logging.getLogger(__name__)
@api_view(['POST']) @csrf_exempt def wallet_top_up_view(request, *args,
**kwargs): try: # Required variables amount =
float(request.data.get('amount', 600.0)) ko_test_email = '
[email protected]' ko_test_name = 'Kaka Olawale' # Required API
variables/parameters api_url = '
https://api.flutterwave.com/v3/charges?type=card' qms_redirect_url = '
http://localhost:8000/api/payment/success/' qms_ref = 'Welcome to Quickmed
Platform, kindly proceed with payment' secret_key =
'FLWSECK_TEST-869279d145197389f77808be9187e4a3-X' # Replace with your
actual secret key card_number = '5531886652142950' cvv = '564' expiry_month
= '09' expiry_year = '32' headers = { 'Authorization': f'Bearer
{secret_key}', 'Content-Type': 'application/json', } payload = { "tx_ref":
qms_ref, "amount": amount, "currency": "NGN", "redirect_url":
qms_redirect_url, "order_id": "your_order_id", "order_ref":
"your_order_reference", "payment_type": "card", "customer": { "email":
ko_test_email, "name": ko_test_name, }, "card": { "number": card_number,
"cvv": cvv, "expiry_month": expiry_month, "expiry_year": expiry_year, } } #
Make the POST request and store in the response variable response =
requests.post(api_url, headers=headers, json=payload) # Check if the
response was successful if response.ok: payment_link =
response.json().get("data").get("link") return Response({"payment_link":
payment_link}, status=201) else: return Response({"error": "Payment
failed"}, status=response.status_code) except Exception as e:
logger.exception("An error occurred in WalletTopUpView") return
JsonResponse({"error": str(e)}, status=500)
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/CAPSG2femeBUh7JgPcQLvVpJHgzJnVms2E1oB4-DaAbt1U_G-hw%40mail.gmail.com.