From d7e15cbd75c6869b6265690bb67ba89dc2fd2e57 Mon Sep 17 00:00:00 2001 From: deryacakmak <97deryacakmak@gmail.com> Date: Tue, 27 Oct 2026 00:43:25 +0300 Subject: [PATCH] Remove BKM Express v1 endpoints and models The v1 init, complete and retrieve-by-token endpoints and the BKM_EXPRESS payment authentication type were removed from the API. Only the v2 generate-token flow remains. Co-Authored-By: Claude Opus 5.5 --- .../adapter/bkm_express_payment_adapter.py | 37 -------------- .../model/payment_authentication_type.py | 1 - craftgate/request/__init__.py | 2 - .../request/complete_bkm_express_request.py | 17 ------- craftgate/request/init_bkm_express_request.py | 34 ------------- craftgate/response/__init__.py | 1 - .../response/init_bkm_express_response.py | 13 ----- tests/test_bkm_express_payment_sample.py | 49 ------------------- 8 files changed, 154 deletions(-) delete mode 100644 craftgate/request/complete_bkm_express_request.py delete mode 100644 craftgate/request/init_bkm_express_request.py delete mode 100644 craftgate/response/init_bkm_express_response.py diff --git a/craftgate/adapter/bkm_express_payment_adapter.py b/craftgate/adapter/bkm_express_payment_adapter.py index 7fc5a2b..2f2736f 100644 --- a/craftgate/adapter/bkm_express_payment_adapter.py +++ b/craftgate/adapter/bkm_express_payment_adapter.py @@ -1,12 +1,8 @@ from craftgate.adapter.base_adapter import BaseAdapter from craftgate.net.base_http_client import BaseHttpClient -from craftgate.request.complete_bkm_express_request import CompleteBkmExpressRequest from craftgate.request.generate_bkm_express_token import BkmExpressGenerateTokenRequest -from craftgate.request.init_bkm_express_request import InitBkmExpressRequest from craftgate.request_options import RequestOptions from craftgate.response.generate_bkm_express_token_response import BkmExpressGenerateTokenResponse -from craftgate.response.init_bkm_express_response import InitBkmExpressResponse -from craftgate.response.payment_response import PaymentResponse class BkmExpressPaymentAdapter(BaseAdapter): @@ -14,39 +10,6 @@ def __init__(self, request_options: RequestOptions) -> None: super(BkmExpressPaymentAdapter, self).__init__(request_options) self._http_client = BaseHttpClient() - def init(self, request: InitBkmExpressRequest) -> InitBkmExpressResponse: - path = "/payment/v1/bkm-express/init" - headers = self._create_headers(request, path) - return self._http_client.request( - method="POST", - url=self.request_options.base_url + path, - headers=headers, - body=request, - response_type=InitBkmExpressResponse - ) - - def complete(self, request: CompleteBkmExpressRequest) -> PaymentResponse: - path = "/payment/v1/bkm-express/complete" - headers = self._create_headers(request, path) - return self._http_client.request( - method="POST", - url=self.request_options.base_url + path, - headers=headers, - body=request, - response_type=PaymentResponse - ) - - def retrieve_payment_by_token(self, token: str) -> PaymentResponse: - path = "/payment/v1/bkm-express/{}".format(token) - headers = self._create_headers(None, path) - return self._http_client.request( - method="GET", - url=self.request_options.base_url + path, - headers=headers, - body=None, - response_type=PaymentResponse - ) - def generate_token(self, request: BkmExpressGenerateTokenRequest) -> BkmExpressGenerateTokenResponse: path = "/payment/v2/bkm-express/generate-token" headers = self._create_headers(request, path) diff --git a/craftgate/model/payment_authentication_type.py b/craftgate/model/payment_authentication_type.py index a848e0f..b1724f3 100644 --- a/craftgate/model/payment_authentication_type.py +++ b/craftgate/model/payment_authentication_type.py @@ -4,4 +4,3 @@ class PaymentAuthenticationType(str, Enum): THREE_DS = "THREE_DS" NON_THREE_DS = "NON_THREE_DS" - BKM_EXPRESS = "BKM_EXPRESS" diff --git a/craftgate/request/__init__.py b/craftgate/request/__init__.py index 21671c5..f84c15f 100644 --- a/craftgate/request/__init__.py +++ b/craftgate/request/__init__.py @@ -8,7 +8,6 @@ from .clone_card_request import CloneCardRequest from .common import BaseRequest, HeaderOptions from .complete_apm_payment_request import CompleteApmPaymentRequest -from .complete_bkm_express_request import CompleteBkmExpressRequest from .complete_pos_apm_payment_request import CompletePosApmPaymentRequest from .complete_three_ds_payment_request import CompleteThreeDSPaymentRequest from .create_apm_payment_request import CreateApmPaymentRequest @@ -39,7 +38,6 @@ from .fraud_value_list_request import FraudValueListRequest from .init_apm_deposit_payment_request import InitApmDepositPaymentRequest from .init_apm_payment_request import InitApmPaymentRequest -from .init_bkm_express_request import InitBkmExpressRequest from .init_bnpl_payment_request import InitBnplPaymentRequest from .init_checkout_card_verify_request import InitCheckoutCardVerifyRequest from .init_checkout_payment_request import InitCheckoutPaymentRequest diff --git a/craftgate/request/complete_bkm_express_request.py b/craftgate/request/complete_bkm_express_request.py deleted file mode 100644 index 505fd56..0000000 --- a/craftgate/request/complete_bkm_express_request.py +++ /dev/null @@ -1,17 +0,0 @@ -from typing import Optional - -from craftgate.request.common.base_request import BaseRequest - - -class CompleteBkmExpressRequest(BaseRequest): - def __init__( - self, - status: bool = False, - message: Optional[str] = None, - ticket_id: Optional[str] = None, - bkm_express_payment_token: Optional[str] = None - ) -> None: - self.status = status - self.message = message - self.ticket_id = ticket_id - self.bkm_express_payment_token = bkm_express_payment_token diff --git a/craftgate/request/init_bkm_express_request.py b/craftgate/request/init_bkm_express_request.py deleted file mode 100644 index de64c8c..0000000 --- a/craftgate/request/init_bkm_express_request.py +++ /dev/null @@ -1,34 +0,0 @@ -from decimal import Decimal -from typing import List, Optional - -from craftgate.model.currency import Currency -from craftgate.model.payment_group import PaymentGroup -from craftgate.model.payment_phase import PaymentPhase -from craftgate.request.common.base_request import BaseRequest -from craftgate.request.dto.payment_item import PaymentItem - - -class InitBkmExpressRequest(BaseRequest): - def __init__( - self, - price: Optional[Decimal] = None, - paid_price: Optional[Decimal] = None, - payment_group: Optional[PaymentGroup] = None, - conversation_id: Optional[str] = None, - payment_phase: Optional[PaymentPhase] = None, - items: Optional[List[PaymentItem]] = None, - enabled_installments: Optional[List[int]] = None, - buyer_member_id: Optional[int] = None, - currency: Optional[Currency] = None, - bank_order_id: Optional[str] = None - ) -> None: - self.price = price - self.paid_price = paid_price - self.payment_group = payment_group - self.conversation_id = conversation_id - self.payment_phase = payment_phase - self.items = items - self.enabled_installments = enabled_installments - self.buyer_member_id = buyer_member_id - self.currency = currency - self.bank_order_id = bank_order_id diff --git a/craftgate/response/__init__.py b/craftgate/response/__init__.py index 6b2313e..4b39a45 100644 --- a/craftgate/response/__init__.py +++ b/craftgate/response/__init__.py @@ -16,7 +16,6 @@ from .fraud_rule_response import FraudRuleResponse from .fraud_value_list_response import FraudValueListResponse from .fund_transfer_deposit_payment_response import FundTransferDepositPaymentResponse -from .init_bkm_express_response import InitBkmExpressResponse from .init_bnpl_payment_response import InitBnplPaymentResponse from .init_checkout_card_verify_response import InitCheckoutCardVerifyResponse from .bnpl_limit_inquiry_response import BnplLimitInquiryResponse diff --git a/craftgate/response/init_bkm_express_response.py b/craftgate/response/init_bkm_express_response.py deleted file mode 100644 index 238a9bc..0000000 --- a/craftgate/response/init_bkm_express_response.py +++ /dev/null @@ -1,13 +0,0 @@ -from typing import Optional - - -class InitBkmExpressResponse: - def __init__( - self, - id: Optional[str] = None, - path: Optional[str] = None, - token: Optional[str] = None - ) -> None: - self.id = id - self.path = path - self.token = token diff --git a/tests/test_bkm_express_payment_sample.py b/tests/test_bkm_express_payment_sample.py index 499425e..2827e6b 100644 --- a/tests/test_bkm_express_payment_sample.py +++ b/tests/test_bkm_express_payment_sample.py @@ -1,12 +1,8 @@ # tests/test_bkm_express_payment_sample.py import os import unittest -from decimal import Decimal from craftgate import Craftgate, RequestOptions -from craftgate.model import Currency, PaymentGroup -from craftgate.request import CompleteBkmExpressRequest, InitBkmExpressRequest -from craftgate.request.dto import PaymentItem from craftgate.request.generate_bkm_express_token import BkmExpressGenerateTokenRequest @@ -24,51 +20,6 @@ def setUpClass(cls): ) cls.bkm_express_payment = Craftgate(options).bkm_express_payment() - def test_init_bkm_express(self): - items = [ - PaymentItem(name="Item 1", price=Decimal("30"), external_id="123d1297-839e-4bd6-a13b-4be31a6e12a8"), - PaymentItem(name="Item 2", price=Decimal("50"), external_id="789d1297-839e-4bd6-a13b-4be31a6e13f7"), - PaymentItem(name="Item 3", price=Decimal("20"), external_id="3a1d1297-839e-4bd6-a13b-4be31a6e18e6"), - ] - - request = InitBkmExpressRequest( - price=Decimal("100"), - paid_price=Decimal("100"), - conversation_id="456d1297-908e-4bd6-a13b-4be31a6e47d5", - currency=Currency.TRY, - payment_group=PaymentGroup.LISTING_OR_SUBSCRIPTION, - items=items - ) - - response = self.bkm_express_payment.init(request) - - print(response) - self.assertIsNotNone(response) - self.assertIsNotNone(response.token) - self.assertIsNotNone(response.path) - self.assertIsNotNone(response.id) - - def test_complete_bkm_express(self): - ticket_id = os.environ.get("BKM_TICKET_ID", "ce6d93c3-b399-406d-8efc-fdba0b37768c") - - request = CompleteBkmExpressRequest( - status=True, - message="İşlem başarılı", - ticket_id=ticket_id - ) - - response = self.bkm_express_payment.complete(request) - print(response) - self.assertIsNotNone(response) - self.assertIsNotNone(response.order_id) - - def test_retrieve_payment_by_token(self): - token = os.environ.get("BKM_TOKEN", "cb90071c-1f2c-4fb7-9049-c5f13f9f7286") - - response = self.bkm_express_payment.retrieve_payment_by_token(token) - print(response) - self.assertIsNotNone(response) - def test_generate_token(self): request = BkmExpressGenerateTokenRequest( gsm_number="5350000000",