From 49a8076ce6d12fb3f37a85dd87a5c09b5e7e8c4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ertu=C4=9Frul=20Berat=20ALLAHVERD=C4=B0?= Date: Wed, 30 Sep 2026 12:28:18 +0300 Subject: [PATCH] Added Setcard Gift Apm --- craftgate/model/apm_type.py | 1 + craftgate/model/payment_method.py | 2 ++ tests/test_payment_sample.py | 37 +++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+) diff --git a/craftgate/model/apm_type.py b/craftgate/model/apm_type.py index dbdd7cb..911ee56 100644 --- a/craftgate/model/apm_type.py +++ b/craftgate/model/apm_type.py @@ -37,6 +37,7 @@ class ApmType(str, Enum): IWALLET = "IWALLET" FUND_TRANSFER = "FUND_TRANSFER" SETCARD = "SETCARD" + SETCARD_GIFT = "SETCARD_GIFT" PAPEL = "PAPEL" ALBARAKA = "ALBARAKA" CASH_ON_DELIVERY = "CASH_ON_DELIVERY" diff --git a/craftgate/model/payment_method.py b/craftgate/model/payment_method.py index d5c12b5..101b100 100644 --- a/craftgate/model/payment_method.py +++ b/craftgate/model/payment_method.py @@ -12,6 +12,8 @@ class PaymentMethod(str, Enum): TOKENFLEX_GIFT = "TOKENFLEX_GIFT" EDENRED = "EDENRED" EDENRED_GIFT = "EDENRED_GIFT" + SETCARD = "SETCARD" + SETCARD_GIFT = "SETCARD_GIFT" ALIPAY = "ALIPAY" PAYPAL = "PAYPAL" KLARNA = "KLARNA" diff --git a/tests/test_payment_sample.py b/tests/test_payment_sample.py index 61af849..7fe02b8 100644 --- a/tests/test_payment_sample.py +++ b/tests/test_payment_sample.py @@ -1296,6 +1296,43 @@ def test_complete_setcard_pos_apm_payment(self): self.assertIsNotNone(getattr(resp, "payment_id", None)) self.assertEqual(PaymentStatus.SUCCESS, resp.payment_status) + def test_init_setcard_gift_apm_payment(self): + items = [] + for name, price in [("item 1", "0.6"), ("item 2", "0.4")]: + pi = PaymentItem() + pi.name = name + pi.external_id = str(uuid.uuid4()) + pi.price = Decimal(price) + items.append(pi) + + req = InitApmPaymentRequest() + req.apm_type = ApmType.SETCARD_GIFT + req.price = Decimal("1") + req.paid_price = Decimal("1") + req.currency = Currency.TRY + req.callback_url = "https://www.your-website.com/craftgate-3DSecure-callback" + req.payment_group = PaymentGroup.LISTING_OR_SUBSCRIPTION + req.conversation_id = "conversationId" + req.external_id = "externalId" + req.additional_params = {"cardNumber": "7599640961180814"} + req.items = items + + resp = self.payment.init_apm_payment(req) + print(resp) + self.assertIsNotNone(getattr(resp, "payment_id", None)) + self.assertEqual(PaymentStatus.WAITING, resp.payment_status) + self.assertEqual(ApmAdditionalAction.OTP_REQUIRED, resp.additional_action) + + def test_complete_setcard_gift_pos_apm_payment(self): + req = CompleteApmPaymentRequest() + req.payment_id = 1 + req.additional_params = {"otpCode": "123456"} + + resp = self.payment.complete_apm_payment(req) + print(resp) + self.assertIsNotNone(getattr(resp, "payment_id", None)) + self.assertEqual(PaymentStatus.SUCCESS, resp.payment_status) + def test_complete_pos_apm_payment(self): req = CompletePosApmPaymentRequest() req.payment_id = 1