Интеграция платежного шлюза с Django
Я интегрирую API платежных шлюзов в свое приложение (Django). Я написал класс PaymentGateway
, который предоставляет все методы для всех утилит, связанных с платежами. Класс __init__
инициализирует клиента платежного шлюза как self.client
, чтобы он был доступен во всех методах. Но мне нужна помощь в принятии решения о том, как его использовать.
Нормально ли, если я инстанцирую и использую объект платежного шлюза во всей программе, когда он мне нужен? ИЛИ Должен ли я поддерживать один экземпляр во всем приложении?
Нужна помощь в понимании плюсов и минусов или любое другое предложение, чтобы я мог принять это решение.
Мой текущий код сейчас выглядит примерно так:
class PaymentGateway:
def __init__(self):
self.client = PG(api_key="api_key")
def create_intent(self, user):
return self.client.intents.create(customer_id=user.email)
def get_user_id(email):
return self.client.users.retrieve(customer_id=email)
class MyView(GenericAPIView):
def get(self, request):
pg_instance = PaymentGateway()
intent = pg_instance.create(request.user)
return Response({"user_id": get_user_id(request.user), "intent": intent})
# Somewhere in utils.py
def get_user_id(user):
pg = PaymentGateway()
return pg.get_user_id(user.email)