Skip to content

Commit ed91f99

Browse files
committed
Changes to codes made as listed below:
+ Added new field <solution> having properties <solution_id> and <solution_name> to AIM codes + Added test cases into Test Project to test sending values for <solution> - Removed null check on <RefId> in the <validateRequest()> method in the <CreateCustomerProfileController> class * Made changes to <HttpClient.java> to fix "No Response" error from remote server
1 parent 7970928 commit ed91f99

10 files changed

Lines changed: 98 additions & 38 deletions

File tree

src/main/java/net/authorize/AuthNetField.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,9 @@ public enum AuthNetField {
273273
X_SHIP_TO_STATE("x_ship_to_state"),
274274
X_SHIP_TO_ZIP("x_ship_to_zip"),
275275
X_SHOW_FORM("x_show_form"),
276+
/* ADDED */
277+
X_SOLUTION_ID("x_solution_id"),
278+
X_SOLUTION_NAME("x_solution_name"),
276279
X_SPLIT_TENDER_ID("x_split_tender_id"),
277280
X_STATE("x_state"),
278281
X_TAX("x_tax"),

src/main/java/net/authorize/Merchant.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,7 @@ public net.authorize.Result<?> postTransaction(Transaction transaction) {
281281
((net.authorize.aim.Transaction)transaction).isCardPresent()) {
282282
BasicXmlDocument responseXML = HttpClient.executeXML(this.environment, transaction);
283283
result = net.authorize.aim.cardpresent.Result.createResult(transaction, responseXML);
284+
//System.out.println(responseXML.dump());
284285
} else {
285286
Map<ResponseField, String> responseMap = HttpClient.execute(this.environment, transaction);
286287
result = net.authorize.aim.Result.createResult(transaction, responseMap);

src/main/java/net/authorize/Result.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ public static boolean isAuthorizeNetResponse(String md5Value, String apiLoginId,
5454
}
5555

5656
boolean result = md5Check != null && md5Check.equalsIgnoreCase( transHash);
57-
58-
return result;
57+
58+
return result;
5959
}
6060

6161
public static final String MessageDigestAlgorithm = "MD5";

src/main/java/net/authorize/aim/Transaction.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
import net.authorize.data.creditcard.CreditCard;
2828
import net.authorize.data.echeck.ECheck;
2929
import net.authorize.data.echeck.ECheckType;
30+
/* ADDED */
31+
import net.authorize.data.reporting.Solution;
3032
import net.authorize.util.BasicXmlDocument;
3133
import net.authorize.util.DeepCopy;
3234
import net.authorize.util.HttpClient;
@@ -58,6 +60,8 @@ public class Transaction extends net.authorize.Transaction implements Serializab
5860
private Order order;
5961
private ShippingAddress shippingAddress;
6062
private ShippingCharges shippingCharges;
63+
/* ADDED */
64+
private Solution solution;
6165
protected TransactionType transactionType;
6266
private boolean cardPresent = false;
6367
protected String MD5Value = null;
@@ -736,5 +740,26 @@ public String getMD5Value() {
736740
return MD5Value;
737741
}
738742

743+
/**
744+
* Set a solution field.
745+
*
746+
* @param solution
747+
*/
748+
public void setSolutionField(Solution solution) {
749+
this.solution = solution;
750+
751+
if(solution != null) {
752+
this.requestMap.put(AuthNetField.X_SOLUTION_ID.getFieldName(), solution.getId()!=null?solution.getId():EMPTY_STRING);
753+
this.requestMap.put(AuthNetField.X_SOLUTION_NAME.getFieldName(), solution.getName()!=null?solution.getName():EMPTY_STRING);
754+
}
755+
}
739756

757+
/**
758+
* Get a solution field.
759+
* @return Return the solution field.
760+
*
761+
*/
762+
public Solution getSolutionField() {
763+
return this.solution;
764+
}
740765
}

src/main/java/net/authorize/api/controller/CreateCustomerProfileController.java

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -18,32 +18,9 @@ protected void validateRequest() {
1818

1919
//validate required fields
2020
if ( null == request.getProfile()) throw new NullPointerException("Profile cannot be null");
21-
if ( null == request.getRefId()) throw new NullPointerException("RefId cannot be null");
2221
if ( null == request.getValidationMode() || ValidationModeEnum.NONE == request.getValidationMode()) throw new NullPointerException("ValidationMode cannot be null");
2322
if ( null == request.getProfile().getPaymentProfiles() || 0 == request.getProfile().getPaymentProfiles().size()) throw new NullPointerException("Payment Profile cannot be null or empty");
24-
25-
//validate not-required fields
26-
27-
28-
//creditCardOne.setCardCode("");
29-
30-
//keyBlock.setValue(value);
31-
32-
//paymentOne.setBankAccount(bankAccountOne);
33-
//paymentOne.setTrackData(trackDataOne);
34-
//paymentOne.setEncryptedTrackData(encryptedTrackDataOne);
35-
//paymentOne.setPayPal( payPalOne);
36-
37-
// driversLicenseOne = new DriversLicenseType();
38-
// driversLicenseOne.setNumber(getRandomString("DLNumber"));
39-
// driversLicenseOne.setState(getRandomString("WA"));
40-
// driversLicenseOne.setDateOfBirth(nowString);
41-
42-
// customerPaymentProfileOne.setBillTo(customerAddressOne);
43-
// customerPaymentProfileOne.setDriversLicense(driversLicenseOne);
44-
// customerPaymentProfileOne.setTaxId(getRandomString("XX"));
45-
46-
}
23+
}
4724

4825
@Override
4926
protected Class<CreateCustomerProfileResponse> getResponseType() {

src/main/java/net/authorize/util/HttpClient.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.apache.http.entity.StringEntity;
2626
import org.apache.http.impl.client.DefaultHttpClient;
2727
import org.apache.http.protocol.HTTP;
28+
import org.apache.http.params.CoreProtocolPNames;
2829

2930
/**
3031
* Transportation object used to facilitate the communication with the respective gateway.
@@ -68,6 +69,7 @@ private static HttpPost createHttpPost(Environment env, Transaction transaction)
6869
}
6970

7071
httpPost = new HttpPost(postUrl);
72+
httpPost.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
7173
httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
7274
httpPost.setEntity(new StringEntity(transaction.toNVPString()));
7375
} else if (transaction instanceof net.authorize.arb.Transaction ||
@@ -76,7 +78,8 @@ private static HttpPost createHttpPost(Environment env, Transaction transaction)
7678

7779
postUrl = new URI(env.getXmlBaseUrl() + "/xml/v1/request.api");
7880
httpPost = new HttpPost(postUrl);
79-
httpPost.setHeader("Content-Type", "text/xml; charset=utf-8");
81+
httpPost.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
82+
httpPost.setHeader("Content-Type", "text/xml; charset=utf-8");
8083
httpPost.setEntity(new StringEntity(transaction.toXMLString()));
8184
}
8285

src/test/java/net/authorize/aim/cardpresent/CardPresentXMLTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import net.authorize.data.creditcard.CreditCard;
1313
import net.authorize.data.xml.reporting.CardCodeResponseType;
1414
import net.authorize.util.BasicXmlDocument;
15+
// ADDED
16+
import net.authorize.data.reporting.Solution;
1517

1618
import org.junit.Before;
1719
import org.junit.Test;
@@ -20,6 +22,8 @@ public class CardPresentXMLTest extends UnitTestData {
2022

2123
private Customer customer;
2224
private Order order;
25+
// ADDED
26+
private Solution solution;
2327

2428
@Before
2529
public void setUp() {
@@ -36,6 +40,11 @@ public void setUp() {
3640
order = Order.createOrder();
3741
order.setDescription(orderDescription);
3842
order.setInvoiceNumber(invoiceNumber);
43+
44+
// create solution
45+
solution = Solution.createSolution();
46+
solution.setId("AAA100302");
47+
solution.setName("Test Solution #1");
3948
}
4049

4150
@Test
@@ -54,6 +63,7 @@ public void testApproval() {
5463
authCaptureTransaction.setCustomer(customer);
5564
authCaptureTransaction.setOrder(order);
5665
authCaptureTransaction.setCreditCard(creditCard);
66+
authCaptureTransaction.setSolutionField(solution);
5767
Assert.assertEquals("B1234123412341234^CARDUSER/JOHN^030510100000019301000000877000000", authCaptureTransaction.getCreditCard().getTrack1());
5868
Assert.assertEquals("1234123412341234=0305101193010877", authCaptureTransaction.getCreditCard().getTrack2());
5969

@@ -100,6 +110,7 @@ public void testDecline() {
100110
authCaptureTransaction.setCustomer(customer);
101111
authCaptureTransaction.setOrder(order);
102112
authCaptureTransaction.setCreditCard(creditCard);
113+
authCaptureTransaction.setSolutionField(solution);
103114

104115
net.authorize.aim.cardpresent.Result<net.authorize.aim.Transaction> result =
105116
Result.createResult(authCaptureTransaction, xmlResponse);
@@ -138,6 +149,7 @@ public void testError() {
138149
authCaptureTransaction.setCustomer(customer);
139150
authCaptureTransaction.setOrder(order);
140151
authCaptureTransaction.setCreditCard(creditCard);
152+
authCaptureTransaction.setSolutionField(solution);
141153

142154
net.authorize.aim.cardpresent.Result<net.authorize.aim.Transaction> result =
143155
Result.createResult(authCaptureTransaction, xmlResponse);

src/test/java/net/authorize/aim/cardpresent/functional_test/SimpleAuthCaptureTest.java

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
import net.authorize.data.Order;
1717
import net.authorize.data.creditcard.CardType;
1818
import net.authorize.data.creditcard.CreditCard;
19+
// ADDED
20+
import net.authorize.data.reporting.Solution;
1921

2022
import org.junit.Before;
2123
import org.junit.Test;
@@ -28,6 +30,8 @@ public class SimpleAuthCaptureTest extends UnitTestData {
2830
private Customer customer;
2931
private Order order;
3032
private CreditCard creditCard = CreditCard.createCreditCard();
33+
// ADDED
34+
private Solution solution;
3135

3236
@Before
3337
public void setUp() {
@@ -48,13 +52,18 @@ public void setUp() {
4852
// create credit card
4953
creditCard = CreditCard.createCreditCard();
5054
creditCard.setCardType(CardType.VISA);
51-
creditCard.setTrack1("%B4111111111111111^CARDUSER/JOHN^1803101000000000020000831000000?");
52-
creditCard.setTrack2(";4111111111111111=1803101000020000831?");
53-
54-
merchant = Merchant.createMerchant(Environment.SANDBOX, apiLoginID, transactionKey);
55-
merchant.setDeviceType(DeviceType.VIRTUAL_TERMINAL);
56-
merchant.setMarketType(MarketType.RETAIL);
57-
merchant.setMD5Value(merchantMD5Key);
55+
creditCard.setTrack1("%B4111111111111111^CARDUSER/JOHN^1803101000000000020000831000000?");
56+
creditCard.setTrack2(";4111111111111111=1803101000020000831?");
57+
58+
merchant = Merchant.createMerchant(Environment.SANDBOX, apiLoginID, transactionKey);
59+
merchant.setDeviceType(DeviceType.VIRTUAL_TERMINAL);
60+
merchant.setMarketType(MarketType.RETAIL);
61+
merchant.setMD5Value(merchantMD5Key);
62+
63+
// create solution
64+
solution = Solution.createSolution();
65+
solution.setId("AAA100302");
66+
solution.setName("Test Solution #1");
5867
}
5968

6069
@Test
@@ -68,6 +77,7 @@ public void testCreditCardAuthCapture() {
6877
authCaptureTransaction.setCreditCard(creditCard);
6978

7079
authCaptureTransaction.setMerchantDefinedField("super", "duper");
80+
authCaptureTransaction.setSolutionField(solution);
7181

7282
Result<Transaction> result = (Result<Transaction>) merchant.postTransaction(authCaptureTransaction);
7383

@@ -101,6 +111,7 @@ public void testAuthOnly() {
101111
authCaptureTransaction.setOrder(order);
102112
authCaptureTransaction.setCreditCard(creditCard);
103113
authCaptureTransaction.setMerchantDefinedField(mdfKey, mdfValue);
114+
authCaptureTransaction.setSolutionField(solution);
104115

105116
Result<Transaction> result = (Result<Transaction>)merchant
106117
.postTransaction(authCaptureTransaction);
@@ -127,6 +138,7 @@ public void testCaptureOnly() {
127138
captureTransaction.setCreditCard(creditCard);
128139
captureTransaction.setTransactionId(transactionId);
129140
captureTransaction.setAuthorizationCode(authCode);
141+
captureTransaction.setSolutionField(solution);
130142

131143
Result<Transaction> result = (Result<Transaction>)merchant
132144
.postTransaction(captureTransaction);

src/test/java/net/authorize/aim/functional_test/MultiOrderAuth_Capture_Void_CreditTest.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
import net.authorize.data.ShippingAddress;
1818
import net.authorize.data.ShippingCharges;
1919
import net.authorize.data.creditcard.CreditCard;
20+
// ADDED
21+
import net.authorize.data.reporting.Solution;
2022

2123
import org.junit.Before;
2224
import org.junit.Test;
@@ -34,13 +36,15 @@ public class MultiOrderAuth_Capture_Void_CreditTest extends UnitTestData {
3436
private ShippingCharges shippingCharges;
3537
private EmailReceipt emailReceipt;
3638
private static String splitTenderId = null;
39+
// ADDED
40+
private Solution solution;
3741

3842
@Before
3943
public void setUp() throws Exception {
4044
// create customer
4145
customer = Customer.createCustomer();
42-
customer.setFirstName(firstName);
43-
customer.setLastName(lastName);
46+
customer.setFirstName("TestOne");
47+
customer.setLastName("Part Two");
4448
customer.setAddress(address);
4549
customer.setCity(city);
4650
customer.setState(state);
@@ -124,6 +128,11 @@ public void setUp() throws Exception {
124128
emailReceipt.setFooterEmailReceipt(footerEmailReceipt);
125129
emailReceipt.setHeaderEmailReceipt(headerEmailReceipt);
126130
emailReceipt.setMerchantEmail(merchantEmail);
131+
132+
// create solution
133+
solution = Solution.createSolution();
134+
solution.setId("AAA100302");
135+
solution.setName("Test Solution #1");
127136
}
128137

129138
/**
@@ -159,6 +168,7 @@ public void testCreateSplitTenderAuthCapture() {
159168
authCaptureTransaction.setShippingCharges(shippingCharges);
160169
authCaptureTransaction.setEmailReceipt(emailReceipt);
161170
authCaptureTransaction.setMerchantDefinedField(mdfKey, mdfValue);
171+
authCaptureTransaction.setSolutionField(solution);
162172

163173
Result<Transaction> result = (Result<Transaction>)merchant.postTransaction(authCaptureTransaction);
164174

@@ -179,6 +189,7 @@ public void testCreateSplitTenderAuthCapture() {
179189
authCaptureTransaction.setShippingCharges(shippingCharges);
180190
authCaptureTransaction.setEmailReceipt(emailReceipt);
181191
authCaptureTransaction.setMerchantDefinedField(mdfKey, mdfValue);
192+
authCaptureTransaction.setSolutionField(solution);
182193

183194
result = (Result<Transaction>)merchant.postTransaction(authCaptureTransaction);
184195
Assert.assertTrue(result.isApproved());
@@ -204,6 +215,7 @@ private void getAuthCode() {
204215
authCaptureTransaction.setShippingCharges(shippingCharges);
205216
authCaptureTransaction.setEmailReceipt(emailReceipt);
206217
authCaptureTransaction.setMerchantDefinedField(mdfKey, mdfValue);
218+
authCaptureTransaction.setSolutionField(solution);
207219

208220
Result<Transaction> result = (Result<Transaction>)merchant.postTransaction(authCaptureTransaction);
209221

@@ -243,6 +255,7 @@ private void getCapture() {
243255
captureTransaction.setEmailReceipt(emailReceipt);
244256
captureTransaction.setAuthorizationCode(MultiOrderAuth_Capture_Void_CreditTest.authCode);
245257
captureTransaction.setMerchantDefinedField(mdfKey, mdfValue);
258+
captureTransaction.setSolutionField(solution);
246259

247260
Result<Transaction> result = (Result<Transaction>)merchant
248261
.postTransaction(captureTransaction);
@@ -276,6 +289,7 @@ public void testVoid() {
276289
voidTransaction.setShippingCharges(shippingCharges);
277290
voidTransaction.setEmailReceipt(emailReceipt);
278291
voidTransaction.setTransactionId(MultiOrderAuth_Capture_Void_CreditTest.transactionId);
292+
voidTransaction.setSolutionField(solution);
279293

280294
Result<Transaction> result = (Result<Transaction>)merchant
281295
.postTransaction(voidTransaction);
@@ -312,6 +326,7 @@ public void testCredit() {
312326
creditTransaction.setShippingCharges(shippingCharges);
313327
creditTransaction.setEmailReceipt(emailReceipt);
314328
creditTransaction.setTransactionId(MultiOrderAuth_Capture_Void_CreditTest.transactionId);
329+
creditTransaction.setSolutionField(solution);
315330

316331
Result<Transaction> result = (Result<Transaction>)merchant
317332
.postTransaction(creditTransaction);
@@ -340,6 +355,7 @@ public void testUnlinkedCredit() {
340355
Transaction creditTransaction = merchant.createAIMTransaction(
341356
TransactionType.UNLINKED_CREDIT, new BigDecimal(10.00));
342357
creditTransaction.setCreditCard(creditCard);
358+
creditTransaction.setSolutionField(solution);
343359

344360
Result<Transaction> result = (Result<Transaction>)merchant
345361
.postTransaction(creditTransaction);

0 commit comments

Comments
 (0)