Skip to content

Commit

Permalink
Merge pull request #142 from Adyen/develop
Browse files Browse the repository at this point in the history
Release 1.7.0
  • Loading branch information
rikterbeek authored Nov 21, 2018
2 parents 822cfa6 + baaf623 commit 071f934
Show file tree
Hide file tree
Showing 18 changed files with 591 additions and 85 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Add this dependency to your project's POM:
<dependency>
<groupId>com.adyen</groupId>
<artifactId>adyen-java-api-library</artifactId>
<version>1.6.0</version>
<version>1.7.0</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion docs/install-library.html
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ <h3><a id="Maven_86"></a>Maven</h3>
class="hljs-tag">&lt;/<span class="hljs-title">groupId</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">artifactId</span>&gt;</span>adyen-java-api-library<span
class="hljs-tag">&lt;/<span class="hljs-title">artifactId</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">version</span>&gt;</span>1.6.0<span class="hljs-tag">&lt;/<span
<span class="hljs-tag">&lt;<span class="hljs-title">version</span>&gt;</span>1.7.0<span class="hljs-tag">&lt;/<span

class="hljs-title">version</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">dependency</span>&gt;</span>
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<groupId>com.adyen</groupId>
<artifactId>adyen-java-api-library</artifactId>
<packaging>jar</packaging>
<version>1.6.0</version>
<version>1.7.0</version>
<name>Adyen Java API Library</name>
<description>Adyen API Client Library for Java</description>
<url>https://github.com/adyen/adyen-java-api-library</url>
Expand Down
68 changes: 40 additions & 28 deletions src/main/java/com/adyen/Client.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,16 +35,16 @@ public class Client {
public static final String HPP_LIVE = "https://live.adyen.com/hpp";
public static final String MARKETPAY_ENDPOINT_TEST = "https://cal-test.adyen.com/cal/services";
public static final String MARKETPAY_ENDPOINT_LIVE = "https://cal-live.adyen.com/cal/services";
public static final String API_VERSION = "v30";
public static final String API_VERSION = "v40";
public static final String RECURRING_API_VERSION = "v25";
public static final String MARKETPAY_ACCOUNT_API_VERSION = "v4";
public static final String MARKETPAY_FUND_API_VERSION = "v3";
public static final String MARKETPAY_NOTIFICATION_API_VERSION = "v1";
public static final String USER_AGENT_SUFFIX = "adyen-java-api-library/";
public static final String LIB_VERSION = "1.6.0";
public static final String LIB_NAME = "adyen-java-api-library";
public static final String LIB_VERSION = "1.7.0";
public static final String CHECKOUT_ENDPOINT_TEST = "https://checkout-test.adyen.com/checkout";
public static final String CHECKOUT_ENDPOINT_LIVE_SUFFIX = "-checkout-live.adyenpayments.com/checkout";
public static final String CHECKOUT_API_VERSION = "v32";
public static final String CHECKOUT_API_VERSION = "v40";
public static final String CHECKOUT_UTILITY_API_VERSION = "v1";
public static final String ENDPOINT_PROTOCOL = "https://";

Expand All @@ -57,28 +57,40 @@ public Client(Config config) {
}

public Client(String username, String password, Environment environment, String applicationName) {
this(username, password, environment, null, applicationName);
}

public Client(String username, String password, Environment environment, String liveEndpointUrlPrefix, String applicationName) {

this.config = new Config();
this.config.setUsername(username);
this.config.setPassword(password);
this.setEnvironment(environment);
this.setEnvironment(environment, liveEndpointUrlPrefix);
this.config.setApplicationName(applicationName);
}

/**
* @deprecated As of library version 1.6.1, timeouts should be set by {@link #setTimeouts(int connectionTimeoutMillis, int readTimeoutMillis)} or directly by {@link com.adyen.Config#setConnectionTimeoutMillis(int connectionTimeoutMillis)}.
*/
@Deprecated
public Client(String username, String password, Environment environment, int connectionTimeoutMillis) {

this.config = new Config();
this.config.setUsername(username);
this.config.setPassword(password);
this.setEnvironment(environment);
this(username, password, environment, null);
this.config.setConnectionTimeoutMillis(connectionTimeoutMillis);
}

public Client(String apiKey, Environment environment) {
/**
* @deprecated As of library version 1.6.1, timeouts should be set by {@link #setTimeouts(int connectionTimeoutMillis, int readTimeoutMillis)} or directly by {@link com.adyen.Config#setConnectionTimeoutMillis(int connectionTimeoutMillis)}.
*/
@Deprecated
public Client(String username, String password, Environment environment, int connectionTimeoutMillis, String liveEndpointUrlPrefix) {

this.config = new Config();
this.config.setApiKey(apiKey);
this.setEnvironment(environment);
this(username, password, environment, liveEndpointUrlPrefix, null);
this.config.setConnectionTimeoutMillis(connectionTimeoutMillis);
}

public Client(String apiKey, Environment environment) {
this(apiKey, environment, null);
}

public Client(String apiKey, Environment environment, String liveEndpointUrlPrefix) {
Expand All @@ -87,28 +99,23 @@ public Client(String apiKey, Environment environment, String liveEndpointUrlPref
this.setEnvironment(environment, liveEndpointUrlPrefix);
}

/**
* @deprecated As of library version 1.6.1, timeouts should be set by {@link #setTimeouts(int connectionTimeoutMillis, int readTimeoutMillis)} or directly by {@link com.adyen.Config#setConnectionTimeoutMillis(int connectionTimeoutMillis)}.
*/
@Deprecated
public Client(String apiKey, Environment environment, int connectionTimeoutMillis) {

this.config = new Config();
this.config.setApiKey(apiKey);
this.setEnvironment(environment);
this.config.setConnectionTimeoutMillis(connectionTimeoutMillis);
}

public Client(String username, String password, Environment environment, int connectionTimeoutMillis, String liveEndpointUrlPrefix) {

this.config = new Config();
this.config.setUsername(username);
this.config.setPassword(password);
this.setEnvironment(environment, liveEndpointUrlPrefix);
this(apiKey, environment);
this.config.setConnectionTimeoutMillis(connectionTimeoutMillis);
}

/**
* @deprecated As of library version 1.6.1, timeouts should be set by {@link #setTimeouts(int connectionTimeoutMillis, int readTimeoutMillis)} or directly by {@link com.adyen.Config#setConnectionTimeoutMillis(int connectionTimeoutMillis)}.
*/
@Deprecated
public Client(String apiKey, Environment environment, int connectionTimeoutMillis, String liveEndpointUrlPrefix) {

this.config = new Config();
this.config.setApiKey(apiKey);
this.setEnvironment(environment, liveEndpointUrlPrefix);
this(apiKey, environment, liveEndpointUrlPrefix);
this.config.setConnectionTimeoutMillis(connectionTimeoutMillis);
}

Expand Down Expand Up @@ -176,4 +183,9 @@ public void setApplicationName(String applicationName) {
this.config.setApplicationName(applicationName);
}

public void setTimeouts(int connectionTimeoutMillis, int readTimeoutMillis) {
this.config.setConnectionTimeoutMillis(connectionTimeoutMillis);
this.config.setReadTimeoutMillis(readTimeoutMillis);
}

}
9 changes: 9 additions & 0 deletions src/main/java/com/adyen/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ public class Config {
protected String applicationName;
protected String apiKey;
protected int connectionTimeoutMillis;
protected int readTimeoutMillis;

//HPP specific
protected String hppEndpoint;
Expand Down Expand Up @@ -153,4 +154,12 @@ public void setConnectionTimeoutMillis(int connectionTimeoutMillis) {
this.connectionTimeoutMillis = connectionTimeoutMillis;
}

public int getReadTimeoutMillis() {
return readTimeoutMillis;
}

public void setReadTimeoutMillis(int readTimeoutMillis) {
this.readTimeoutMillis = readTimeoutMillis;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -67,16 +67,18 @@ public String request(String endpoint, String json, Config config, boolean isApi
@Override
public String request(String requestUrl, String requestBody, Config config, boolean isApiKeyRequired, RequestOptions requestOptions) throws IOException, HTTPClientException {
HttpURLConnection httpConnection = createRequest(requestUrl, config.getApplicationName(), requestOptions);

String apiKey = config.getApiKey();
int connectionTimeoutMillis = config.getConnectionTimeoutMillis();
// Use Api key if required or if provided
if (isApiKeyRequired || (apiKey != null && ! apiKey.isEmpty())) {
setApiKey(httpConnection, apiKey);
} else {
setBasicAuthentication(httpConnection, config.getUsername(), config.getPassword());
}

httpConnection.setConnectTimeout(connectionTimeoutMillis);
httpConnection.setConnectTimeout(config.getConnectionTimeoutMillis());
httpConnection.setReadTimeout(config.getReadTimeoutMillis());

setContentType(httpConnection, APPLICATION_JSON_TYPE);

return doPostRequest(httpConnection, requestBody);
Expand Down Expand Up @@ -150,7 +152,7 @@ private HttpURLConnection createRequest(String requestUrl, String applicationNam
httpConnection.setRequestMethod(METHOD_POST);

httpConnection.setRequestProperty(ACCEPT_CHARSET, CHARSET);
httpConnection.setRequestProperty(USER_AGENT, String.format("%s %s%s", applicationName, Client.USER_AGENT_SUFFIX, Client.LIB_VERSION));
httpConnection.setRequestProperty(USER_AGENT, String.format("%s %s/%s", applicationName, Client.LIB_NAME, Client.LIB_VERSION));
if (requestOptions != null && requestOptions.getIdempotencyKey() != null) {
httpConnection.setRequestProperty(IDEMPOTENCY_KEY, requestOptions.getIdempotencyKey());
}
Expand Down
34 changes: 33 additions & 1 deletion src/main/java/com/adyen/model/PaymentRequest.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,11 @@
import com.adyen.model.additionalData.InvoiceLine;
import com.adyen.model.additionalData.SplitPayment;
import com.adyen.model.additionalData.SplitPaymentItem;
import com.adyen.model.applicationinfo.ApplicationInfo;
import com.adyen.model.applicationinfo.CommonField;
import com.google.gson.annotations.SerializedName;
import static com.adyen.Client.LIB_NAME;
import static com.adyen.Client.LIB_VERSION;

/**
* PaymentRequest
Expand All @@ -47,6 +51,18 @@ public class PaymentRequest extends AbstractPaymentRequest<PaymentRequest> {
@SerializedName("store")
private String store = null;

@SerializedName("applicationInfo")
private ApplicationInfo applicationInfo;

public PaymentRequest() {
CommonField adyenLibrary = new CommonField();
adyenLibrary.setName(LIB_NAME);
adyenLibrary.setVersion(LIB_VERSION);

this.applicationInfo = new ApplicationInfo();
this.applicationInfo.setAdyenLibrary(adyenLibrary);
}

/**
* how the shopper interacts with the system
*/
Expand Down Expand Up @@ -287,6 +303,19 @@ public void setStore(String store) {
this.store = store;
}

public ApplicationInfo getApplicationInfo() {
return applicationInfo;
}

public void setApplicationInfo(ApplicationInfo applicationInfo) {
this.applicationInfo = applicationInfo;
}

public PaymentRequest applicationInfo(ApplicationInfo applicationInfo) {
this.applicationInfo = applicationInfo;
return this;
}

@Override
public boolean equals(Object o) {
if (this == o) {
Expand All @@ -299,7 +328,9 @@ public boolean equals(Object o) {
return super.equals(paymentRequest)
&& Objects.equals(this.card, paymentRequest.card)
&& Objects.equals(this.mpiData, paymentRequest.mpiData)
&& Objects.equals(this.bankAccount, paymentRequest.bankAccount)
&& Objects.equals(this.bankAccount,
paymentRequest.bankAccount)
&& Objects.equals(this.applicationInfo, paymentRequest.applicationInfo)
&& Objects.equals(this.store, paymentRequest.store);
}

Expand All @@ -317,6 +348,7 @@ public String toString() {
sb.append(" mpiData: ").append(toIndentedString(mpiData)).append("\n");
sb.append(" bankAccount: ").append(toIndentedString(bankAccount)).append("\n");
sb.append(" recurringProcessingModel: ").append(toIndentedString(recurringProcessingModel)).append("\n");
sb.append(" applicationInfo: ").append(toIndentedString(applicationInfo)).append("\n");
sb.append("}");
return sb.toString();
}
Expand Down
109 changes: 109 additions & 0 deletions src/main/java/com/adyen/model/applicationinfo/ApplicationInfo.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
/*
* ######
* ######
* ############ ####( ###### #####. ###### ############ ############
* ############# #####( ###### #####. ###### ############# #############
* ###### #####( ###### #####. ###### ##### ###### ##### ######
* ###### ###### #####( ###### #####. ###### ##### ##### ##### ######
* ###### ###### #####( ###### #####. ###### ##### ##### ######
* ############# ############# ############# ############# ##### ######
* ############ ############ ############# ############ ##### ######
* ######
* #############
* ############
*
* Adyen Java API Library
*
* Copyright (c) 2017 Adyen B.V.
* This file is open source and available under the MIT license.
* See the LICENSE file for more info.
*/
package com.adyen.model.applicationinfo;

import com.google.gson.annotations.SerializedName;

public class ApplicationInfo {
@SerializedName("adyenLibrary")
private CommonField adyenLibrary;

@SerializedName("adyenPaymentSource")
private CommonField adyenPaymentSource;

@SerializedName("merchantApplication")
private CommonField merchantApplication;

@SerializedName("merchantDevice")
private MerchantDevice merchantDevice;

@SerializedName("externalPlatform")
private ExternalPlatform externalPlatform;

@SerializedName("shopperInteractionDevice")
private ShopperInteractionDevice shopperInteractionDevice;

public CommonField getAdyenLibrary() {
return adyenLibrary;
}

public void setAdyenLibrary(CommonField adyenLibrary) {
this.adyenLibrary = adyenLibrary;
}

public CommonField getAdyenPaymentSource() {
return adyenPaymentSource;
}

public void setAdyenPaymentSource(CommonField adyenPaymentSource) {
this.adyenPaymentSource = adyenPaymentSource;
}

public CommonField getMerchantApplication() {
return merchantApplication;
}

public void setMerchantApplication(CommonField merchantApplication) {
this.merchantApplication = merchantApplication;
}

public MerchantDevice getMerchantDevice() {
return merchantDevice;
}

public void setMerchantDevice(MerchantDevice merchantDevice) {
this.merchantDevice = merchantDevice;
}

public ExternalPlatform getExternalPlatform() {
return externalPlatform;
}

public void setExternalPlatform(ExternalPlatform externalPlatform) {
this.externalPlatform = externalPlatform;
}

public ShopperInteractionDevice getShopperInteractionDevice() {
return shopperInteractionDevice;
}

public void setShopperInteractionDevice(ShopperInteractionDevice shopperInteractionDevice) {
this.shopperInteractionDevice = shopperInteractionDevice;
}

@Override
public String toString() {
return "ApplicationInfo{"
+ "adyenLibrary="
+ adyenLibrary
+ ", adyenPaymentSource="
+ adyenPaymentSource
+ ", merchantApplication="
+ merchantApplication
+ ", merchantDevice="
+ merchantDevice
+ ", externalPlatform="
+ externalPlatform
+ ", shopperInteractionDevice="
+ shopperInteractionDevice
+ '}';
}
}
Loading

0 comments on commit 071f934

Please sign in to comment.