Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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