Skip to content

Commit 46f7651

Browse files
[COREP-5410] applepay source attribute to support APPLE_PAY_JS_API / PASSKIT scenarios
1 parent 5505b7a commit 46f7651

6 files changed

Lines changed: 63 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
# Changelog
22
All notable changes to this project will be documented in this file.
33

4+
## [3.1.10]
5+
- Add `source` parameter to Apple Pay request data to support APPLE_PAY_JS_API / PASSKIT scenarios
6+
47
## [3.1.9]
58
- Updated `APIResponse.xsd` to include `DeviceId`, replaced `DeviceInfo` and `GeolocationInfo` in `CustomerInfo` with `DeviceId`
69

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ plugins {
99
}
1010

1111
group = 'com.altapay'
12-
version = '3.1.9'
12+
version = '3.1.10'
1313

1414
repositories {
1515
mavenCentral()

src/main/java/com/pensio/api/PensioMerchantAPI.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -677,6 +677,10 @@ public APIResponse cardWalletSession(CardWalletSessionRequest request) throws Pe
677677
addParam(params, "applePayRequestData[validationUrl]", request.getApplePayRequestData().getValidationUrl());
678678
addParam(params, "applePayRequestData[domain]", request.getApplePayRequestData().getDomain());
679679

680+
if (request.getApplePayRequestData().getSource() != null) {
681+
addParam(params, "applePayRequestData[source]", request.getApplePayRequestData().getSource().name());
682+
}
683+
680684
// backward compatibility with legacy flow
681685
addParam(params, "validationUrl", request.getApplePayRequestData().getValidationUrl());
682686
addParam(params, "domain", request.getApplePayRequestData().getDomain());

src/main/java/com/pensio/api/request/provider/ApplePayRequestData.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ public class ApplePayRequestData {
44

55
private String validationUrl;
66
private String domain;
7+
private ApplePaySource source;
78

89
public String getValidationUrl() {
910
return validationUrl;
@@ -20,4 +21,12 @@ public String getDomain() {
2021
public void setDomain(String domain) {
2122
this.domain = domain;
2223
}
24+
25+
public ApplePaySource getSource() {
26+
return source;
27+
}
28+
29+
public void setSource(ApplePaySource source) {
30+
this.source = source;
31+
}
2332
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.pensio.api.request.provider;
2+
3+
public enum ApplePaySource {
4+
APPLE_PAY_JS_API,
5+
PASSKIT
6+
}
Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,51 @@
11
package com.pensio.api;
22

3+
import com.pensio.Amount;
4+
import com.pensio.Currency;
5+
import com.pensio.api.generated.APIResponse;
6+
import com.pensio.api.request.CardWalletSessionRequest;
7+
import com.pensio.api.request.provider.ApplePayRequestData;
8+
import com.pensio.api.request.provider.ApplePaySource;
39
import org.junit.jupiter.api.Assertions;
410
import org.junit.jupiter.api.Test;
511

12+
import java.util.Map;
13+
614
public class PensioMerchantApiUnitTests {
715

816
@Test
917
public void AvoidAnnoyingErrorNoTestsWhileRunningAnt() {
1018
Assertions.assertTrue(true);
1119
}
12-
}
20+
21+
@Test
22+
public void testCardWalletSessionWithApplePaySource() throws PensioAPIException {
23+
24+
final var validationUrl = "https://validation.url";
25+
final var domain = "example.com";
26+
ApplePaySource source = ApplePaySource.APPLE_PAY_JS_API;
27+
28+
final var api = new PensioMerchantAPI("http://base", "user", "pass") {
29+
@Override
30+
protected APIResponse getAPIResponse(String method, HttpMethod httpMethod, Map<String, String> requestVars) throws PensioAPIException {
31+
Assertions.assertEquals("cardWallet/session", method);
32+
Assertions.assertEquals(HttpMethod.POST, httpMethod);
33+
Assertions.assertEquals(validationUrl, requestVars.get("applePayRequestData[validationUrl]"));
34+
Assertions.assertEquals(domain, requestVars.get("applePayRequestData[domain]"));
35+
Assertions.assertEquals(source.name(), requestVars.get("applePayRequestData[source]"));
36+
37+
return null;
38+
}
39+
};
40+
41+
ApplePayRequestData applePayRequestData = new ApplePayRequestData();
42+
applePayRequestData.setValidationUrl(validationUrl);
43+
applePayRequestData.setDomain(domain);
44+
applePayRequestData.setSource(source);
45+
46+
CardWalletSessionRequest request = new CardWalletSessionRequest("terminal", "order123", Amount.get(100, Currency.DKK));
47+
request.setApplePayRequestData(applePayRequestData);
48+
49+
api.cardWalletSession(request);
50+
}
51+
}

0 commit comments

Comments
 (0)