diff --git a/CHANGELOG.md b/CHANGELOG.md index 0060384..a39bcd1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Changelog All notable changes to this project will be documented in this file. +## [3.1.21] +- Added `riskManager` and `maxConversion` objects to `configuration` to /createCheckoutSession endpoint. + ## [3.1.20] - Added `MerchantErrorMessage` and `MerchantErrorCode` fields to `Transaction` in API response, exposing the failure reason and error code for failed/declined payments. - Added credit card schemes section on `/getTerminals` for `CreditCard` terminals. diff --git a/build.gradle b/build.gradle index a3cb3d2..e673316 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ plugins { } group = 'com.altapay' -version = '3.1.20' +version = '3.1.21' repositories { mavenCentral() diff --git a/readme.md b/readme.md index b1139a8..715ebd6 100644 --- a/readme.md +++ b/readme.md @@ -49,12 +49,12 @@ For integrating Java projects with the AltaPay gateway. com.altapay sdk-java - 3.1.20 + 3.1.21 ### Gradle - implementation 'com.altapay:sdk-java:3.1.20' + implementation 'com.altapay:sdk-java:3.1.21' ## Changelog diff --git a/src/main/java/com/pensio/api/PensioMerchantAPI.java b/src/main/java/com/pensio/api/PensioMerchantAPI.java index f8012ca..02659d6 100644 --- a/src/main/java/com/pensio/api/PensioMerchantAPI.java +++ b/src/main/java/com/pensio/api/PensioMerchantAPI.java @@ -746,6 +746,18 @@ public CheckoutSessionResponse createCheckoutSession(CreateCheckoutSessionReques if (createCheckoutSessionRequest.getTerminals() != null) { addTerminals(params, createCheckoutSessionRequest.getTerminals()); } + if (createCheckoutSessionRequest.getRiskManagerPolicyGroup() != null) { + addParam(params, "risk_manager_policy_group", createCheckoutSessionRequest.getRiskManagerPolicyGroup()); + } + if (createCheckoutSessionRequest.getRiskManagerPolicy() != null) { + addParam(params, "risk_manager_policy", createCheckoutSessionRequest.getRiskManagerPolicy()); + } + if (createCheckoutSessionRequest.getMaxConversionPolicyGroup() != null) { + addParam(params, "max_conversion_policy_group", createCheckoutSessionRequest.getMaxConversionPolicyGroup()); + } + if (createCheckoutSessionRequest.getMaxConversionPolicy() != null) { + addParam(params, "max_conversion_policy", createCheckoutSessionRequest.getMaxConversionPolicy()); + } return checkoutSession(apiUrl, params); } diff --git a/src/main/java/com/pensio/api/request/CreateCheckoutSessionRequest.java b/src/main/java/com/pensio/api/request/CreateCheckoutSessionRequest.java index d02d7ae..5811a2d 100644 --- a/src/main/java/com/pensio/api/request/CreateCheckoutSessionRequest.java +++ b/src/main/java/com/pensio/api/request/CreateCheckoutSessionRequest.java @@ -5,6 +5,10 @@ public class CreateCheckoutSessionRequest extends PaymentRequest { private List terminals; + private String riskManagerPolicyGroup; + private String riskManagerPolicy; + private String maxConversionPolicyGroup; + private String maxConversionPolicy; public List getTerminals() { return terminals; @@ -13,4 +17,40 @@ public List getTerminals() { public void setTerminals(List terminals) { this.terminals = terminals; } + + public String getRiskManagerPolicyGroup() { + return riskManagerPolicyGroup; + } + + public CreateCheckoutSessionRequest setRiskManagerPolicyGroup(String riskManagerPolicyGroup) { + this.riskManagerPolicyGroup = riskManagerPolicyGroup; + return this; + } + + public String getRiskManagerPolicy() { + return riskManagerPolicy; + } + + public CreateCheckoutSessionRequest setRiskManagerPolicy(String riskManagerPolicy) { + this.riskManagerPolicy = riskManagerPolicy; + return this; + } + + public String getMaxConversionPolicyGroup() { + return maxConversionPolicyGroup; + } + + public CreateCheckoutSessionRequest setMaxConversionPolicyGroup(String maxConversionPolicyGroup) { + this.maxConversionPolicyGroup = maxConversionPolicyGroup; + return this; + } + + public String getMaxConversionPolicy() { + return maxConversionPolicy; + } + + public CreateCheckoutSessionRequest setMaxConversionPolicy(String maxConversionPolicy) { + this.maxConversionPolicy = maxConversionPolicy; + return this; + } } diff --git a/src/test/java/com/pensio/api/MerchantApi_CheckoutSessionParameterTests.java b/src/test/java/com/pensio/api/MerchantApi_CheckoutSessionParameterTests.java new file mode 100644 index 0000000..5c2090f --- /dev/null +++ b/src/test/java/com/pensio/api/MerchantApi_CheckoutSessionParameterTests.java @@ -0,0 +1,45 @@ +package com.pensio.api; + +import com.pensio.Amount; +import com.pensio.Currency; +import com.pensio.api.generated.APIResponse; +import com.pensio.api.generated.Body; +import com.pensio.api.request.CreateCheckoutSessionRequest; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class MerchantApi_CheckoutSessionParameterTests { + + @Test + void createCheckoutSessionEmitsRiskManagerAndMaxConversionParams() throws PensioAPIException { + final var api = new PensioMerchantAPI("http://base", "user", "pass") { + @Override + protected APIResponse getAPIResponse(String method, HttpMethod httpMethod, Map requestVars) { + assertEquals("checkoutSession", method); + assertEquals(HttpMethod.POST, httpMethod); + assertEquals("group_rm_1", requestVars.get("risk_manager_policy_group")); + assertEquals("policy_rm_1", requestVars.get("risk_manager_policy")); + assertEquals("group_mc_1", requestVars.get("max_conversion_policy_group")); + assertEquals("policy_mc_1", requestVars.get("max_conversion_policy")); + + APIResponse response = new APIResponse(); + response.setBody(new Body()); + return response; + } + }; + + CreateCheckoutSessionRequest request = new CreateCheckoutSessionRequest() + .setTerminal("Terminal") + .setAmount(Amount.get(100, Currency.DKK)) + .setShopOrderId("order123") + .setRiskManagerPolicyGroup("group_rm_1") + .setRiskManagerPolicy("policy_rm_1") + .setMaxConversionPolicyGroup("group_mc_1") + .setMaxConversionPolicy("policy_mc_1"); + + api.createCheckoutSession(request); + } +}