Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions craftgate/adapter/bkm_express_payment_adapter.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
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

Expand Down Expand Up @@ -44,3 +46,14 @@ def retrieve_payment_by_token(self, token: str) -> PaymentResponse:
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)
return self._http_client.request(
method="POST",
url=self.request_options.base_url + path,
headers=headers,
body=request,
response_type=BkmExpressGenerateTokenResponse
)
1 change: 1 addition & 0 deletions craftgate/model/tokenized_card_type.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@

class TokenizedCardType(str, Enum):
APPLE_PAY = "APPLE_PAY"
BKM_EXPRESS = "BKM_EXPRESS"
11 changes: 11 additions & 0 deletions craftgate/request/generate_bkm_express_token.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@

from typing import Optional

class BkmExpressGenerateTokenRequest:
def __init__(
self,
gsm_number: Optional[str] = None,
user_id: Optional[str] = None
) -> None:
self.gsm_number = gsm_number
self.user_id = user_id
4 changes: 4 additions & 0 deletions craftgate/request/init_checkout_payment_request.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ def __init__(
enabled_payment_methods: Optional[List[PaymentMethod]] = None,
masterpass_gsm_number: Optional[str] = None,
masterpass_user_id: Optional[str] = None,
bex_gsm_number: Optional[str] = None,
bex_user_id: Optional[str] = None,
card_user_key: Optional[str] = None,
buyer_member_id: Optional[int] = None,
enabled_installments: Optional[List[int]] = None,
Expand Down Expand Up @@ -65,6 +67,8 @@ def __init__(
self.enabled_payment_methods = enabled_payment_methods
self.masterpass_gsm_number = masterpass_gsm_number
self.masterpass_user_id = masterpass_user_id
self.bex_gsm_number = bex_gsm_number
self.bex_user_id = bex_user_id
self.card_user_key = card_user_key
self.buyer_member_id = buyer_member_id
self.enabled_installments = enabled_installments
Expand Down
12 changes: 12 additions & 0 deletions craftgate/response/generate_bkm_express_token_response.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from typing import Optional


def __init__(
self,
token: Optional[str] = None,
) -> None:
self.token = token


class BkmExpressGenerateTokenResponse:
pass
11 changes: 11 additions & 0 deletions tests/test_bkm_express_payment_sample.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
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


class BkmExpressPaymentSample(unittest.TestCase):
Expand Down Expand Up @@ -68,6 +69,16 @@ def test_retrieve_payment_by_token(self):
print(response)
self.assertIsNotNone(response)

def test_generate_token(self):
request = BkmExpressGenerateTokenRequest(
gsm_number="5350000000",
user_id="1234567890"
)

response = self.bkm_express_payment.generate_token(request)
print(response)
self.assertIsNotNone(response)


if __name__ == "__main__":
unittest.main()
Loading