From a89e4bbd85b87e9553ca105188ff4e8d433d87a8 Mon Sep 17 00:00:00 2001 From: Abdurrahman Basgoynuk Date: Fri, 13 Dec 2024 13:02:17 +0300 Subject: [PATCH] DEV-30004 adds refund v2 and threeds auth v2 response signature --- src/main/java/com/iyzipay/model/Refund.java | 10 ++++ .../request/CreateRefundV2Request.java | 48 +++++++++++++++++++ .../com/iyzipay/functional/RefundTest.java | 32 +++++++++++++ .../java/com/iyzipay/sample/RefundSample.java | 23 +++++++++ .../com/iyzipay/sample/ThreedsSample.java | 1 + 5 files changed, 114 insertions(+) create mode 100644 src/main/java/com/iyzipay/request/CreateRefundV2Request.java diff --git a/src/main/java/com/iyzipay/model/Refund.java b/src/main/java/com/iyzipay/model/Refund.java index e1ec2857..1ea8f160 100644 --- a/src/main/java/com/iyzipay/model/Refund.java +++ b/src/main/java/com/iyzipay/model/Refund.java @@ -6,6 +6,7 @@ import com.iyzipay.IyzipayResource; import com.iyzipay.Options; import com.iyzipay.request.CreateRefundRequest; +import com.iyzipay.request.CreateRefundV2Request; public class Refund extends IyzipayResource { @@ -27,6 +28,15 @@ public static Refund create(CreateRefundRequest request, Options options) { Refund.class); } + public static Refund createV2(CreateRefundV2Request request, Options options) { + String path = "/v2/payment/refund"; + return HttpClient.create().post(options.getBaseUrl() + path, + getHttpProxy(options), + getHttpHeadersV2(path, request, options), + request, + Refund.class); + } + public String getPaymentId() { return paymentId; } diff --git a/src/main/java/com/iyzipay/request/CreateRefundV2Request.java b/src/main/java/com/iyzipay/request/CreateRefundV2Request.java new file mode 100644 index 00000000..aae555c2 --- /dev/null +++ b/src/main/java/com/iyzipay/request/CreateRefundV2Request.java @@ -0,0 +1,48 @@ +package com.iyzipay.request; + +import com.iyzipay.Request; +import com.iyzipay.ToStringRequestBuilder; + +import java.math.BigDecimal; + +public class CreateRefundV2Request extends Request { + + private String paymentId; + private BigDecimal price; + private String ip; + + + public String getPaymentId() { + return paymentId; + } + + public void setPaymentId(String paymentId) { + this.paymentId = paymentId; + } + + public BigDecimal getPrice() { + return price; + } + + public void setPrice(BigDecimal price) { + this.price = price; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + @Override + public String toString() { + return new ToStringRequestBuilder(this) + .appendSuper(super.toString()) + .append("paymentId", paymentId) + .append("price", price) + .append("ip", ip) + .toString(); + } +} \ No newline at end of file diff --git a/src/test/java/com/iyzipay/functional/RefundTest.java b/src/test/java/com/iyzipay/functional/RefundTest.java index 41d0c15f..df2f27b0 100644 --- a/src/test/java/com/iyzipay/functional/RefundTest.java +++ b/src/test/java/com/iyzipay/functional/RefundTest.java @@ -4,6 +4,7 @@ import com.iyzipay.model.*; import com.iyzipay.request.CreatePaymentRequest; import com.iyzipay.request.CreateRefundRequest; +import com.iyzipay.request.CreateRefundV2Request; import org.junit.Test; import java.math.BigDecimal; @@ -81,4 +82,35 @@ public void should_refund_fraudulent_payment() { assertNull(refund.getErrorMessage()); assertNull(refund.getErrorGroup()); } + + @Test + public void should_refund_v2_payment() { + CreatePaymentRequest paymentRequest = CreatePaymentRequestBuilder.create() + .standardListingPayment() + .build(); + + Payment payment = Payment.create(paymentRequest, options); + + CreateRefundV2Request request = new CreateRefundV2Request(); + request.setLocale(Locale.TR.getValue()); + request.setConversationId("123456789"); + request.setPaymentId(payment.getPaymentId()); + request.setPrice(new BigDecimal("1.1")); + request.setIp("85.34.78.112"); + + Refund refund = Refund.createV2(request, options); + + System.out.println(refund); + + assertEquals(Status.SUCCESS.getValue(), refund.getStatus()); + assertEquals(Locale.TR.getValue(), refund.getLocale()); + assertTrue(payment.verifySignature(options.getSecretKey())); + assertEquals("123456789", refund.getConversationId()); + assertEquals(payment.getPaymentId(), refund.getPaymentId()); + assertNotEquals(0, refund.getSystemTime()); + assertNotNull(refund.getHostReference()); + assertNull(refund.getErrorCode()); + assertNull(refund.getErrorMessage()); + assertNull(refund.getErrorGroup()); + } } \ No newline at end of file diff --git a/src/test/java/com/iyzipay/sample/RefundSample.java b/src/test/java/com/iyzipay/sample/RefundSample.java index ae833922..aacb2fc1 100644 --- a/src/test/java/com/iyzipay/sample/RefundSample.java +++ b/src/test/java/com/iyzipay/sample/RefundSample.java @@ -6,6 +6,7 @@ import com.iyzipay.model.RefundReason; import com.iyzipay.model.Status; import com.iyzipay.request.CreateRefundRequest; +import com.iyzipay.request.CreateRefundV2Request; import org.junit.Test; import java.math.BigDecimal; @@ -88,4 +89,26 @@ public void should_refund_fraudulent_payment() { assertNull(refund.getErrorMessage()); assertNull(refund.getErrorGroup()); } + + @Test + public void should_refund_v2_payment() { + CreateRefundV2Request request = new CreateRefundV2Request(); + request.setLocale(Locale.TR.getValue()); + request.setConversationId("123456789"); + request.setPaymentId("1"); + request.setPrice(new BigDecimal("1.1")); + request.setIp("85.34.78.112"); + + Refund refund = Refund.createV2(request, options); + + System.out.println(refund); + + assertEquals(Status.SUCCESS.getValue(), refund.getStatus()); + assertEquals(Locale.TR.getValue(), refund.getLocale()); + assertEquals("123456789", refund.getConversationId()); + assertNotEquals(0, refund.getSystemTime()); + assertNull(refund.getErrorCode()); + assertNull(refund.getErrorMessage()); + assertNull(refund.getErrorGroup()); + } } diff --git a/src/test/java/com/iyzipay/sample/ThreedsSample.java b/src/test/java/com/iyzipay/sample/ThreedsSample.java index d3119ea1..1d8c679c 100644 --- a/src/test/java/com/iyzipay/sample/ThreedsSample.java +++ b/src/test/java/com/iyzipay/sample/ThreedsSample.java @@ -168,6 +168,7 @@ public void should_create_threeds_payment_v2() { assertEquals(Status.SUCCESS.getValue(), threedsPayment.getStatus()); assertEquals(Locale.TR.getValue(), threedsPayment.getLocale()); + assertTrue(threedsPayment.verifySignature(options.getSecretKey())); assertEquals("123456789", threedsPayment.getConversationId()); assertNotEquals(0, threedsPayment.getSystemTime()); assertNull(threedsPayment.getErrorCode());