base of payment gateway
This commit is contained in:
+48
-50
@@ -7,13 +7,15 @@ from rest_framework.permissions import IsAuthenticated
|
||||
from .serializers import *
|
||||
# from cart.models import
|
||||
from rest_framework import status
|
||||
from .models import OrderItemModel, OrderModel, DiscountCode
|
||||
from .models import OrderItemModel, OrderModel, DiscountCode, PaymentModel
|
||||
from .permissons import CanDeleteCartItemPermissions
|
||||
from azbankgateways import bankfactories, models as bank_models
|
||||
from azbankgateways.exceptions import AZBankGatewaysException
|
||||
try:
|
||||
pass
|
||||
except DiscountNotAvailableError:
|
||||
pass
|
||||
|
||||
from django.urls import reverse
|
||||
"""
|
||||
|
||||
add post
|
||||
@@ -113,61 +115,57 @@ class OrderlistView(APIView):
|
||||
|
||||
|
||||
|
||||
# from rest_framework.views import APIView
|
||||
# from rest_framework.response import Response
|
||||
# from rest_framework import status
|
||||
# from azbankgateways import bankfactories, models as bank_models
|
||||
|
||||
# class PaymentView(APIView):
|
||||
# def post(self, request):
|
||||
# amount = request.data.get('amount')
|
||||
# user = request.user
|
||||
class PaymentView(APIView):
|
||||
def post(self, request):
|
||||
amount = 10000000
|
||||
user_mobile_number = request.user.phone
|
||||
|
||||
factory = bankfactories.BankFactory()
|
||||
try:
|
||||
bank = (
|
||||
factory.create(bank_models.BankType.ZARINPAL)
|
||||
)
|
||||
bank.set_request(request)
|
||||
bank.set_amount(amount)
|
||||
|
||||
# payment = Payment.objects.create(amount=amount, bank_type='ZARINPAL')
|
||||
bank.set_client_callback_url(request.build_absolute_uri(reverse("callback-gateway")))
|
||||
bank.set_mobile_number(user_mobile_number)
|
||||
|
||||
|
||||
# factory = bankfactories.ZarinpalBankFactory()
|
||||
# try:
|
||||
# bank = factory.create(
|
||||
# amount=amount,
|
||||
# user=user,
|
||||
# callback_url='http://.com/callback/',
|
||||
# reference_model=payment,
|
||||
# )
|
||||
# bank.ready()
|
||||
# return Response({'gateway_url': bank.redirect_url}, status=status.HTTP_200_OK)
|
||||
# except Exception as e:
|
||||
# return Response({'error': str(e)}, status=status.HTTP_400_BAD_REQUEST)
|
||||
bank_record = bank.ready()
|
||||
return Response(bank.redirect_gateway().url)
|
||||
except AZBankGatewaysException as e:
|
||||
print(e)
|
||||
return Response({'error': str(e)}, status=status.HTTP_400_BAD_REQUEST)
|
||||
return Response({'gateway_url': bank.redirect_url}, status=status.HTTP_200_OK)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# from django.views.decorators.csrf import csrf_exempt
|
||||
# from rest_framework.decorators import api_view
|
||||
# from rest_framework.response import Response
|
||||
# from azbankgateways import bankfactories, models as bank_models
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
from rest_framework.decorators import api_view
|
||||
from rest_framework.response import Response
|
||||
from azbankgateways import bankfactories, models as bank_models
|
||||
|
||||
# @csrf_exempt
|
||||
# @api_view(['POST'])
|
||||
# def callback_view(request):
|
||||
# tracking_code = request.POST.get('tracking_code')
|
||||
# payment_id = request.POST.get('payment_id')
|
||||
@csrf_exempt
|
||||
@api_view(['POST'])
|
||||
def callback_view(request):
|
||||
tracking_code = request.GET.get(settings.TRACKING_CODE_QUERY_PARAM, None)
|
||||
if not tracking_code:
|
||||
logging.debug("این لینک معتبر نیست.")
|
||||
raise Http404
|
||||
|
||||
# payment = Payment.objects.get(id=payment_id)
|
||||
# bank_type = payment.bank_type
|
||||
try:
|
||||
bank_record = bank_models.Bank.objects.get(tracking_code=tracking_code)
|
||||
except bank_models.Bank.DoesNotExist:
|
||||
logging.debug("این لینک معتبر نیست.")
|
||||
raise Http404
|
||||
|
||||
|
||||
# factory = bankfactories.BankFactory.get_bank(bank_type)
|
||||
# try:
|
||||
# result = factory.verify_transaction(tracking_code)
|
||||
# if result.is_success:
|
||||
# payment.status = 'Paid'
|
||||
# payment.tracking_code = tracking_code
|
||||
# payment.save()
|
||||
# return Response({'status': 'Payment successful'})
|
||||
# else:
|
||||
# payment.status = 'Failed'
|
||||
# payment.save()
|
||||
# return Response({'status': 'Payment failed'})
|
||||
# except Exception as e:
|
||||
# return Response({'error': str(e)})
|
||||
if bank_record.is_success:
|
||||
return HttpResponse("پرداخت با موفقیت انجام شد.")
|
||||
|
||||
|
||||
return HttpResponse(
|
||||
"پرداخت با شکست مواجه شده است. اگر پول کم شده است ظرف مدت ۴۸ ساعت پول به حساب شما بازخواهد گشت."
|
||||
)
|
||||
Reference in New Issue
Block a user