diff --git a/CHANGELOG.md b/CHANGELOG.md
index ce5c899..71d9e3a 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.5]
+- Restore backward compatibility to the gateway version for cardWallet/session and cardWallet/authorize API methods
+
## [3.1.4]
- Added new method to Merchant API `authenticate`
diff --git a/build.gradle b/build.gradle
index f84860a..3e62dee 100644
--- a/build.gradle
+++ b/build.gradle
@@ -9,7 +9,7 @@ plugins {
}
group = 'com.altapay'
-version = '3.1.4'
+version = '3.1.5'
repositories {
mavenCentral()
diff --git a/readme.md b/readme.md
index 420ba1b..c1744ad 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.4
+ 3.1.5
### Gradle
- implementation 'com.altapay:sdk-java:3.1.4'
+ implementation 'com.altapay:sdk-java:3.1.5'
## Changelog
diff --git a/src/main/java/com/pensio/api/PensioMerchantAPI.java b/src/main/java/com/pensio/api/PensioMerchantAPI.java
index 0d554cf..5727a6f 100644
--- a/src/main/java/com/pensio/api/PensioMerchantAPI.java
+++ b/src/main/java/com/pensio/api/PensioMerchantAPI.java
@@ -675,7 +675,12 @@ public APIResponse cardWalletSession(CardWalletSessionRequest request) throws Pe
{
addParam(params, "applePayRequestData[validationUrl]", request.getApplePayRequestData().getValidationUrl());
addParam(params, "applePayRequestData[domain]", request.getApplePayRequestData().getDomain());
+
+ // backward compatibility with legacy flow
+ addParam(params, "validationUrl", request.getApplePayRequestData().getValidationUrl());
+ addParam(params, "domain", request.getApplePayRequestData().getDomain());
}
+
setPaymentRequestParameters(request, params);
return getAPIResponse("cardWallet/session", HttpMethod.POST, params);
@@ -687,11 +692,11 @@ public APIResponse cardWalletAuthorize(CardWalletAuthorizeRequest request) throw
addParam(params, "provider_data", request.getProviderData());
addParam(params, "payment_id", request.getPaymentId());
- if (!request.getPaymentInfos().getAll().isEmpty()) {
- for (PaymentInfo paymentInfo : request.getPaymentInfos().getAll()) {
- addParam(params, "transaction_info[" + paymentInfo.getKey() + "]", paymentInfo.getValue());
- }
- }
+ addParam(params, "sale_reconciliation_identifier", request.getSaleReconciliationIdentifier());
+ addParam(params, "sale_invoice_number", request.getSaleInvoiceNumber());
+ addParam(params, "sales_tax", request.getSalesTax());
+
+ setPaymentRequestParameters(request, params);
return getAPIResponse("cardWallet/authorize", HttpMethod.POST, params);
}
diff --git a/src/main/java/com/pensio/api/request/CardWalletAuthorizeRequest.java b/src/main/java/com/pensio/api/request/CardWalletAuthorizeRequest.java
index e815639..8f6a21c 100644
--- a/src/main/java/com/pensio/api/request/CardWalletAuthorizeRequest.java
+++ b/src/main/java/com/pensio/api/request/CardWalletAuthorizeRequest.java
@@ -1,18 +1,21 @@
package com.pensio.api.request;
-public class CardWalletAuthorizeRequest {
+import com.pensio.Amount;
+
+public class CardWalletAuthorizeRequest extends PaymentRequest {
- private String paymentId;
private String providerData;
- private final PaymentInfos paymentInfos = new PaymentInfos();
+ private String paymentId;
- public PaymentInfos getPaymentInfos() {
- return paymentInfos;
- }
+ // Optional parameters -- deprecated as others payment request attributes (reusing existing payment by payment_id)
+ private String saleReconciliationIdentifier;
+ private String saleInvoiceNumber;
+ private String salesTax;
- public CardWalletAuthorizeRequest addPaymentInfo(String key, String value) {
- paymentInfos.add(key, value);
- return this;
+ public CardWalletAuthorizeRequest(String providerData, String paymentId, String terminal, String shopOrderId, Amount amount) {
+ super(shopOrderId, terminal, amount);
+ this.providerData = providerData;
+ this.paymentId = paymentId;
}
public String getProviderData() {
@@ -33,4 +36,31 @@ public CardWalletAuthorizeRequest setPaymentId(String paymentId) {
return this;
}
+ public String getSaleReconciliationIdentifier() {
+ return saleReconciliationIdentifier;
+ }
+
+ public CardWalletAuthorizeRequest setSaleReconciliationIdentifier(String saleReconciliationIdentifier) {
+ this.saleReconciliationIdentifier = saleReconciliationIdentifier;
+ return this;
+ }
+
+ public String getSaleInvoiceNumber() {
+ return saleInvoiceNumber;
+ }
+
+ public CardWalletAuthorizeRequest setSaleInvoiceNumber(String saleInvoiceNumber) {
+ this.saleInvoiceNumber = saleInvoiceNumber;
+ return this;
+ }
+
+ public String getSalesTax() {
+ return salesTax;
+ }
+
+ public CardWalletAuthorizeRequest setSalesTax(String salesTax) {
+ this.salesTax = salesTax;
+ return this;
+ }
+
}