Skip to content

Commit e0365a6

Browse files
authored
Release 4.1.0 (#116)
Co-authored-by: Vladislav Lipianin <>
1 parent edbeb38 commit e0365a6

File tree

9 files changed

+135
-81
lines changed

9 files changed

+135
-81
lines changed

.github/workflows/publish.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Publish package to the Maven Central Repository
22
on:
33
release:
4-
types: [ created ]
4+
types: [ published ]
55
jobs:
66
publish:
77
runs-on: ubuntu-latest

CHANGELOG.md

+12
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,18 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
66
and this project adheres
77
to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
88

9+
## [4.1.0](https://github.com/unzerdev/java-sdk/compare/4.0.0..4.1.0)
10+
11+
This release adds functionality to fetch payment page
12+
13+
### Added
14+
15+
* Added `com.unzer.payment.Unzer.fetchPaypage`
16+
17+
### Changed
18+
19+
* Changed return value for `com.unzer.payment.Paypage.getTypeUrl`. Was: `paypage/charge` or `paypage/authorize`, now: `paypage`
20+
921
## [4.0.0][4.0.0]
1022

1123
This release brings liability and exemption type support to Java SDK

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Java 1.8 or later.
1414
<dependency>
1515
<groupId>com.unzer.payment</groupId>
1616
<artifactId>java-sdk</artifactId>
17-
<version>4.0.0</version>
17+
<version>4.1.0</version>
1818
</dependency>
1919
```
2020

pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>com.unzer.payment</groupId>
88
<artifactId>java-sdk</artifactId>
9-
<version>4.0.0</version>
9+
<version>4.1.0</version>
1010
<name>Unzer Java SDK</name>
1111
<description>Unzer Java SDK provides an easy way to connect to the Unzer Rest API.</description>
1212
<url>https://docs.unzer.com/</url>
@@ -65,7 +65,7 @@
6565
<plugin>
6666
<groupId>org.apache.maven.plugins</groupId>
6767
<artifactId>maven-javadoc-plugin</artifactId>
68-
<version>4.0.0</version>
68+
<version>3.4.1</version>
6969
</plugin>
7070
</plugins>
7171
</reporting>

src/main/java/com/unzer/payment/Paypage.java

+1-5
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,7 @@ public class Paypage implements PaymentType {
5858

5959
@Override
6060
public String getTypeUrl() {
61-
String action = Optional
62-
.ofNullable(this.action)
63-
.orElse(Action.CHARGE)
64-
.toLowerCase();
65-
return "paypage/".concat(action);
61+
return "paypage";
6662
}
6763

6864
public BigDecimal getAmount() {

src/main/java/com/unzer/payment/Unzer.java

+9
Original file line numberDiff line numberDiff line change
@@ -1181,6 +1181,15 @@ public Paypage paypage(Paypage paypage) throws HttpCommunicationException {
11811181
return paypageService.initialize(paypage);
11821182
}
11831183

1184+
/**
1185+
* Retrieves created Paypage by id
1186+
* @param id paypage id
1187+
* @return paypage
1188+
*/
1189+
public Paypage fetchPaypage(String id) {
1190+
return paypageService.fetch(id);
1191+
}
1192+
11841193
public Linkpay linkpay(Linkpay linkpay) throws HttpCommunicationException {
11851194
return linkpayService.initialize(linkpay);
11861195
}

src/main/java/com/unzer/payment/service/PaypageService.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public PaypageService(Unzer unzer, UnzerRestCommunication restCommunication) {
4646
}
4747

4848
public Paypage initialize(Paypage paypage) throws HttpCommunicationException {
49-
return initialize(paypage, urlUtil.getRestUrl(paypage));
49+
return initialize(paypage, urlUtil.getInitPaypageUrl(paypage));
5050
}
5151

5252
public Paypage initialize(Paypage paypage, String url) throws HttpCommunicationException {
@@ -56,5 +56,9 @@ public Paypage initialize(Paypage paypage, String url) throws HttpCommunicationE
5656
return paypage;
5757
}
5858

59-
59+
public Paypage fetch(String paypageId) {
60+
String response = restCommunication.httpGet(urlUtil.getHttpGetUrl(new Paypage(), paypageId), unzer.getPrivateKey());
61+
JsonPaypage jsonPaypage = new JsonParser().fromJson(response, JsonPaypage.class);
62+
return jsonToBusinessClassMapper.mapToBusinessObject(new Paypage(), jsonPaypage);
63+
}
6064
}

src/main/java/com/unzer/payment/service/UrlUtil.java

+17
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package com.unzer.payment.service;
1717

1818
import com.unzer.payment.Basket;
19+
import com.unzer.payment.Paypage;
1920
import com.unzer.payment.Recurring;
2021
import com.unzer.payment.paymenttypes.PaymentType;
2122

@@ -136,6 +137,22 @@ public String getHirePurchaseRateUrl(BigDecimal amount, Currency currency, BigDe
136137
return stringBuilder.toString();
137138
}
138139

140+
public String getInitPaypageUrl(Paypage paypage) {
141+
StringBuilder stringBuilder = new StringBuilder();
142+
stringBuilder.append(getRestUrl());
143+
appendSlashIfNeeded(stringBuilder);
144+
stringBuilder.append(paypage.getTypeUrl());
145+
appendSlashIfNeeded(stringBuilder);
146+
147+
String action = Optional
148+
.ofNullable(paypage.getAction())
149+
.orElse(Paypage.Action.CHARGE)
150+
.toLowerCase();
151+
stringBuilder.append(action);
152+
153+
return stringBuilder.toString();
154+
}
155+
139156
@Deprecated
140157
private String getRestUrlInternal(Basket basket) {
141158
StringBuilder stringBuilder = new StringBuilder();

src/test/java/com/unzer/payment/business/PaypageTest.java

+86-70
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@
1919
import com.unzer.payment.Paypage;
2020
import com.unzer.payment.Unzer;
2121
import com.unzer.payment.communication.HttpCommunicationException;
22+
import com.unzer.payment.service.UrlUtil;
2223
import org.junit.jupiter.api.DynamicTest;
2324
import org.junit.jupiter.api.Test;
2425
import org.junit.jupiter.api.TestFactory;
2526

26-
import java.net.MalformedURLException;
2727
import java.util.Arrays;
2828
import java.util.Collection;
2929
import java.util.stream.Collectors;
@@ -34,88 +34,98 @@
3434
public class PaypageTest extends AbstractPaymentTest {
3535

3636
@Test
37-
public void testMaximumPaypage() throws HttpCommunicationException, MalformedURLException {
37+
public void testMaximumPaypage() throws HttpCommunicationException {
38+
Unzer unzer = getUnzer();
39+
3840
Paypage request = getMaximumPaypage();
39-
Paypage response = getUnzer().paypage(request);
40-
assertNull(response.getCard3ds());
41-
42-
assertNotNull(response);
43-
assertNotNull(response.getId());
44-
assertNotNull(response.getRedirectUrl());
45-
assertNotNull(response.getPaymentId());
46-
47-
assertEquals(request.getCurrency(), response.getCurrency());
48-
assertEquals(request.getReturnUrl(), response.getReturnUrl());
49-
assertEquals(request.getShopName(), response.getShopName());
50-
assertEquals(request.getShopDescription(), response.getShopDescription());
51-
assertEquals(request.getTagline(), response.getTagline());
52-
assertEquals(request.getTermsAndConditionUrl().toString(), response.getTermsAndConditionUrl().toString());
53-
assertEquals(request.getPrivacyPolicyUrl().toString(), response.getPrivacyPolicyUrl().toString());
54-
assertEquals(request.getLogoImage(), response.getLogoImage());
55-
assertEquals(request.getFullPageImage(), response.getFullPageImage());
56-
assertEquals(request.getContactUrl().toString(), response.getContactUrl().toString());
57-
assertEquals(request.getHelpUrl().toString(), response.getHelpUrl().toString());
58-
assertEquals(request.getImprintUrl().toString(), response.getImprintUrl().toString());
59-
assertEquals(request.getTermsAndConditionUrl().toString(), response.getTermsAndConditionUrl().toString());
60-
assertEquals(request.getPrivacyPolicyUrl().toString(), response.getPrivacyPolicyUrl().toString());
61-
assertEquals(request.getInvoiceId(), response.getInvoiceId());
62-
assertEquals(request.getOrderId(), response.getOrderId());
63-
assertEquals(request.getBillingAddressRequired(), response.getBillingAddressRequired());
64-
assertEquals(request.getShippingAddressRequired(), response.getShippingAddressRequired());
65-
assertEquals(Arrays.toString(request.getExcludeTypes()), Arrays.toString(response.getExcludeTypes()));
66-
assertEquals("charge", response.getAction().toLowerCase());
67-
68-
for (String key : response.getCss().keySet()) {
69-
assertEquals(request.getCss().get(key), response.getCss().get(key));
41+
Paypage createdPaypage = unzer.paypage(request);
42+
43+
Paypage fetchedPaypage = unzer.fetchPaypage(createdPaypage.getId());
44+
45+
assertNull(fetchedPaypage.getCard3ds());
46+
assertNotNull(fetchedPaypage);
47+
assertNotNull(fetchedPaypage.getId());
48+
assertNotNull(fetchedPaypage.getRedirectUrl());
49+
assertNotNull(fetchedPaypage.getPaymentId());
50+
51+
assertEquals(request.getCurrency(), fetchedPaypage.getCurrency());
52+
assertEquals(request.getReturnUrl(), fetchedPaypage.getReturnUrl());
53+
assertEquals(request.getShopName(), fetchedPaypage.getShopName());
54+
assertEquals(request.getShopDescription(), fetchedPaypage.getShopDescription());
55+
assertEquals(request.getTagline(), fetchedPaypage.getTagline());
56+
assertEquals(request.getTermsAndConditionUrl().toString(), fetchedPaypage.getTermsAndConditionUrl().toString());
57+
assertEquals(request.getPrivacyPolicyUrl().toString(), fetchedPaypage.getPrivacyPolicyUrl().toString());
58+
assertEquals(request.getLogoImage(), fetchedPaypage.getLogoImage());
59+
assertEquals(request.getFullPageImage(), fetchedPaypage.getFullPageImage());
60+
assertEquals(request.getContactUrl().toString(), fetchedPaypage.getContactUrl().toString());
61+
assertEquals(request.getHelpUrl().toString(), fetchedPaypage.getHelpUrl().toString());
62+
assertEquals(request.getImprintUrl().toString(), fetchedPaypage.getImprintUrl().toString());
63+
assertEquals(request.getTermsAndConditionUrl().toString(), fetchedPaypage.getTermsAndConditionUrl().toString());
64+
assertEquals(request.getPrivacyPolicyUrl().toString(), fetchedPaypage.getPrivacyPolicyUrl().toString());
65+
assertEquals(request.getInvoiceId(), fetchedPaypage.getInvoiceId());
66+
assertEquals(request.getOrderId(), fetchedPaypage.getOrderId());
67+
assertEquals(request.getBillingAddressRequired(), fetchedPaypage.getBillingAddressRequired());
68+
assertEquals(request.getShippingAddressRequired(), fetchedPaypage.getShippingAddressRequired());
69+
assertEquals(Arrays.toString(request.getExcludeTypes()), Arrays.toString(fetchedPaypage.getExcludeTypes()));
70+
assertEquals("charge", fetchedPaypage.getAction().toLowerCase());
71+
72+
for (String key : fetchedPaypage.getCss().keySet()) {
73+
assertEquals(request.getCss().get(key), fetchedPaypage.getCss().get(key));
7074
}
7175
}
7276

7377
@Test
74-
public void testPaypage_WithEmptyCssMap() throws MalformedURLException, HttpCommunicationException {
78+
public void testPaypage_WithEmptyCssMap() throws HttpCommunicationException {
79+
Unzer unzer = getUnzer();
80+
7581
Paypage request = getMaximumPaypage();
7682
request.setCss(null);
7783

78-
Paypage response = getUnzer().paypage(request);
79-
assertNull(response.getCard3ds());
80-
81-
assertNotNull(response);
82-
assertNotNull(response.getId());
83-
assertNotNull(response.getRedirectUrl());
84-
assertNotNull(response.getPaymentId());
85-
86-
assertEquals(request.getCurrency(), response.getCurrency());
87-
assertEquals(request.getReturnUrl(), response.getReturnUrl());
88-
assertEquals(request.getShopName(), response.getShopName());
89-
assertEquals(request.getShopDescription(), response.getShopDescription());
90-
assertEquals(request.getTagline(), response.getTagline());
91-
assertEquals(request.getTermsAndConditionUrl().toString(), response.getTermsAndConditionUrl().toString());
92-
assertEquals(request.getPrivacyPolicyUrl().toString(), response.getPrivacyPolicyUrl().toString());
93-
assertEquals(request.getLogoImage(), response.getLogoImage());
94-
assertEquals(request.getFullPageImage(), response.getFullPageImage());
95-
assertEquals(request.getContactUrl().toString(), response.getContactUrl().toString());
96-
assertEquals(request.getHelpUrl().toString(), response.getHelpUrl().toString());
97-
assertEquals(request.getImprintUrl().toString(), response.getImprintUrl().toString());
98-
assertEquals(request.getTermsAndConditionUrl().toString(), response.getTermsAndConditionUrl().toString());
99-
assertEquals(request.getPrivacyPolicyUrl().toString(), response.getPrivacyPolicyUrl().toString());
100-
assertEquals(request.getInvoiceId(), response.getInvoiceId());
101-
assertEquals(request.getOrderId(), response.getOrderId());
102-
assertEquals(request.getBillingAddressRequired(), response.getBillingAddressRequired());
103-
assertEquals(request.getShippingAddressRequired(), response.getShippingAddressRequired());
104-
assertEquals(Arrays.toString(request.getExcludeTypes()), Arrays.toString(response.getExcludeTypes()));
105-
assertEquals("charge", response.getAction().toLowerCase());
84+
Paypage createdPaypage = unzer.paypage(request);
85+
86+
Paypage fetchedPaypage = unzer.fetchPaypage(createdPaypage.getId());
87+
88+
assertNull(fetchedPaypage.getCard3ds());
89+
90+
assertNotNull(fetchedPaypage);
91+
assertNotNull(fetchedPaypage.getId());
92+
assertNotNull(fetchedPaypage.getRedirectUrl());
93+
assertNotNull(fetchedPaypage.getPaymentId());
94+
95+
assertEquals(request.getCurrency(), fetchedPaypage.getCurrency());
96+
assertEquals(request.getReturnUrl(), fetchedPaypage.getReturnUrl());
97+
assertEquals(request.getShopName(), fetchedPaypage.getShopName());
98+
assertEquals(request.getShopDescription(), fetchedPaypage.getShopDescription());
99+
assertEquals(request.getTagline(), fetchedPaypage.getTagline());
100+
assertEquals(request.getTermsAndConditionUrl().toString(), fetchedPaypage.getTermsAndConditionUrl().toString());
101+
assertEquals(request.getPrivacyPolicyUrl().toString(), fetchedPaypage.getPrivacyPolicyUrl().toString());
102+
assertEquals(request.getLogoImage(), fetchedPaypage.getLogoImage());
103+
assertEquals(request.getFullPageImage(), fetchedPaypage.getFullPageImage());
104+
assertEquals(request.getContactUrl().toString(), fetchedPaypage.getContactUrl().toString());
105+
assertEquals(request.getHelpUrl().toString(), fetchedPaypage.getHelpUrl().toString());
106+
assertEquals(request.getImprintUrl().toString(), fetchedPaypage.getImprintUrl().toString());
107+
assertEquals(request.getTermsAndConditionUrl().toString(), fetchedPaypage.getTermsAndConditionUrl().toString());
108+
assertEquals(request.getPrivacyPolicyUrl().toString(), fetchedPaypage.getPrivacyPolicyUrl().toString());
109+
assertEquals(request.getInvoiceId(), fetchedPaypage.getInvoiceId());
110+
assertEquals(request.getOrderId(), fetchedPaypage.getOrderId());
111+
assertEquals(request.getBillingAddressRequired(), fetchedPaypage.getBillingAddressRequired());
112+
assertEquals(request.getShippingAddressRequired(), fetchedPaypage.getShippingAddressRequired());
113+
assertEquals(Arrays.toString(request.getExcludeTypes()), Arrays.toString(fetchedPaypage.getExcludeTypes()));
114+
assertEquals("charge", fetchedPaypage.getAction().toLowerCase());
106115
}
107116

108117
@TestFactory
109118
public Collection<DynamicTest> testRestUrl() {
119+
UrlUtil urlUtil = new UrlUtil("any-key");
110120
class TestCase {
111-
String name;
112-
String action;
113-
String expectedUrl;
121+
final String name;
122+
final String action;
123+
final String expectedUrlPart;
114124

115-
public TestCase(String name, String action, String expectedUrl) {
125+
public TestCase(String name, String action, String expectedUrlPart) {
116126
this.name = name;
117127
this.action = action;
118-
this.expectedUrl = expectedUrl;
128+
this.expectedUrlPart = expectedUrlPart;
119129
}
120130
}
121131

@@ -138,16 +148,22 @@ public TestCase(String name, String action, String expectedUrl) {
138148
).map(t -> DynamicTest.dynamicTest(t.name, () -> {
139149
Paypage paypage = getMaximumPaypage()
140150
.setAction(t.action);
141-
assertEquals(t.expectedUrl, paypage.getTypeUrl());
151+
152+
String actualUrl = urlUtil.getInitPaypageUrl(paypage);
153+
String expectedUrl = urlUtil.getRestUrl() + t.expectedUrlPart;
154+
155+
assertEquals(expectedUrl, actualUrl);
142156
})).collect(Collectors.toList());
143157
}
144158

145159
@Test
146160
public void testAuthorize() throws HttpCommunicationException {
147161
Unzer unzer = getUnzer();
148162
Paypage request = getMaximumPaypage().setAction(Paypage.Action.AUTHORIZE);
163+
Paypage createdPaypage = unzer.paypage(request);
164+
165+
Paypage fetchedPaypage = unzer.fetchPaypage(createdPaypage.getId());
149166

150-
Paypage response = unzer.paypage(request);
151-
assertEquals("AUTHORIZE", response.getAction());
167+
assertEquals("AUTHORIZE", fetchedPaypage.getAction());
152168
}
153169
}

0 commit comments

Comments
 (0)