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 pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>mx.openpay</groupId>
<artifactId>openpay-api-client</artifactId>
<version>1.9.7-SNAPSHOT</version>
<version>1.9.8-SNAPSHOT</version>
<packaging>jar</packaging>

<name>openpay-api-client</name>
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/mx/openpay/client/core/HttpServiceClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ public interface HttpServiceClient {

public void setKey(final String key);

public void setPublicIp(final String publicIp);

/**
* Optional method to set connection timeout. Should do nothing if not implemented.
* @param timeoutMillis
Expand Down
16 changes: 14 additions & 2 deletions src/main/java/mx/openpay/client/core/JsonServiceClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,18 @@ public class JsonServiceClient {
* @param key Public or private key. Public Key may have limited permissions.
*/
public JsonServiceClient(final String location, final String merchantId, final String key) {
this(location, merchantId, key, new DefaultSerializer(), new DefaultHttpServiceClient(true));
this(location, merchantId, key, null, new DefaultSerializer(), new DefaultHttpServiceClient(true));
}

/**
* Initializes a JsonServiceClient with the default JsonSerializer and HttpServiceClient.
* @param location Base URL of the Webservice.
* @param merchantId Merchant's Id.
* @param key Public or private key. Public Key may have limited permissions.
* @param publicIp Public IP
*/
public JsonServiceClient(final String location, final String merchantId, final String key, final String publicIp) {
this(location, merchantId, key, publicIp, new DefaultSerializer(), new DefaultHttpServiceClient(true));
}

/**
Expand All @@ -69,14 +80,15 @@ public JsonServiceClient(final String location, final String merchantId, final S
* @param httpClient
*/
public JsonServiceClient(final String location, final String merchantId, final String key,
final JsonSerializer serializer, final HttpServiceClient httpClient) {
final String publicIp, final JsonSerializer serializer, final HttpServiceClient httpClient) {
this.validateParameters(location, merchantId);
String url = this.getUrl(location);
this.root = url;
this.merchantId = merchantId;
this.serializer = serializer;
this.httpClient = httpClient;
this.httpClient.setKey(key);
this.httpClient.setPublicIp(publicIp);
}

private void validateParameters(final String location, final String merchantId) {
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/mx/openpay/client/core/OpenpayAPI.java
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,10 @@ public OpenpayAPI(final String location, final String apiKey, final String merch
this(new JsonServiceClient(location, merchantId, apiKey));
}

public OpenpayAPI(final String location, final String apiKey, final String merchantId, final String publicIp) {
this(new JsonServiceClient(location, merchantId, apiKey, publicIp));
}

public OpenpayAPI(final JsonServiceClient client) {
this.jsonClient = client;
this.cardOperations = new CardOperations(this.jsonClient);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,9 @@ public class DefaultHttpServiceClient implements HttpServiceClient {
@Setter
private String key;

@Setter
private String publicIp;

public DefaultHttpServiceClient(final boolean requirePoolManager) {
this.httpClient = this.initHttpClient(requirePoolManager, DEFAULT_CONNECTION_TIMEOUT,
DEFAULT_CONNECTION_TIMEOUT);
Expand Down Expand Up @@ -236,6 +239,9 @@ protected void addHeaders(final HttpRequestBase request) {
request.addHeader(new BasicHeader("User-Agent", this.userAgent));
request.addHeader(new BasicHeader("Accept", "application/json"));
request.setHeader(new BasicHeader("Content-Type", "application/json"));
if(this.publicIp != null) {
request.setHeader(new BasicHeader("X-Forwarded-For", this.publicIp));
}
}

protected void addAuthentication(final HttpRequestBase request) {
Expand Down
2 changes: 2 additions & 0 deletions src/test/integration/mx/openpay/core/client/TestConstans.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ public class TestConstans {

public static final String MERCHANT_ID = "mtfsdeoulmcoj0xofpfc";

public static final String PUBLIC_IP = "127.0.0.1";

public static final String API_KEY = "sk_4ec3ef18cd01471487ca719f566d4d3f";

public static final String CUSTOMER_ID = "alqrigidmw9jlgngwlrj";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,15 @@
import static mx.openpay.core.client.TestConstans.API_KEY;
import static mx.openpay.core.client.TestConstans.ENDPOINT;
import static mx.openpay.core.client.TestConstans.MERCHANT_ID;
import static mx.openpay.core.client.TestConstans.PUBLIC_IP;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.fail;

import java.util.TimeZone;

import mx.openpay.client.Merchant;
import org.apache.http.HttpStatus;
import org.junit.Test;

import mx.openpay.client.core.OpenpayAPI;
Expand Down Expand Up @@ -86,4 +89,11 @@ public void testNullLocation() throws Exception {
new OpenpayAPI(null, API_KEY, MERCHANT_ID);
}

@Test
public void testWithPublicIp() throws Exception {
OpenpayAPI api = new OpenpayAPI(ENDPOINT, API_KEY, MERCHANT_ID, PUBLIC_IP);
Merchant merchant = api.merchant().get();
assertEquals(MERCHANT_ID, merchant.getId());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public void testList_MerchantDoesNotExist() throws ServiceUnavailableException,
public void testGet() throws Exception {
BankAccount bankAccount = this.api.bankAccounts().list(null).get(0);
bankAccount = this.api.bankAccounts().get(bankAccount.getId());
assertEquals("012XXXXXXXXXX24616", bankAccount.getClabe());
assertEquals("012XXXXXXXXXX60639", bankAccount.getClabe());
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ public void testCreateMerchantBankPayout_WithBankAccount() throws ServiceUnavail
}

@Test
@Ignore
public void testCreateMerchantBankPayout_WithBankAccount_Breakdown() throws ServiceUnavailableException,
OpenpayServiceException {
BigDecimal amount = BigDecimal.ONE;
Expand Down