diff --git a/src/main/java/io/craftgate/model/ApmType.java b/src/main/java/io/craftgate/model/ApmType.java index 94d5e7d..576383b 100644 --- a/src/main/java/io/craftgate/model/ApmType.java +++ b/src/main/java/io/craftgate/model/ApmType.java @@ -35,6 +35,7 @@ public enum ApmType { SODEXO, SODEXO_GIFT, SETCARD, + SETCARD_GIFT, TOKENFLEX, TOKENFLEX_GIFT, diff --git a/src/main/java/io/craftgate/model/PaymentMethod.java b/src/main/java/io/craftgate/model/PaymentMethod.java index 4425637..26e56c3 100644 --- a/src/main/java/io/craftgate/model/PaymentMethod.java +++ b/src/main/java/io/craftgate/model/PaymentMethod.java @@ -37,6 +37,7 @@ public enum PaymentMethod { DKB, PAYCELL_DCB, SETCARD, + SETCARD_GIFT, IWALLET, PAPEL, BKM_EXPRESS diff --git a/src/test/java/io/craftgate/sample/PaymentSample.java b/src/test/java/io/craftgate/sample/PaymentSample.java index 1d8b86b..8c01cd2 100644 --- a/src/test/java/io/craftgate/sample/PaymentSample.java +++ b/src/test/java/io/craftgate/sample/PaymentSample.java @@ -1859,6 +1859,58 @@ void complete_setcard_pos_apm_payment() { assertEquals(PaymentStatus.SUCCESS, response.getPaymentStatus()); } + @Test + void init_setcard_gift_apm_payment() { + List items = new ArrayList<>(); + + items.add(PaymentItem.builder() + .name("item 1") + .externalId(UUID.randomUUID().toString()) + .price(BigDecimal.valueOf(0.6)) + .build()); + + items.add(PaymentItem.builder() + .name("item 2") + .externalId(UUID.randomUUID().toString()) + .price(BigDecimal.valueOf(0.4)) + .build()); + + Map additionalParams = new HashMap<>(); + additionalParams.put("cardNumber", "7599640961180814"); + + InitApmPaymentRequest request = InitApmPaymentRequest.builder() + .apmType(ApmType.SETCARD_GIFT) + .price(BigDecimal.ONE) + .paidPrice(BigDecimal.ONE) + .currency(Currency.TRY) + .callbackUrl("https://www.your-website.com/craftgate-3DSecure-callback") + .paymentGroup(PaymentGroup.LISTING_OR_SUBSCRIPTION) + .conversationId("conversationId") + .externalId("externalId") + .additionalParams(additionalParams) + .items(items) + .build(); + + ApmPaymentInitResponse response = craftgate.payment().initApmPayment(request); + assertNotNull(response.getPaymentId()); + assertEquals(PaymentStatus.WAITING, response.getPaymentStatus()); + assertEquals(ApmAdditionalAction.OTP_REQUIRED, response.getAdditionalAction()); + } + + @Test + void complete_setcard_gift_pos_apm_payment() { + CompleteApmPaymentRequest request = CompleteApmPaymentRequest.builder() + .paymentId(1L) + .additionalParams(new HashMap() {{ + put("otpCode", "123456"); + }}) + .build(); + + ApmPaymentCompleteResponse response = craftgate.payment().completeApmPayment(request); + assertNotNull(response.getPaymentId()); + assertEquals(PaymentStatus.SUCCESS, response.getPaymentStatus()); + } + @Test void complete_pos_apm_payment() { CompletePosApmPaymentRequest request = CompletePosApmPaymentRequest.builder()