From a09f3f48938029dea1e661af60c7d6ec150011f7 Mon Sep 17 00:00:00 2001 From: Avni BALIKCI Date: Mon, 30 Oct 2023 13:39:49 +0300 Subject: [PATCH] Adds tompay integration --- Craftgate/Model/ApmAdditionalAction.cs | 2 ++ Craftgate/Model/ApmType.cs | 1 + Craftgate/Model/PaymentMethod.cs | 3 +- Craftgate/Model/PaymentProvider.cs | 3 +- Samples/PaymentSample.cs | 43 ++++++++++++++++++++++++++ 5 files changed, 50 insertions(+), 2 deletions(-) diff --git a/Craftgate/Model/ApmAdditionalAction.cs b/Craftgate/Model/ApmAdditionalAction.cs index 286da65..1089c63 100644 --- a/Craftgate/Model/ApmAdditionalAction.cs +++ b/Craftgate/Model/ApmAdditionalAction.cs @@ -6,6 +6,8 @@ public enum ApmAdditionalAction { [EnumMember(Value = "REDIRECT_TO_URL")] REDIRECT_TO_URL, [EnumMember(Value = "OTP_REQUIRED")] OTP_REQUIRED, + [EnumMember(Value = "WAIT_FOR_WEBHOOK")] WAIT_FOR_WEBHOOK, + [EnumMember(Value = "APPROVAL_REQUIRED")] APPROVAL_REQUIRED, [EnumMember(Value = "NONE")] NONE } } \ No newline at end of file diff --git a/Craftgate/Model/ApmType.cs b/Craftgate/Model/ApmType.cs index 50ef44b..518e73d 100644 --- a/Craftgate/Model/ApmType.cs +++ b/Craftgate/Model/ApmType.cs @@ -17,6 +17,7 @@ public enum ApmType [EnumMember(Value = "AFTERPAY")] AFTERPAY, [EnumMember(Value = "STRIPE")] STRIPE, [EnumMember(Value = "KASPI")] KASPI, + [EnumMember(Value = "TOMPAY")] TOMPAY, [EnumMember(Value = "FUND_TRANSFER")] FUND_TRANSFER, [EnumMember(Value = "CASH_ON_DELIVERY")] CASH_ON_DELIVERY } diff --git a/Craftgate/Model/PaymentMethod.cs b/Craftgate/Model/PaymentMethod.cs index 63bb129..f3654cc 100644 --- a/Craftgate/Model/PaymentMethod.cs +++ b/Craftgate/Model/PaymentMethod.cs @@ -16,6 +16,7 @@ public enum PaymentMethod [EnumMember(Value = "KLARNA")] KLARNA, [EnumMember(Value = "AFTERPAY")] AFTERPAY, [EnumMember(Value = "STRIPE")] STRIPE, - [EnumMember(Value = "KASPI")] KASPI + [EnumMember(Value = "KASPI")] KASPI, + [EnumMember(Value = "TOMPAY")] TOMPAY } } \ No newline at end of file diff --git a/Craftgate/Model/PaymentProvider.cs b/Craftgate/Model/PaymentProvider.cs index 48c9408..673ca04 100644 --- a/Craftgate/Model/PaymentProvider.cs +++ b/Craftgate/Model/PaymentProvider.cs @@ -16,6 +16,7 @@ public enum PaymentProvider [EnumMember(Value = "APPLEPAY")] APPLEPAY, [EnumMember(Value = "GOOGLEPAY")] GOOGLEPAY, [EnumMember(Value = "STRIPE")] STRIPE, - [EnumMember(Value = "KASPI")] KASPI + [EnumMember(Value = "KASPI")] KASPI, + [EnumMember(Value = "TOMPAY")] TOMPAY } } \ No newline at end of file diff --git a/Samples/PaymentSample.cs b/Samples/PaymentSample.cs index 5ca053e..4e7c2ec 100644 --- a/Samples/PaymentSample.cs +++ b/Samples/PaymentSample.cs @@ -1075,6 +1075,49 @@ public void Init_Kaspi_Apm_Payment() Assert.AreEqual(response.PaymentStatus, PaymentStatus.WAITING); Assert.AreEqual(response.AdditionalAction, ApmAdditionalAction.REDIRECT_TO_URL); } + + [Test] + public void Init_Tompay_Apm_Payment() + { + var additionalParams = new Dictionary(); + additionalParams.Add("channel", "channel"); + additionalParams.Add("phone", "phone"); + + var request = new InitApmPaymentRequest + { + ApmType = ApmType.TOMPAY, + Price = new decimal(1.0), + PaidPrice = new decimal(1.0), + Currency = Currency.TRY, + PaymentGroup = PaymentGroup.LISTING_OR_SUBSCRIPTION, + ConversationId = "conversationId", + ExternalId = "externalId", + CallbackUrl = "https://www.your-website.com/craftgate-apm-callback", + Items = new List + { + new PaymentItem + { + Name = "Item 1", + ExternalId = Guid.NewGuid().ToString(), + Price = new decimal(0.40) + }, + + new PaymentItem + { + Name = "Item 2", + ExternalId = Guid.NewGuid().ToString(), + Price = new decimal(0.60) + } + }, + AdditionalParams = additionalParams + }; + + var response = _craftgateClient.Payment().InitApmPayment(request); + Assert.NotNull(response); + Assert.NotNull(response.PaymentId); + Assert.AreEqual(response.PaymentStatus, PaymentStatus.WAITING); + Assert.AreEqual(response.AdditionalAction, ApmAdditionalAction.WAIT_FOR_WEBHOOK); + } [Test] public void Complete_Edenred_Apm_Payment()