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);
+ }
+}