From 8173c65e0dfd19f588eb08f94333e11322007c05 Mon Sep 17 00:00:00 2001 From: Gering112 <45523369+Gering112@users.noreply.github.com> Date: Tue, 11 Feb 2025 20:30:41 -0500 Subject: [PATCH 01/12] Created Recommendation class, changed Recommendation from string to list in Advice class. Added api-version:2 to header --- riskified-sdk/pom.xml | 2 +- .../java/com/riskified/RiskifiedClient.java | 3 +- .../java/com/riskified/models/Advice.java | 33 +++++++++++++++++++ .../com/riskified/models/Recommendation.java | 20 +++++++++++ .../java/com/riskified/models/ResOrder.java | 21 +----------- 5 files changed, 57 insertions(+), 22 deletions(-) create mode 100644 riskified-sdk/src/main/java/com/riskified/models/Advice.java create mode 100644 riskified-sdk/src/main/java/com/riskified/models/Recommendation.java diff --git a/riskified-sdk/pom.xml b/riskified-sdk/pom.xml index 1d61dd5..504d5b4 100644 --- a/riskified-sdk/pom.xml +++ b/riskified-sdk/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.riskified riskified-sdk - v2.13-score + v2-api-version Riskified SDK Riskified rest api SDK for java https://www.riskified.com diff --git a/riskified-sdk/src/main/java/com/riskified/RiskifiedClient.java b/riskified-sdk/src/main/java/com/riskified/RiskifiedClient.java index 6f6e863..9206390 100644 --- a/riskified-sdk/src/main/java/com/riskified/RiskifiedClient.java +++ b/riskified-sdk/src/main/java/com/riskified/RiskifiedClient.java @@ -1064,6 +1064,7 @@ private void addDataToRequest(Object data, HttpPost postRequest) throws IllegalS byte[] body = jsonData.getBytes("UTF-8"); String hmac = sha256Handler.createSHA256(body); postRequest.setHeader("X-RISKIFIED-HMAC-SHA256", hmac); + postRequest.setHeader("API-VERSION", "2"); ByteArrayEntity input; input = new ByteArrayEntity(body, ContentType.APPLICATION_JSON); postRequest.setEntity(input); @@ -1074,7 +1075,7 @@ private HttpPost createPostRequest(String url) { postRequest.setHeader(HttpHeaders.ACCEPT, "application/vnd.riskified.com; version=2"); postRequest.setHeader(HttpHeaders.ACCEPT, "application/json"); postRequest.setHeader("X-RISKIFIED-SHOP-DOMAIN", shopUrl); - postRequest.setHeader("User-Agent","riskified_java_sdk/2.13-score"); // TODO: take the version automatically + postRequest.setHeader("User-Agent","riskified_java_sdk/v2-api-version"); // TODO: take the version automatically postRequest.setHeader("Version",versionHeaderValue); return postRequest; } diff --git a/riskified-sdk/src/main/java/com/riskified/models/Advice.java b/riskified-sdk/src/main/java/com/riskified/models/Advice.java new file mode 100644 index 0000000..ced0906 --- /dev/null +++ b/riskified-sdk/src/main/java/com/riskified/models/Advice.java @@ -0,0 +1,33 @@ +package com.riskified.models; + +import java.util.List; + +public class Advice { + private boolean in_regulatory_scope; + private boolean safe_order; + private List recommendations; + + + public boolean getRegulatoryScope() { + return in_regulatory_scope; + } + + public void setRegulatoryScope(boolean in_regulatory_scope) { + this.in_regulatory_scope = in_regulatory_scope; + } + + public List getRecommendation() { + return recommendations; + } + public void setRecommendation(List recommendations) { + this.recommendations = recommendations; + } + + public boolean getSafeOrder() { + return safe_order; + } + public void setSafeOrder(boolean safe_order) { + this.safe_order = safe_order; + } +} + diff --git a/riskified-sdk/src/main/java/com/riskified/models/Recommendation.java b/riskified-sdk/src/main/java/com/riskified/models/Recommendation.java new file mode 100644 index 0000000..1c3d822 --- /dev/null +++ b/riskified-sdk/src/main/java/com/riskified/models/Recommendation.java @@ -0,0 +1,20 @@ +package com.riskified.models; + +public class Recommendation { + private String type; + private boolean recommended; + + + public String getType() { + return type; + } + public void setType(String type) { + this.type = type; + } + public boolean getIsRecommended() { + return recommended; + } + public void setRecommended(boolean recommended) { + this.recommended = recommended; + } +} diff --git a/riskified-sdk/src/main/java/com/riskified/models/ResOrder.java b/riskified-sdk/src/main/java/com/riskified/models/ResOrder.java index c6be000..d067a45 100644 --- a/riskified-sdk/src/main/java/com/riskified/models/ResOrder.java +++ b/riskified-sdk/src/main/java/com/riskified/models/ResOrder.java @@ -99,25 +99,6 @@ public void setAction(String action) { public RecoveryEligibility getRecoveryEligibility(){return recoveryEligibility;} public void setRecoveryEligibility(RecoveryEligibility recoveryEligibility){this.recoveryEligibility = recoveryEligibility;} - - public class Advice { - - private boolean in_regulatory_scope; - private boolean safe_order; - private String recommendation; - - - public boolean getRegulatoryScope() { - return in_regulatory_scope; - } - public String getRecommendation() { - return recommendation; - } - - public boolean getSafeOrder() { - return safe_order; - } - - } + } From fd20cb345538847e0d0621632ac733cd8e4b018a Mon Sep 17 00:00:00 2001 From: Gering112 <45523369+Gering112@users.noreply.github.com> Date: Tue, 18 Mar 2025 14:27:07 -0400 Subject: [PATCH 02/12] Changed amount from double to Double in DecisionDetails added riskScores to ResOrder Renamed tranStatus to transStatus Renamed tranStatusReason to transStatusReason --- riskified-sdk/pom.xml | 2 +- .../java/com/riskified/RiskifiedClient.java | 2 +- ...atusReason.java => TransStatusReason.java} | 10 ++++----- .../models/AuthenticationResult.java | 22 +++++++++---------- .../com/riskified/models/DecisionDetails.java | 2 +- .../java/com/riskified/models/ResOrder.java | 4 ++++ 6 files changed, 23 insertions(+), 19 deletions(-) rename riskified-sdk/src/main/java/com/riskified/{TranStatusReason.java => TransStatusReason.java} (74%) diff --git a/riskified-sdk/pom.xml b/riskified-sdk/pom.xml index afb9149..94f5302 100644 --- a/riskified-sdk/pom.xml +++ b/riskified-sdk/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.riskified riskified-sdk - v2.15.0 + v3.0.0 Riskified SDK Riskified rest api SDK for java https://www.riskified.com diff --git a/riskified-sdk/src/main/java/com/riskified/RiskifiedClient.java b/riskified-sdk/src/main/java/com/riskified/RiskifiedClient.java index 91bbc17..715ad9c 100644 --- a/riskified-sdk/src/main/java/com/riskified/RiskifiedClient.java +++ b/riskified-sdk/src/main/java/com/riskified/RiskifiedClient.java @@ -1074,7 +1074,7 @@ private HttpPost createPostRequest(String url) { postRequest.setHeader(HttpHeaders.ACCEPT, "application/vnd.riskified.com; version=2"); postRequest.setHeader(HttpHeaders.ACCEPT, "application/json"); postRequest.setHeader("X-RISKIFIED-SHOP-DOMAIN", shopUrl); - postRequest.setHeader("User-Agent","riskified_java_sdk/2.15.0"); // TODO: take the version automatically + postRequest.setHeader("User-Agent","riskified_java_sdk/3.0.0"); // TODO: take the version automatically postRequest.setHeader("Version",versionHeaderValue); return postRequest; } diff --git a/riskified-sdk/src/main/java/com/riskified/TranStatusReason.java b/riskified-sdk/src/main/java/com/riskified/TransStatusReason.java similarity index 74% rename from riskified-sdk/src/main/java/com/riskified/TranStatusReason.java rename to riskified-sdk/src/main/java/com/riskified/TransStatusReason.java index 33b4be8..0d77a99 100644 --- a/riskified-sdk/src/main/java/com/riskified/TranStatusReason.java +++ b/riskified-sdk/src/main/java/com/riskified/TransStatusReason.java @@ -1,6 +1,6 @@ package com.riskified; -public enum TranStatusReason { +public enum TransStatusReason { Zero_One("01"), Zero_TWO("02"), Zero_Three("03"), @@ -33,14 +33,14 @@ public enum TranStatusReason { - private final String tranStatusReason; + private final String transStatusReason; - TranStatusReason(String tranStatusReason) { - this.tranStatusReason = tranStatusReason; + TransStatusReason(String transStatusReason) { + this.transStatusReason = transStatusReason; } public String getValue() { - return tranStatusReason; + return transStatusReason; } } diff --git a/riskified-sdk/src/main/java/com/riskified/models/AuthenticationResult.java b/riskified-sdk/src/main/java/com/riskified/models/AuthenticationResult.java index 439cf94..1a7f845 100644 --- a/riskified-sdk/src/main/java/com/riskified/models/AuthenticationResult.java +++ b/riskified-sdk/src/main/java/com/riskified/models/AuthenticationResult.java @@ -2,7 +2,7 @@ import java.util.Date; -import com.riskified.TranStatusReason; +import com.riskified.TransStatusReason; import com.riskified.TransStatus; import com.riskified.validations.*; @@ -11,8 +11,8 @@ public class AuthenticationResult implements IValidated { private String eci; private String cavv; private Date createdAt; - private TransStatus tranStatus; - private TranStatusReason tranStatusReason; + private TransStatus transStatus; + private TransStatusReason transStatusReason; private Boolean liabilityShift; private Boolean three_d_challenge; private Boolean tra_exemption; @@ -23,21 +23,21 @@ public AuthenticationResult(String eci) { this.eci = eci; } - public TranStatusReason getTranStatusReason() { - return tranStatusReason; + public TransStatusReason getTransStatusReason() { + return transStatusReason; } - public void setTranStatusReason(TranStatusReason tranStatusReason) { - this.tranStatusReason = tranStatusReason; + public void setTransStatusReason(TransStatusReason transStatusReason) { + this.transStatusReason = transStatusReason; } - public TransStatus getTranStatus() { - return tranStatus; + public TransStatus getTransStatus() { + return transStatus; } - public void setTranStatus(TransStatus transStatus) { - this.tranStatus = transStatus; + public void setTransStatus(TransStatus transStatus) { + this.transStatus = transStatus; } diff --git a/riskified-sdk/src/main/java/com/riskified/models/DecisionDetails.java b/riskified-sdk/src/main/java/com/riskified/models/DecisionDetails.java index 2993da1..3b7c19a 100644 --- a/riskified-sdk/src/main/java/com/riskified/models/DecisionDetails.java +++ b/riskified-sdk/src/main/java/com/riskified/models/DecisionDetails.java @@ -9,7 +9,7 @@ public class DecisionDetails implements IValidated { private DecisionType externalStatus; private String reason; private Date decidedAt; - private double amount; + private Double amount; private String currency; private String notes; diff --git a/riskified-sdk/src/main/java/com/riskified/models/ResOrder.java b/riskified-sdk/src/main/java/com/riskified/models/ResOrder.java index c6be000..ea85783 100644 --- a/riskified-sdk/src/main/java/com/riskified/models/ResOrder.java +++ b/riskified-sdk/src/main/java/com/riskified/models/ResOrder.java @@ -13,6 +13,7 @@ public class ResOrder { private String action; private Advice advice; private RecoveryEligibility recoveryEligibility; + private Double riskScore; public String getId() { @@ -99,6 +100,9 @@ public void setAction(String action) { public RecoveryEligibility getRecoveryEligibility(){return recoveryEligibility;} public void setRecoveryEligibility(RecoveryEligibility recoveryEligibility){this.recoveryEligibility = recoveryEligibility;} + + public void setRiskScore(Double riskScore){this.riskScore = riskScore;} + public Double getRiskScore(){return riskScore;} public class Advice { From 0215fbcddfa4931b59ec2f3604bbe643078effdc Mon Sep 17 00:00:00 2001 From: Gering112 <45523369+Gering112@users.noreply.github.com> Date: Mon, 31 Mar 2025 14:57:56 -0400 Subject: [PATCH 03/12] Recommendation Class: changed type from boolean to String, renamed recommended to Recommendation --- .../java/com/riskified/models/Recommendation.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/riskified-sdk/src/main/java/com/riskified/models/Recommendation.java b/riskified-sdk/src/main/java/com/riskified/models/Recommendation.java index 1c3d822..0168efe 100644 --- a/riskified-sdk/src/main/java/com/riskified/models/Recommendation.java +++ b/riskified-sdk/src/main/java/com/riskified/models/Recommendation.java @@ -2,7 +2,7 @@ public class Recommendation { private String type; - private boolean recommended; + private String recommendation; public String getType() { @@ -11,10 +11,11 @@ public String getType() { public void setType(String type) { this.type = type; } - public boolean getIsRecommended() { - return recommended; + + public String getRecommendation() { + return recommendation; } - public void setRecommended(boolean recommended) { - this.recommended = recommended; + public void setRecommendation(String recommended) { + this.recommendation = recommendation; } } From 33ede8691bc889877ee3335c1bfdd4ba569b9ef1 Mon Sep 17 00:00:00 2001 From: Gering112 <45523369+Gering112@users.noreply.github.com> Date: Mon, 31 Mar 2025 14:59:45 -0400 Subject: [PATCH 04/12] Updated property fields to camel case --- .../main/java/com/riskified/models/Advice.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/riskified-sdk/src/main/java/com/riskified/models/Advice.java b/riskified-sdk/src/main/java/com/riskified/models/Advice.java index ced0906..a010d6c 100644 --- a/riskified-sdk/src/main/java/com/riskified/models/Advice.java +++ b/riskified-sdk/src/main/java/com/riskified/models/Advice.java @@ -3,31 +3,33 @@ import java.util.List; public class Advice { - private boolean in_regulatory_scope; - private boolean safe_order; + private boolean inRegulatoryScope; + private boolean safeOrder; private List recommendations; public boolean getRegulatoryScope() { - return in_regulatory_scope; + return inRegulatoryScope; } - public void setRegulatoryScope(boolean in_regulatory_scope) { - this.in_regulatory_scope = in_regulatory_scope; + public void setRegulatoryScope(boolean inRegulatoryScope) { + this.inRegulatoryScope = inRegulatoryScope; } public List getRecommendation() { return recommendations; } + public void setRecommendation(List recommendations) { this.recommendations = recommendations; } public boolean getSafeOrder() { - return safe_order; + return safeOrder; } - public void setSafeOrder(boolean safe_order) { - this.safe_order = safe_order; + + public void setSafeOrder(boolean safeOrder) { + this.safeOrder = safeOrder; } } From f2d6c99e61ba0ddd56d64829feb931606d497b95 Mon Sep 17 00:00:00 2001 From: Gering112 <45523369+Gering112@users.noreply.github.com> Date: Mon, 31 Mar 2025 15:08:48 -0400 Subject: [PATCH 05/12] Updated naming conventions from snake to camel case, serialized name for TRA_exemption --- .../models/AuthenticationResult.java | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/riskified-sdk/src/main/java/com/riskified/models/AuthenticationResult.java b/riskified-sdk/src/main/java/com/riskified/models/AuthenticationResult.java index 439cf94..cd5561c 100644 --- a/riskified-sdk/src/main/java/com/riskified/models/AuthenticationResult.java +++ b/riskified-sdk/src/main/java/com/riskified/models/AuthenticationResult.java @@ -2,7 +2,8 @@ import java.util.Date; -import com.riskified.TranStatusReason; +import com.google.gson.annotations.SerializedName; +import com.riskified.TransStatusReason; import com.riskified.TransStatus; import com.riskified.validations.*; @@ -11,11 +12,13 @@ public class AuthenticationResult implements IValidated { private String eci; private String cavv; private Date createdAt; - private TransStatus tranStatus; - private TranStatusReason tranStatusReason; + private TransStatus transStatus; + private TransStatusReason transStatusReason; private Boolean liabilityShift; - private Boolean three_d_challenge; - private Boolean tra_exemption; + private Boolean threeDChallenge; + + @SerializedName("TRA_exemption") + private Boolean traExemption; @@ -23,21 +26,21 @@ public AuthenticationResult(String eci) { this.eci = eci; } - public TranStatusReason getTranStatusReason() { - return tranStatusReason; + public TransStatusReason getTransStatusReason() { + return transStatusReason; } - public void setTranStatusReason(TranStatusReason tranStatusReason) { - this.tranStatusReason = tranStatusReason; + public void setTransStatusReason(TransStatusReason transStatusReason) { + this.transStatusReason = transStatusReason; } - public TransStatus getTranStatus() { - return tranStatus; + public TransStatus getTransStatus() { + return transStatus; } - public void setTranStatus(TransStatus transStatus) { - this.tranStatus = transStatus; + public void setTransStatus(TransStatus transStatus) { + this.transStatus = transStatus; } @@ -85,19 +88,19 @@ public void validate(Validation validationType) } public boolean get3DChallenge() { - return three_d_challenge; + return threeDChallenge; } public void set3DChallenge(boolean ThreeDChallenge) { - this.three_d_challenge = ThreeDChallenge; + this.threeDChallenge = ThreeDChallenge; } public boolean getTRAExemption() { - return tra_exemption; + return traExemption; } public void setTRAExemption(boolean TRAExemption) { - tra_exemption = TRAExemption; + traExemption = TRAExemption; } } From 69832bde99f3114cfab62848a19e2e0a4d983b7d Mon Sep 17 00:00:00 2001 From: Gering112 <45523369+Gering112@users.noreply.github.com> Date: Mon, 31 Mar 2025 16:08:50 -0400 Subject: [PATCH 06/12] updated client test --- .../riskified/samples/orderClient/Client.java | 219 ++++++++++++++---- 1 file changed, 177 insertions(+), 42 deletions(-) diff --git a/riskified-sample/src/main/java/com/riskified/samples/orderClient/Client.java b/riskified-sample/src/main/java/com/riskified/samples/orderClient/Client.java index cb79785..ee140e7 100644 --- a/riskified-sample/src/main/java/com/riskified/samples/orderClient/Client.java +++ b/riskified-sample/src/main/java/com/riskified/samples/orderClient/Client.java @@ -4,14 +4,12 @@ import java.text.SimpleDateFormat; import java.util.*; -import com.riskified.Environment; +import com.riskified.*; +import com.riskified.validations.Validation; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpResponseException; -import com.riskified.RiskifiedError; //import com.riskified.TransStatus; -import com.riskified._type; -import com.riskified.RiskifiedClient; import com.riskified.models.*; import com.riskified.validations.FieldBadFormatException; @@ -26,6 +24,8 @@ public static void main(String[] arg) throws FieldBadFormatException, ParseExcep Order order = generateOrder(); + Order decideOrder = decideOrder(); + Order updateOrder = generateUpdateOrder(order); CheckoutOrder screenOrder = generateScreenOrder(); @@ -39,42 +39,55 @@ public static void main(String[] arg) throws FieldBadFormatException, ParseExcep DecisionOrder decisionOrder = generateDecisionOrder(order); ArrayOrders orders = generateHistoricalOrders(order); + ChargebackOrder chargebackOrder = generateChargebackOrder(); try { // Riskified client parameters can be set in the constructor, like this: // RiskifiedClient client = new RiskifiedClient("", "", Environment.SANDBOX); // Or according 'riskified_sdk.properties' configuration file, like this: - RiskifiedClient client = new RiskifiedClient(); - /* - Response resAdviseOrder = client.adviseOrder(adviseOrder); - - System.out.println("Advise order response:"); - System.out.println("id: " + resAdviseOrder.getOrder().getId()); - System.out.println("status: " + resAdviseOrder.getOrder().getStatus()); - System.out.println("advise response rec " + resAdviseOrder.getOrder().getAdvice().getRecommendation()); - System.out.println("advise response scope " + resAdviseOrder.getOrder().getAdvice().getRegulatoryScope()); - - - System.out.println("-----------------------------------------"); - - */ - Response resCheckoutOrder = client.checkoutOrder(checkoutOrder); - - System.out.println("Checkout create order response:"); - System.out.println("id: " + resCheckoutOrder.getOrder().getId()); - System.out.println("status: " + resCheckoutOrder.getOrder().getStatus()); - System.out.println("description: " + resCheckoutOrder.getOrder().getDescription()); - + //RiskifiedClient client = new RiskifiedClient("www.yossirtest_post.com", "6a21f867852d8a097b46803fa09ea61d", Environment.SANDBOX); + RiskifiedClient client = new RiskifiedClient("geringtestAsync.com", "d68531d725768c84748b16749d184592", Environment.SANDBOX); + + //RiskifiedClient client = new RiskifiedClient("www.kaorisugado_test_pre.com", "db76c5924368ff011f697a365a9be778", Environment.SANDBOX, Validation.IGNORE_MISSING); + //RiskifiedClient.RiskifiedClientBuilder builder = new RiskifiedClient.RiskifiedClientBuilder("www.theory.co.jp_jp", "4f65048287059f4a8aa4a36e0dd36aa5", Environment.SANDBOX); + //builder.setRequestTimeout(10); + //builder.setConnectionTimeout(5); + //RiskifiedClient client = new RiskifiedClient(builder); + +// Response resAdviseOrder = client.adviseOrder(adviseOrder); +// +// System.out.println("Advise order response:"); +// System.out.println("id: " + resAdviseOrder.getOrder().getId()); +// System.out.println("status: " + resAdviseOrder.getOrder().getStatus()); +// if (resAdviseOrder.getOrder().getAdvice() != null) { +// for(Recommendation recs: resAdviseOrder.getOrder().getAdvice().getRecommendation()){ +// System.out.println("rec type: " + recs.getType()); +// System.out.println( "recommended: " + recs.getRecommendation()); +// } +// +// } - Response resCheckoutDeniedOrder = client.checkoutDeniedOrder(checkoutDeniedOrder); System.out.println("-----------------------------------------"); - System.out.println("Checkout denied order response:"); - System.out.println("id: " + resCheckoutDeniedOrder.getOrder().getId()); - System.out.println("status: " + resCheckoutDeniedOrder.getOrder().getStatus()); - System.out.println("description: " + resCheckoutDeniedOrder.getOrder().getDescription()); +// Response resCheckoutOrder = client.checkoutOrder(checkoutOrder); +// +// System.out.println("Checkout create order response:"); +// System.out.println("id: " + resCheckoutOrder.getOrder().getId()); +// System.out.println("status: " + resCheckoutOrder.getOrder().getStatus()); +// System.out.println("description: " + resCheckoutOrder.getOrder().getDescription()); +// +// +// Response resCheckoutDeniedOrder = client.checkoutDeniedOrder(checkoutDeniedOrder); +// +// System.out.println("-----------------------------------------"); +// System.out.println("Checkout denied order response:"); +// System.out.println("id: " + resCheckoutDeniedOrder.getOrder().getId()); +// System.out.println("status: " + resCheckoutDeniedOrder.getOrder().getStatus()); +// System.out.println("description: " + resCheckoutDeniedOrder.getOrder().getDescription()); + +// Response resCreateOrder = client.createOrder(order); System.out.println("-----------------------------------------"); @@ -82,6 +95,40 @@ public static void main(String[] arg) throws FieldBadFormatException, ParseExcep System.out.println("id: " + resCreateOrder.getOrder().getId()); System.out.println("status: " + resCreateOrder.getOrder().getStatus()); System.out.println("description: " + resCreateOrder.getOrder().getDescription()); + System.out.println("risk score: " + resCreateOrder.getOrder().getRiskScore()); + +// Response resChargebackOrder = client.chargebackOrder(chargebackOrder); +// +// System.out.println("-----------------------------------------"); +// System.out.println("Chargeback order response:"); +// System.out.println("id: " + resChargebackOrder.getOrder().getId()); +// System.out.println("status: " + resChargebackOrder.getOrder().getStatus()); +// System.out.println("description: " + resChargebackOrder.getOrder().getDescription()); +// //System.out.println("risk score: " + resChargebackOrder.getOrder().getRiskScore()); + +// Response resDecision = client.decisionOrder(decisionOrder); +// +// System.out.println("-----------------------------------------"); +// System.out.println("Decision order response:"); +// System.out.println("id: " + resDecision.getOrder().getId()); +// System.out.println("status: " + resDecision.getOrder().getStatus()); +// System.out.println("description: " + resDecision.getOrder().getDescription()); +// //System.out.println("risk score: " + resDecision.getOrder().getRiskScore()); +// Response response = client.analyzeOrder(order); +// System.out.println("-----------------------------------------"); +// System.out.println("Create order response:"); +// System.out.println("id: " + response.getOrder().getId()); +// System.out.println("status: " + response.getOrder().getStatus()); +// System.out.println("description: " + response.getOrder().getDescription()); +// System.out.println("category: " + response.getOrder().getCategory()); +// System.out.println("risk score: " + response.getOrder().getRiskScore()); +// if (response.getOrder().getAdvice() != null) { +// for(Recommendation recs: response.getOrder().getAdvice().getRecommendation()){ +// System.out.println("rec type: " + recs.getType() + "is recommended: " + recs.getIsRecommended()); +// } +// +// } + /* Response resScreenOrder = client.screenOrder(screenOrder); @@ -152,6 +199,41 @@ public static void main(String[] arg) throws FieldBadFormatException, ParseExcep } + } + + private static Order decideOrder() throws ParseException { + Order order = new Order(); + order.setId("Test_LT2500118405"); + order.setName("null null"); + order.setCartToken("5cbbdfa359d38b9d250f7a7c943c7935fab8e28d24b7b1fccd0eabf553f702ac"); + order.setCreatedAt(parseDate("02-11-2025 00:00:00.0")); + order.setCurrency("JPY"); + order.setUpdatedAt(parseDate("01-23-2025 00:00:00.0")); + order.setGateway("gmopg_cc"); + order.setBrowserIp("113.32.8.18"); + order.setTotalPrice(6600); + order.setSource("web"); + order.setEmail("3ds_not_recommended@test.com"); + + + + LineItem lineItem = new LineItem(6000, 1, "セーター sweater", "3913470"); + lineItem.setColor("black"); + lineItem.setRequiresShipping(true); + lineItem.setProperties(null); + lineItem.setTaxLines(null); + lineItem.setBrand("Theory luxe"); + lineItem.setProductType("physical"); + lineItem.setDeliveredTo("shipping_address"); + + + order.setDiscountCodes(Arrays.asList(new DiscountCode(0, ""))); + + order.setPaymentDetails(Arrays.asList(new CreditCardPaymentDetails("5cbbdfa359d38b9d250f7a7c943c7935fab8e28d24b7b1fccd0eabf553f702ac", "", "", "410000******0100", "VISA") )); + Customer customer = new Customer("kaori.sugado@riskified.com", "太郎", "佐藤", "1", parseDate("02-11-2025 00:00:00.0"), true, 2); + order.setCustomer(customer); + return order; + } private static void printError(Exception e) { @@ -307,7 +389,7 @@ private static CheckoutOrder generateAdviseOrder() throws ParseException { order.setShippingLines(Arrays.asList(new ShippingLine(123, "free"))); CreditCardPaymentDetails creditCardPaymentDetails = new CreditCardPaymentDetails("370002", "y", "n", "xxxx-xxxx-xxxx-1234", "VISA"); - creditCardPaymentDetails.setType(_type.credit_card); + //creditCardPaymentDetails.setType(_type.credit_card); creditCardPaymentDetails.setAcquirerBin("232323"); creditCardPaymentDetails.setGateway("goGateway"); creditCardPaymentDetails.setMid("212212121"); @@ -334,16 +416,47 @@ private static CheckoutOrder generateAdviseOrder() throws ParseException { return order; } + private static ChargebackOrder generateChargebackOrder() throws ParseException { + ChargebackOrder order = new ChargebackOrder(); + order.setId("#120000000003459"); + ChargebackDetails cd = new ChargebackDetails(); + cd.setId("99992328889900"); + cd.setChargebackAt(parseDate("03-13-2025 00:00:00.0")); + cd.setChargebackCurrency("USD"); + cd.setChargebackAmount(123.23); + cd.setReasonCode("ACME Widget"); + cd.setType("cb"); + cd.setReasonCode("ACME Spring"); + cd.setGateway("VNTV"); + cd.setMid("72395"); + cd.setArn("2514514541324134"); + cd.setCreditCardCompany("M/C"); + //cd.setRespondBy(parseDate("03-14-2025 00:00:00.0")); + cd.setCardholder("M/C"); + cd.setMessage("someMessagee"); + order.setChargebackDetails(cd); + + //order.setFulfillment(null); + DisputeDetails disputeDetails = new DisputeDetails(); + //disputeDetails.setDisputeType("Fraud"); + //disputeDetails.setDisputeType("dispute Type"); + //order.setDisputeDetails(disputeDetails); + //System.out.println(order.getDisputeDetails()); + + return order; + + } + private static Order generateOrder() throws ParseException { Order order = new Order(); - order.setId("#120000000003451"); + order.setId("#120000000003460"); order.setName("#12345"); order.setEmail("great.customer@example.com"); - order.setCreatedAt(parseDate("15-12-2016 00:00:00.0")); - order.setClosedAt(parseDate("15-12-2016 00:00:00.0")); + order.setCreatedAt(parseDate("28-03-2025 00:00:00.0")); + order.setClosedAt(parseDate("28-03-2025 00:00:00.0")); order.setCurrency("CAD"); - order.setUpdatedAt(parseDate("15-12-2016 00:00:00.0")); + order.setUpdatedAt(parseDate("11-03-2025 00:00:00.0")); order.setGateway("mypaymentprocessor"); order.setBrowserIp("124.185.86.55"); order.setTotalPrice(120.22); @@ -361,6 +474,11 @@ private static Order generateOrder() throws ParseException { LineItem lineItem = new LineItem(200, 4, "ACME Spring", "AAA2"); lineItem.setColor("black"); + Recipient recipient = new Recipient(); + //recipient.setRoutingNumber("CNRB008304"); + //recipient.setAccountNumber("786868768"); + recipient.setEmail("regularLineItem@risky.com"); + //lineItem.setRecipient(recipient); TravelLineItem travelLineItem = new TravelLineItem(340, 1, "Flight from Israel to France", "211", "B11", 1, 1); travelLineItem.setDeparturePortCode("LLBG"); @@ -375,20 +493,37 @@ private static Order generateOrder() throws ParseException { travelLineItem.setCarrierCode("AF"); travelLineItem.setCarrierName("Air France"); travelLineItem.setRequiresShipping(false); - + + Recipient recipientTravel = new Recipient(); + //recipientTravel.setRoutingNumber("CNRB008304"); + //recipientTravel.setAccountNumber("786868768"); + recipientTravel.setEmail("travelLineItem@risky.com"); + //travelLineItem.setRecipient(recipientTravel); + + Recipient digitalRecipient = new Recipient(); + //digitalRecipient.setRoutingNumber("abc123"); + //digitalRecipient.setAccountNumber("18006868768"); + digitalRecipient.setEmail("DigitalLineItem2@risky.com"); + + //DigitalLineItem digitalLineItem = new DigitalLineItem(12.00, 1, "soap"); + //digitalLineItem.setRecipient(digitalRecipient); + //System.out.println(digitalLineItem.getRecipient().getRoutingNumber()); order.setShippingLines(Arrays.asList(new ShippingLine(123, "free"))); CreditCardPaymentDetails cr = new CreditCardPaymentDetails("370010", "y", "n", "xxxx-xxxx-xxxx-1234", "VISA"); cr.setInstallmentMonths(6); cr.setPaymentPlan("at&t"); + //cr.setExpiryMonth(12); + //cr.setExpiryYear(2027); - /* + AuthenticationResult authResults = new AuthenticationResult("1"); - authResults.setTranStatus(TransStatus.A); - authResults.set3DChallenge(true); + authResults.setTransStatus(TransStatus.A); + authResults.set3DChallenge(true); authResults.setTRAExemption(true); - + authResults.setTransStatusReason(TransStatusReason.Eighteen); + cr.setAuthenticationResult(authResults); - */ + order.setPaymentDetails(Arrays.asList( cr )); @@ -418,7 +553,7 @@ private static Order generateOrder() throws ParseException { - order.setPaymentDetails(Arrays.asList(new CreditCardPaymentDetails("370002", "y", "n", "xxxx-xxxx-xxxx-1234", "VISA") )); + order.setPaymentDetails(Arrays.asList(new CreditCardPaymentDetails("370002", "y", "n", "xxxx-xxxx-xxxx-1234", "VISA"), cr )); Address address = new Address("John", "Doe", "108 Main Street", "NYC", "1234567", "United States"); address.setCompany("Kansas Computers"); From 7ab81cbd6d49bfb9ee88a6cf3c00dc67fd530259 Mon Sep 17 00:00:00 2001 From: Gering112 <45523369+Gering112@users.noreply.github.com> Date: Tue, 1 Apr 2025 12:53:39 -0400 Subject: [PATCH 07/12] Added recommended --- .../main/java/com/riskified/models/Recommendation.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/riskified-sdk/src/main/java/com/riskified/models/Recommendation.java b/riskified-sdk/src/main/java/com/riskified/models/Recommendation.java index 0168efe..d9bb422 100644 --- a/riskified-sdk/src/main/java/com/riskified/models/Recommendation.java +++ b/riskified-sdk/src/main/java/com/riskified/models/Recommendation.java @@ -3,6 +3,7 @@ public class Recommendation { private String type; private String recommendation; + private Boolean recommended; public String getType() { @@ -18,4 +19,11 @@ public String getRecommendation() { public void setRecommendation(String recommended) { this.recommendation = recommendation; } + + public Boolean getRecommended() { + return recommended; + } + public void setRecommended(Boolean recommended) { + this.recommended = recommended; + } } From a37d7c4770ff388d7f7ebd1303463e45c1c3ad90 Mon Sep 17 00:00:00 2001 From: Gering112 <45523369+Gering112@users.noreply.github.com> Date: Wed, 2 Apr 2025 16:21:11 -0400 Subject: [PATCH 08/12] Created KycDetails class --- .../java/com/riskified/models/KycDetails.java | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 riskified-sdk/src/main/java/com/riskified/models/KycDetails.java diff --git a/riskified-sdk/src/main/java/com/riskified/models/KycDetails.java b/riskified-sdk/src/main/java/com/riskified/models/KycDetails.java new file mode 100644 index 0000000..beca90c --- /dev/null +++ b/riskified-sdk/src/main/java/com/riskified/models/KycDetails.java @@ -0,0 +1,57 @@ +package com.riskified.models; + +import com.riskified.validations.FieldBadFormatException; +import com.riskified.validations.IValidated; +import com.riskified.validations.Validation; + +import java.util.Date; + +public class KycDetails implements IValidated { + + private String vendorName; + private Date updateAt; + private Boolean kyc_verified; + private String kycType; + + + public KycDetails() { + } + + public void validate(Validation validationType) + throws FieldBadFormatException { + } + + public String getVendorName() { + return vendorName; + } + + public void setVendorName(String vendorName) { + this.vendorName = vendorName; + } + + public Date getUpdateAt() { + return updateAt; + } + + public void setUpdateAt(Date updateAt) { + this.updateAt = updateAt; + } + + public Boolean getKycVerified() { + return kyc_verified; + } + + public void setKycVerified(Boolean kyc_verified) { + this.kyc_verified = kyc_verified; + } + + public String getKycType() { + return kycType; + } + + public void setKycType(String kycType) { + this.kycType = kycType; + } + + +} From 3a0d70711a1ef84fcbc27057d4603487be4834b7 Mon Sep 17 00:00:00 2001 From: Gering112 <45523369+Gering112@users.noreply.github.com> Date: Wed, 2 Apr 2025 16:21:48 -0400 Subject: [PATCH 09/12] Added dateOfBirth and hasDefault moved kycVerified to KycDetails --- .../java/com/riskified/models/Customer.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/riskified-sdk/src/main/java/com/riskified/models/Customer.java b/riskified-sdk/src/main/java/com/riskified/models/Customer.java index b897e90..e9d059f 100644 --- a/riskified-sdk/src/main/java/com/riskified/models/Customer.java +++ b/riskified-sdk/src/main/java/com/riskified/models/Customer.java @@ -34,7 +34,9 @@ public class Customer implements IValidated { private Boolean verifiedPhone; private Date verifiedPhoneAt; private String userName; - private Boolean kycVerified; + private Boolean hasDefaulted; + private Date dateOfBirth; + private List kycDetails; public Customer() { @@ -261,9 +263,19 @@ public Integer getLinkedAccounts() { public void setUserName(String userName) { this.userName = userName; } - public Boolean getKycVerified() { return kycVerified; } + public List getKycDetails() { return kycDetails; } - public void setKycVerified(Boolean kycVerified) { - this.kycVerified = kycVerified; + public void setKycDetails(List kycDetails) { + this.kycDetails = kycDetails; } + + public void setHasDefaulted(Boolean hasDefaulted) { + this.hasDefaulted = hasDefaulted; + } + + public Boolean getHasDefaulted() { return hasDefaulted; } + + public void setDateOfBirth(Date dateOfBirth) { this.dateOfBirth = dateOfBirth; } + + public Date getDateOfBirth() { return dateOfBirth; } } From 6ed9b8f75d62b03e6fdce1c000fd820d2180f3dc Mon Sep 17 00:00:00 2001 From: Gering112 <45523369+Gering112@users.noreply.github.com> Date: Wed, 2 Apr 2025 16:21:59 -0400 Subject: [PATCH 10/12] Added token field --- .../com/riskified/models/BankWirePaymentDetails.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/riskified-sdk/src/main/java/com/riskified/models/BankWirePaymentDetails.java b/riskified-sdk/src/main/java/com/riskified/models/BankWirePaymentDetails.java index ca83cd1..41bc08b 100644 --- a/riskified-sdk/src/main/java/com/riskified/models/BankWirePaymentDetails.java +++ b/riskified-sdk/src/main/java/com/riskified/models/BankWirePaymentDetails.java @@ -5,6 +5,7 @@ public class BankWirePaymentDetails implements IPaymentDetails { private String accountNumber; private String routingNumber; + private String token; public BankWirePaymentDetails(String accountNumber, String routingNumber) { this.accountNumber = accountNumber; @@ -27,6 +28,14 @@ public void setRoutingNumber(String routingNumber) { this.routingNumber = routingNumber; } + public String getToken(){ + return token; + } + + public void setToken(String token){ + this.token = token; + } + public void validate(Validation validationType) throws FieldBadFormatException { if (validationType == Validation.ALL) { Validate.notNullOrEmpty(this, this.accountNumber, "Bank Account Number"); From 55e1ed1cec57e23eaf246751825ac611896568dd Mon Sep 17 00:00:00 2001 From: Gering112 <45523369+Gering112@users.noreply.github.com> Date: Thu, 3 Apr 2025 14:19:26 -0400 Subject: [PATCH 11/12] Update main.yml --- .github/workflows/main.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2ec8d27..5e678e6 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -41,10 +41,10 @@ jobs: - name: Build project with Maven run: mvn -B package --file pom.xml - - name: Publish to Apache Maven Central - if: github.event_name == 'push' && github.ref == 'refs/heads/master' - run: GPG_TTY=$(tty); mvn -s .github/workflows/maven-release-setting.xml clean deploy -DdeployAtEnd=true -DperformRelease=true -DskipTests -Dspotbugs.skip=true - env: - SERVER_OSSRH_USERNAME: ${{ secrets.SERVER_OSSRH_USERNAME }} - SERVER_OSSRH_PASSWORD: ${{ secrets.SERVER_OSSRH_PASSWORD }} - GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + # - name: Publish to Apache Maven Central + # if: github.event_name == 'push' && github.ref == 'refs/heads/master' + # run: GPG_TTY=$(tty); mvn -s .github/workflows/maven-release-setting.xml clean deploy -DdeployAtEnd=true -DperformRelease=true -DskipTests -Dspotbugs.skip=true + # env: + # SERVER_OSSRH_USERNAME: ${{ secrets.SERVER_OSSRH_USERNAME }} + # SERVER_OSSRH_PASSWORD: ${{ secrets.SERVER_OSSRH_PASSWORD }} + # GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} From b2a2a8adef66169a8df44fad090d9cfbc15ffe99 Mon Sep 17 00:00:00 2001 From: Gering112 <45523369+Gering112@users.noreply.github.com> Date: Thu, 3 Apr 2025 18:22:48 -0400 Subject: [PATCH 12/12] Remove some shop url --- .../com/riskified/samples/orderClient/Client.java | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/riskified-sample/src/main/java/com/riskified/samples/orderClient/Client.java b/riskified-sample/src/main/java/com/riskified/samples/orderClient/Client.java index ee140e7..7a215ed 100644 --- a/riskified-sample/src/main/java/com/riskified/samples/orderClient/Client.java +++ b/riskified-sample/src/main/java/com/riskified/samples/orderClient/Client.java @@ -44,15 +44,7 @@ public static void main(String[] arg) throws FieldBadFormatException, ParseExcep try { // Riskified client parameters can be set in the constructor, like this: // RiskifiedClient client = new RiskifiedClient("", "", Environment.SANDBOX); - // Or according 'riskified_sdk.properties' configuration file, like this: - //RiskifiedClient client = new RiskifiedClient("www.yossirtest_post.com", "6a21f867852d8a097b46803fa09ea61d", Environment.SANDBOX); - RiskifiedClient client = new RiskifiedClient("geringtestAsync.com", "d68531d725768c84748b16749d184592", Environment.SANDBOX); - //RiskifiedClient client = new RiskifiedClient("www.kaorisugado_test_pre.com", "db76c5924368ff011f697a365a9be778", Environment.SANDBOX, Validation.IGNORE_MISSING); - //RiskifiedClient.RiskifiedClientBuilder builder = new RiskifiedClient.RiskifiedClientBuilder("www.theory.co.jp_jp", "4f65048287059f4a8aa4a36e0dd36aa5", Environment.SANDBOX); - //builder.setRequestTimeout(10); - //builder.setConnectionTimeout(5); - //RiskifiedClient client = new RiskifiedClient(builder); // Response resAdviseOrder = client.adviseOrder(adviseOrder); // @@ -213,7 +205,7 @@ private static Order decideOrder() throws ParseException { order.setBrowserIp("113.32.8.18"); order.setTotalPrice(6600); order.setSource("web"); - order.setEmail("3ds_not_recommended@test.com"); + order.setEmail("test@test.com"); @@ -229,8 +221,8 @@ private static Order decideOrder() throws ParseException { order.setDiscountCodes(Arrays.asList(new DiscountCode(0, ""))); - order.setPaymentDetails(Arrays.asList(new CreditCardPaymentDetails("5cbbdfa359d38b9d250f7a7c943c7935fab8e28d24b7b1fccd0eabf553f702ac", "", "", "410000******0100", "VISA") )); - Customer customer = new Customer("kaori.sugado@riskified.com", "太郎", "佐藤", "1", parseDate("02-11-2025 00:00:00.0"), true, 2); + order.setPaymentDetails(Arrays.asList(new CreditCardPaymentDetails("1233434", "", "", "410000******0100", "VISA") )); + Customer customer = new Customer("test@test.com", "太郎", "佐藤", "1", parseDate("02-11-2025 00:00:00.0"), true, 2); order.setCustomer(customer); return order;