diff --git a/riskified-sdk/pom.xml b/riskified-sdk/pom.xml
index c55e681..04e9867 100644
--- a/riskified-sdk/pom.xml
+++ b/riskified-sdk/pom.xml
@@ -4,7 +4,7 @@
4.0.0
com.riskified
riskified-sdk
- v1.3.16
+ v1.3.18
Riskified SDK
Riskified rest api SDK for java
https://www.riskified.com
@@ -102,7 +102,7 @@
org.apache.httpcomponents
httpclient
- 4.3.6
+ 4.5.13
diff --git a/riskified-sdk/src/main/java/com/riskified/Environment.java b/riskified-sdk/src/main/java/com/riskified/Environment.java
index 7ae63e7..c40ff62 100644
--- a/riskified-sdk/src/main/java/com/riskified/Environment.java
+++ b/riskified-sdk/src/main/java/com/riskified/Environment.java
@@ -3,5 +3,6 @@
public enum Environment {
DEBUG,
SANDBOX,
- PRODUCTION
+ PRODUCTION,
+ CHINA_PRODUCTION
}
diff --git a/riskified-sdk/src/main/java/com/riskified/RiskifiedClient.java b/riskified-sdk/src/main/java/com/riskified/RiskifiedClient.java
index 581c703..0d56de0 100644
--- a/riskified-sdk/src/main/java/com/riskified/RiskifiedClient.java
+++ b/riskified-sdk/src/main/java/com/riskified/RiskifiedClient.java
@@ -33,7 +33,7 @@
import java.io.IOException;
import java.io.UnsupportedEncodingException;
-import java.util.Properties;
+import java.util.*;
/**
@@ -60,6 +60,7 @@ public class RiskifiedClient {
private String proxyUsername;
private String proxyPassword;
private HttpClientContext context;
+ private List logListeners = new ArrayList();
/**
* Riskified API client
@@ -100,6 +101,8 @@ public RiskifiedClient() throws RiskifiedError {
environment = Environment.PRODUCTION;
} else if (environmentType.equals("SANDBOX")) {
environment = Environment.SANDBOX;
+ } else if (environmentType.equals("CHINA_PRODUCTION")) {
+ environment = Environment.CHINA_PRODUCTION;
}
init(shopUrl, authKey, Utils.getBaseUrlFromEnvironment(environment), Utils.getBaseUrlSyncAnalyzeFromEnvironment(environment), Utils.getDecoBaseFromEnvironment(environment), Utils.getAccountBaseFromEnvironment(environment), Utils.getScreenBaseFromEnvironment(environment),validation);
@@ -941,7 +944,6 @@ private Response postOrder(Object data, String url) throws IOException {
response = executeClient(client, request);
String postBody = EntityUtils.toString(response.getEntity());
int status = response.getStatusLine().getStatusCode();
-
Response responseObject = getResponseObject(postBody);
switch (status) {
case 200:
@@ -971,17 +973,25 @@ private CheckoutResponse getCheckoutResponseObject(String postBody) throws IOExc
res.setOrder(res.getCheckout());
return res;
}
+
+ public void addListener(RiskifiedLogListener riskifiedListener) {
+ logListeners.add(riskifiedListener);
+ }
private void addDataToRequest(Object data, HttpPost postRequest) throws IllegalStateException, UnsupportedEncodingException {
String jsonData = JSONFormater.toJson(data);
+ for (RiskifiedLogListener riskifiedLogListener : logListeners)
+ riskifiedLogListener.getRequestLogs(jsonData);
byte[] body = jsonData.getBytes("UTF-8");
String hmac = sha256Handler.createSHA256(body);
postRequest.setHeader("X-RISKIFIED-HMAC-SHA256", hmac);
-
ByteArrayEntity input;
input = new ByteArrayEntity(body, ContentType.APPLICATION_JSON);
postRequest.setEntity(input);
}
+
+
+
private HttpPost createPostRequest(String url) {
HttpPost postRequest = new HttpPost(url);
diff --git a/riskified-sdk/src/main/java/com/riskified/RiskifiedLogListener.java b/riskified-sdk/src/main/java/com/riskified/RiskifiedLogListener.java
new file mode 100644
index 0000000..d209197
--- /dev/null
+++ b/riskified-sdk/src/main/java/com/riskified/RiskifiedLogListener.java
@@ -0,0 +1,7 @@
+package com.riskified;
+
+public interface RiskifiedLogListener {
+
+ public void getRequestLogs(String jsonLogs);
+
+}
diff --git a/riskified-sdk/src/main/java/com/riskified/RiskifiedLogger.java b/riskified-sdk/src/main/java/com/riskified/RiskifiedLogger.java
new file mode 100644
index 0000000..1f95d8d
--- /dev/null
+++ b/riskified-sdk/src/main/java/com/riskified/RiskifiedLogger.java
@@ -0,0 +1,10 @@
+package com.riskified;
+
+public class RiskifiedLogger implements RiskifiedLogListener {
+
+ public void getRequestLogs(String jsonLog) {
+ System.out.println(" Riskified's request payload = " + jsonLog);
+ }
+
+}
+
diff --git a/riskified-sdk/src/main/java/com/riskified/Utils.java b/riskified-sdk/src/main/java/com/riskified/Utils.java
index ecf2691..6de78e7 100644
--- a/riskified-sdk/src/main/java/com/riskified/Utils.java
+++ b/riskified-sdk/src/main/java/com/riskified/Utils.java
@@ -11,28 +11,35 @@ public class Utils {
public static final String ACCOUNT_SANDBOX_ENVIRONMENT = "https://api-sandbox.riskified.com";
public static final String ACCOUNT_PRODUCTION_ENVIRONMENT = "https://api.riskified.com";
public static final String SCREEN_SANDBOX_ENVIRONMENT = "https://screen-sandbox.riskified.com";
+ public static final String CHINA_ACCOUNT_PRODUCTION_ENVIRONMENT = "https://apicdn.riskified.com";
+ /*
+ * Riskified offers suite of services as well as different env, the getUrlString is used to fetch the appropriate service url & env
+ * For example, We added a new production env called China_Production only for ATO product, therefore we added a new parameter to incorporate it into getUrlString method
+ * while maintaining backward compatibility with Riskified Client
+ *
+ */
public static String getBaseUrlFromEnvironment(Environment environmentType) {
- return getUrlString(environmentType, SANDBOX_ENVIRONMENT, PRODUCTION_ENVIRONMENT);
+ return getUrlString(environmentType, SANDBOX_ENVIRONMENT, PRODUCTION_ENVIRONMENT, PRODUCTION_ENVIRONMENT);
}
public static String getBaseUrlSyncAnalyzeFromEnvironment(Environment environmentType) {
- return getUrlString(environmentType, SANDBOX_ENVIRONMENT, PRODUCTION_SYNC_ANALYZE_ENVIRONMENT);
+ return getUrlString(environmentType, SANDBOX_ENVIRONMENT, PRODUCTION_SYNC_ANALYZE_ENVIRONMENT,PRODUCTION_SYNC_ANALYZE_ENVIRONMENT);
}
public static String getDecoBaseFromEnvironment(Environment environmentType) {
- return getUrlString(environmentType, DECO_SANDBOX_ENVIRONMENT, DECO_PRODUCTION_ENVIRONMENT);
+ return getUrlString(environmentType, DECO_SANDBOX_ENVIRONMENT, DECO_PRODUCTION_ENVIRONMENT,DECO_PRODUCTION_ENVIRONMENT);
}
public static String getAccountBaseFromEnvironment(Environment environmentType) {
- return getUrlString(environmentType, ACCOUNT_SANDBOX_ENVIRONMENT, ACCOUNT_PRODUCTION_ENVIRONMENT);
+ return getUrlString(environmentType, ACCOUNT_SANDBOX_ENVIRONMENT, ACCOUNT_PRODUCTION_ENVIRONMENT,CHINA_ACCOUNT_PRODUCTION_ENVIRONMENT);
}
public static String getScreenBaseFromEnvironment(Environment environmentType) {
- return getUrlString(environmentType, SCREEN_SANDBOX_ENVIRONMENT, PRODUCTION_ENVIRONMENT);
+ return getUrlString(environmentType, SCREEN_SANDBOX_ENVIRONMENT, PRODUCTION_ENVIRONMENT,PRODUCTION_ENVIRONMENT);
}
- private static String getUrlString(Environment environmentType, String sandboxEnvironment, String productionEnvironment) {
+ private static String getUrlString(Environment environmentType, String sandboxEnvironment, String productionEnvironment, String chinaEnvironment) {
String url = null;
if (environmentType != null) {
switch (environmentType) {
@@ -45,6 +52,9 @@ private static String getUrlString(Environment environmentType, String sandboxEn
case PRODUCTION:
url = productionEnvironment;
break;
+ case CHINA_PRODUCTION:
+ url = chinaEnvironment;
+ break;
}
}
return url;