diff --git a/app/services/payment/pal24.py b/app/services/payment/pal24.py index 7b1d9a1e..ab2da960 100644 --- a/app/services/payment/pal24.py +++ b/app/services/payment/pal24.py @@ -64,7 +64,7 @@ class Pal24PaymentMixin: } normalized_payment_method = self._normalize_payment_method(payment_method) - pal24_payment_method = self._map_payment_method_for_api(normalized_payment_method) + api_payment_method = self._map_api_payment_method(normalized_payment_method) payment_module = import_module("app.services.payment_service") @@ -77,7 +77,7 @@ class Pal24PaymentMixin: ttl_seconds=ttl_seconds, custom_payload=custom_payload, payer_email=payer_email, - payment_method=pal24_payment_method, + payment_method=api_payment_method, ) except Pal24APIError as error: logger.error("Ошибка Pal24 API при создании счета: %s", error) @@ -531,10 +531,12 @@ class Pal24PaymentMixin: return mapping.get(normalized, "sbp") @staticmethod - def _map_payment_method_for_api(normalized_method: str) -> Optional[str]: - mapping = { + def _map_api_payment_method(normalized_payment_method: str) -> Optional[str]: + """Преобразует нормализованный метод оплаты в значение для Pal24 API.""" + + api_mapping = { "sbp": "fast_payment", "card": "bank_card", } - return mapping.get(normalized_method) + return api_mapping.get(normalized_payment_method) diff --git a/tests/services/test_payment_service_pal24.py b/tests/services/test_payment_service_pal24.py index b3e820f5..e93bf929 100644 --- a/tests/services/test_payment_service_pal24.py +++ b/tests/services/test_payment_service_pal24.py @@ -104,8 +104,8 @@ async def test_create_pal24_payment_success(monkeypatch: pytest.MonkeyPatch) -> assert result["payment_method"] == "card" assert result["link_url"] == "https://pal24/sbp" assert result["card_url"] == "https://pal24/card" + assert stub.calls and stub.calls[0]["payment_method"] == "bank_card" assert stub.calls and stub.calls[0]["amount_kopeks"] == 50000 - assert stub.calls[0]["payment_method"] == "bank_card" assert "links" in captured_args["metadata"] @@ -124,20 +124,21 @@ async def test_create_pal24_payment_default_method(monkeypatch: pytest.MonkeyPat fake_create_pal24_payment, raising=False, ) + monkeypatch.setattr(settings, "PAL24_MIN_AMOUNT_KOPEKS", 1000, raising=False) monkeypatch.setattr(settings, "PAL24_MAX_AMOUNT_KOPEKS", 1_000_000, raising=False) result = await service.create_pal24_payment( db=db, user_id=42, - amount_kopeks=150000, + amount_kopeks=10_000, description="Пополнение", language="ru", ) assert result is not None - assert result["payment_method"] == "sbp" assert stub.calls and stub.calls[0]["payment_method"] == "fast_payment" + assert result["payment_method"] == "sbp" @pytest.mark.anyio("asyncio")