Skip to content

Commit 0e2e181

Browse files
author
Sunny Raj Rathod
committed
Merge pull request AuthorizeNet#52 from akankaria/master
Q1 updates
2 parents c52b373 + 1b9d0f8 commit 0e2e181

9 files changed

Lines changed: 190 additions & 43 deletions

File tree

pom.xml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
22
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
3+
<properties>
4+
<sdkVersion>1.8.8</sdkVersion>
5+
</properties>
36
<modelVersion>4.0.0</modelVersion>
47
<groupId>net.authorize.sample</groupId>
58
<artifactId>SampleCode</artifactId>
@@ -11,7 +14,7 @@
1114
<dependency>
1215
<groupId>net.authorize</groupId>
1316
<artifactId>anet-java-sdk</artifactId>
14-
<version>1.8.6</version>
17+
<version>${sdkVersion}</version>
1518
</dependency>
1619
<dependency>
1720
<groupId>junit</groupId>

src/main/java/net/authorize/sample/CustomerProfiles/CreateCustomerProfileFromTransaction.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import net.authorize.api.contract.v1.CreateTransactionResponse;
1212
import net.authorize.api.contract.v1.CreditCardType;
1313
import net.authorize.api.contract.v1.CustomerDataType;
14+
import net.authorize.api.contract.v1.CustomerProfileBaseType;
1415
import net.authorize.api.contract.v1.MerchantAuthenticationType;
1516
import net.authorize.api.contract.v1.PaymentType;
1617
import net.authorize.api.contract.v1.TransactionRequestType;
@@ -53,8 +54,19 @@ public static ANetApiResponse run(String apiLoginId, String transactionKey, Doub
5354

5455
CreateTransactionResponse response = controller.getApiResponse();
5556

57+
CustomerProfileBaseType customerProfile = new CustomerProfileBaseType();
58+
customerProfile.setMerchantCustomerId("123213");
59+
customerProfile.setEmail("[email protected]");
60+
customerProfile.setDescription("This is a sample customer profile");
61+
5662
CreateCustomerProfileFromTransactionRequest transaction_request = new CreateCustomerProfileFromTransactionRequest();
5763
transaction_request.setTransId(response.getTransactionResponse().getTransId());
64+
// You can either specify the customer information in form of customerProfileBaseType object
65+
transaction_request.setCustomer(customerProfile);
66+
// OR
67+
// You can just provide the customer Profile ID
68+
// transaction_request.setCustomerProfileId("1232132");
69+
5870
CreateCustomerProfileFromTransactionController createProfileController = new CreateCustomerProfileFromTransactionController(transaction_request);
5971
createProfileController.execute();
6072
CreateCustomerProfileResponse customer_response = createProfileController.getApiResponse();

src/main/java/net/authorize/sample/CustomerProfiles/GetCustomerProfile.java

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -40,32 +40,38 @@ public static ANetApiResponse run(String apiLoginId, String transactionKey, Stri
4040
System.out.println(response.getProfile().getEmail());
4141
System.out.println(response.getProfile().getCustomerProfileId());
4242

43-
System.out.println(response.getProfile().getPaymentProfiles().get(0).getBillTo().getFirstName());
44-
System.out.println(response.getProfile().getPaymentProfiles().get(0).getBillTo().getLastName());
45-
System.out.println(response.getProfile().getPaymentProfiles().get(0).getBillTo().getCompany());
46-
System.out.println(response.getProfile().getPaymentProfiles().get(0).getBillTo().getAddress());
47-
System.out.println(response.getProfile().getPaymentProfiles().get(0).getBillTo().getCity());
48-
System.out.println(response.getProfile().getPaymentProfiles().get(0).getBillTo().getState());
49-
System.out.println(response.getProfile().getPaymentProfiles().get(0).getBillTo().getZip());
50-
System.out.println(response.getProfile().getPaymentProfiles().get(0).getBillTo().getCountry());
51-
System.out.println(response.getProfile().getPaymentProfiles().get(0).getBillTo().getPhoneNumber());
52-
System.out.println(response.getProfile().getPaymentProfiles().get(0).getBillTo().getFaxNumber());
43+
if((!response.getProfile().getPaymentProfiles().isEmpty()) &&
44+
(response.getProfile().getPaymentProfiles().get(0).getBillTo() != null)){
45+
System.out.println(response.getProfile().getPaymentProfiles().get(0).getBillTo().getFirstName());
46+
System.out.println(response.getProfile().getPaymentProfiles().get(0).getBillTo().getLastName());
47+
System.out.println(response.getProfile().getPaymentProfiles().get(0).getBillTo().getCompany());
48+
System.out.println(response.getProfile().getPaymentProfiles().get(0).getBillTo().getAddress());
49+
System.out.println(response.getProfile().getPaymentProfiles().get(0).getBillTo().getCity());
50+
System.out.println(response.getProfile().getPaymentProfiles().get(0).getBillTo().getState());
51+
System.out.println(response.getProfile().getPaymentProfiles().get(0).getBillTo().getZip());
52+
System.out.println(response.getProfile().getPaymentProfiles().get(0).getBillTo().getCountry());
53+
System.out.println(response.getProfile().getPaymentProfiles().get(0).getBillTo().getPhoneNumber());
54+
System.out.println(response.getProfile().getPaymentProfiles().get(0).getBillTo().getFaxNumber());
5355

54-
System.out.println(response.getProfile().getPaymentProfiles().get(0).getCustomerPaymentProfileId());
56+
System.out.println(response.getProfile().getPaymentProfiles().get(0).getCustomerPaymentProfileId());
5557

56-
System.out.println(response.getProfile().getPaymentProfiles().get(0).getPayment().getCreditCard().getCardNumber());
57-
System.out.println(response.getProfile().getPaymentProfiles().get(0).getPayment().getCreditCard().getExpirationDate());
58+
System.out.println(response.getProfile().getPaymentProfiles().get(0).getPayment().getCreditCard().getCardNumber());
59+
System.out.println(response.getProfile().getPaymentProfiles().get(0).getPayment().getCreditCard().getExpirationDate());
60+
}
61+
62+
if(!response.getProfile().getShipToList().isEmpty()){
63+
System.out.println(response.getProfile().getShipToList().get(0).getFirstName());
64+
System.out.println(response.getProfile().getShipToList().get(0).getLastName());
65+
System.out.println(response.getProfile().getShipToList().get(0).getCompany());
66+
System.out.println(response.getProfile().getShipToList().get(0).getAddress());
67+
System.out.println(response.getProfile().getShipToList().get(0).getCity());
68+
System.out.println(response.getProfile().getShipToList().get(0).getState());
69+
System.out.println(response.getProfile().getShipToList().get(0).getZip());
70+
System.out.println(response.getProfile().getShipToList().get(0).getCountry());
71+
System.out.println(response.getProfile().getShipToList().get(0).getPhoneNumber());
72+
System.out.println(response.getProfile().getShipToList().get(0).getFaxNumber());
73+
}
5874

59-
System.out.println(response.getProfile().getShipToList().get(0).getFirstName());
60-
System.out.println(response.getProfile().getShipToList().get(0).getLastName());
61-
System.out.println(response.getProfile().getShipToList().get(0).getCompany());
62-
System.out.println(response.getProfile().getShipToList().get(0).getAddress());
63-
System.out.println(response.getProfile().getShipToList().get(0).getCity());
64-
System.out.println(response.getProfile().getShipToList().get(0).getState());
65-
System.out.println(response.getProfile().getShipToList().get(0).getZip());
66-
System.out.println(response.getProfile().getShipToList().get(0).getCountry());
67-
System.out.println(response.getProfile().getShipToList().get(0).getPhoneNumber());
68-
System.out.println(response.getProfile().getShipToList().get(0).getFaxNumber());
6975
}
7076
else
7177
{

src/main/java/net/authorize/sample/PaypalExpressCheckout/AuthorizationAndCaptureContinue.java

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -61,20 +61,25 @@ public static ANetApiResponse run(String apiLoginId, String transactionKey, Stri
6161
// get the response from the service (errors contained if any)
6262
CreateTransactionResponse response = controller.getApiResponse();
6363

64-
//validate
65-
if(response.getMessages().getResultCode() == MessageTypeEnum.OK){
66-
if(response.getTransactionResponse() != null){
67-
if(!response.getTransactionResponse().getMessages().getMessage().isEmpty())
68-
System.out.println("Success, \nMessage : "+response.getTransactionResponse().getMessages().getMessage().get(0).getDescription() );
69-
// Get Auth Code By : response.getTransactionResponse().getAuthCode()
70-
}
64+
//validate
65+
if(response != null){
66+
if(response.getMessages().getResultCode() == MessageTypeEnum.OK){
67+
if(response.getTransactionResponse() != null){
68+
if((response.getTransactionResponse().getMessages() != null) &&
69+
(!response.getTransactionResponse().getMessages().getMessage().isEmpty())) {
70+
System.out.println("Success, \nMessage : "+response.getTransactionResponse().getMessages().getMessage().get(0).getDescription() );
71+
// Get Auth Code By : response.getTransactionResponse().getAuthCode()
72+
}
73+
}
74+
}
75+
else {
76+
System.out.println("Error: " + response.getMessages().getMessage().get(0).getCode()+ " " + response.getMessages().getMessage().get(0).getText() );
77+
if(response.getTransactionResponse() != null){
78+
System.out.println("Transaction Error : "+ response.getTransactionResponse().getErrors().getError().get(0).getErrorCode() + " " + response.getTransactionResponse().getErrors().getError().get(0).getErrorText());
79+
}
80+
}
7181
}
72-
else {
73-
System.out.println("Error: " + response.getMessages().getMessage().get(0).getCode()+ " " + response.getMessages().getMessage().get(0).getText() );
74-
if(response.getTransactionResponse() != null){
75-
System.out.println("Transaction Error : "+ response.getTransactionResponse().getErrors().getError().get(0).getErrorCode() + " " + response.getTransactionResponse().getErrors().getError().get(0).getErrorText());
76-
}
77-
}
82+
7883
return response;
7984
}
8085
}

src/main/java/net/authorize/sample/PaypalExpressCheckout/GetDetails.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,16 @@ public static ANetApiResponse run(String apiLoginId, String transactionKey, Stri
4242
if (result.getResponseCode().equals("1")) {
4343
System.out.println("Successful PayPal Get Details Transaction");
4444
System.out.println("Account Type : "+ result.getAccountType());
45-
System.out.println("PayPal PayerID : "+ result.getSecureAcceptance().getPayerID());
46-
System.out.println("Shipping Address : "+ result.getShipTo().getFirstName());
47-
System.out.println(result.getShipTo().getAddress() +" " + result.getShipTo().getCity());
48-
System.out.println(result.getShipTo().getState() +" "+ result.getShipTo().getZip());
49-
System.out.println(result.getShipTo().getCountry());
45+
if(result.getSecureAcceptance() != null)
46+
System.out.println("PayPal PayerID : "+ result.getSecureAcceptance().getPayerID());
47+
48+
if(result.getShipTo() != null) {
49+
System.out.println("Shipping Address : "+ result.getShipTo().getFirstName());
50+
System.out.println(result.getShipTo().getAddress() +" " + result.getShipTo().getCity());
51+
System.out.println(result.getShipTo().getState() +" "+ result.getShipTo().getZip());
52+
System.out.println(result.getShipTo().getCountry());
53+
}
54+
5055
System.out.println("Transaction ID : " + result.getTransId());
5156
}
5257
}
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
package net.authorize.sample.RecurringBilling;
2+
3+
import java.math.BigDecimal;
4+
import java.math.RoundingMode;
5+
6+
import javax.xml.datatype.DatatypeFactory;
7+
import javax.xml.datatype.XMLGregorianCalendar;
8+
9+
import net.authorize.Environment;
10+
import net.authorize.api.contract.v1.ANetApiResponse;
11+
import net.authorize.api.contract.v1.ARBCreateSubscriptionRequest;
12+
import net.authorize.api.contract.v1.ARBCreateSubscriptionResponse;
13+
import net.authorize.api.contract.v1.ARBSubscriptionType;
14+
import net.authorize.api.contract.v1.ARBSubscriptionUnitEnum;
15+
import net.authorize.api.contract.v1.CustomerProfileIdType;
16+
import net.authorize.api.contract.v1.MerchantAuthenticationType;
17+
import net.authorize.api.contract.v1.MessageTypeEnum;
18+
import net.authorize.api.contract.v1.PaymentScheduleType;
19+
import net.authorize.api.controller.ARBCreateSubscriptionController;
20+
import net.authorize.api.controller.base.ApiOperationBase;
21+
22+
public class CreateSubscriptionFromCustomerProfile {
23+
24+
public static ANetApiResponse run(String apiLoginId, String transactionKey, short intervalLength, Double amount,
25+
String profileId, String paymentProfileId, String customerAddressId) {
26+
//Common code to set for all requests
27+
ApiOperationBase.setEnvironment(Environment.SANDBOX);
28+
MerchantAuthenticationType merchantAuthenticationType = new MerchantAuthenticationType() ;
29+
merchantAuthenticationType.setName(apiLoginId);
30+
merchantAuthenticationType.setTransactionKey(transactionKey);
31+
ApiOperationBase.setMerchantAuthentication(merchantAuthenticationType);
32+
33+
// Set up payment schedule
34+
PaymentScheduleType schedule = new PaymentScheduleType();
35+
PaymentScheduleType.Interval interval = new PaymentScheduleType.Interval();
36+
interval.setLength(intervalLength);
37+
interval.setUnit(ARBSubscriptionUnitEnum.DAYS);
38+
schedule.setInterval(interval);
39+
40+
try {
41+
XMLGregorianCalendar startDate = DatatypeFactory.newInstance().newXMLGregorianCalendar();
42+
startDate.setDay(30);
43+
startDate.setMonth(8);
44+
startDate.setYear(2020);
45+
schedule.setStartDate(startDate); //2020-08-30
46+
}
47+
catch(Exception e) { }
48+
49+
schedule.setTotalOccurrences((short)12);
50+
schedule.setTrialOccurrences((short)1);
51+
52+
CustomerProfileIdType profile = new CustomerProfileIdType();
53+
profile.setCustomerProfileId(profileId);
54+
profile.setCustomerPaymentProfileId(paymentProfileId);
55+
profile.setCustomerAddressId(customerAddressId);
56+
57+
ARBSubscriptionType arbSubscriptionType = new ARBSubscriptionType();
58+
arbSubscriptionType.setPaymentSchedule(schedule);
59+
arbSubscriptionType.setAmount(new BigDecimal(amount).setScale(2, RoundingMode.CEILING));
60+
arbSubscriptionType.setTrialAmount(new BigDecimal(0.0).setScale(2, RoundingMode.CEILING));
61+
arbSubscriptionType.setProfile(profile);
62+
63+
// Make the API Request
64+
ARBCreateSubscriptionRequest apiRequest = new ARBCreateSubscriptionRequest();
65+
apiRequest.setSubscription(arbSubscriptionType);
66+
ARBCreateSubscriptionController controller = new ARBCreateSubscriptionController(apiRequest);
67+
controller.execute();
68+
ARBCreateSubscriptionResponse response = controller.getApiResponse();
69+
if (response!=null) {
70+
71+
if (response.getMessages().getResultCode() == MessageTypeEnum.OK) {
72+
73+
System.out.println(response.getSubscriptionId());
74+
System.out.println(response.getMessages().getMessage().get(0).getCode());
75+
System.out.println(response.getMessages().getMessage().get(0).getText());
76+
}
77+
else
78+
{
79+
System.out.println("Failed to create Subscription: " + response.getMessages().getResultCode());
80+
System.out.println(response.getMessages().getMessage().get(0).getText());
81+
}
82+
}
83+
84+
return response;
85+
}
86+
}

src/main/java/net/authorize/sample/SampleCode.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ private static void ShowMethods()
8989
System.out.println(" CreateAnApplePayTransaction");
9090
System.out.println(" ChargeCustomerProfile");
9191
System.out.println(" CreateSubscription");
92+
System.out.println(" CreateSubscriptionFromCustomerProfile");
9293
System.out.println(" GetSubscription");
9394
System.out.println(" GetSubscriptionStatus");
9495
System.out.println(" CancelSubscription");
@@ -192,6 +193,9 @@ private static void RunMethod(String methodName)
192193
case "CreateSubscription":
193194
CreateSubscription.run(apiLoginId, transactionKey, (short)12, amount);
194195
break;
196+
case "CreateSubscriptionFromCustomerProfile":
197+
CreateSubscriptionFromCustomerProfile.run(apiLoginId, transactionKey, (short)12, amount, "123212", "123213", "123213");
198+
break;
195199
case "GetSubscription":
196200
GetSubscription.run(apiLoginId, transactionKey, subscriptionId);
197201
break;

src/test/java/net/authorize/sample/SampleCodeTest/SampleCodeList.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
SampleCode IsDependent RunApi
22
RecurringBilling.CreateSubscription 1 1
3+
RecurringBilling.CreateSubscriptionFromCustomerProfile 1 1
34
RecurringBilling.GetListOfSubscriptions 0 1
45
RecurringBilling.CancelSubscription 1 1
56
RecurringBilling.GetSubscriptionStatus 1 1

src/test/java/net/authorize/sample/SampleCodeTest/TestRunner.java

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import java.io.IOException;
77
import java.lang.reflect.InvocationTargetException;
88
import java.lang.reflect.Method;
9+
import java.math.BigDecimal;
10+
import java.math.RoundingMode;
911
import java.security.SecureRandom;
1012
import java.text.DecimalFormat;
1113

@@ -66,6 +68,7 @@
6668
import net.authorize.sample.PaypalExpressCheckout.PriorAuthorizationCapture;
6769
import net.authorize.sample.RecurringBilling.CancelSubscription;
6870
import net.authorize.sample.RecurringBilling.CreateSubscription;
71+
import net.authorize.sample.RecurringBilling.CreateSubscriptionFromCustomerProfile;
6972
import net.authorize.sample.RecurringBilling.GetSubscription;
7073
import net.authorize.sample.RecurringBilling.GetSubscriptionStatus;
7174
import net.authorize.sample.RecurringBilling.UpdateSubscription;
@@ -130,10 +133,12 @@ public void TestAllSampleCodes()
130133
if (!shouldApiRun.equals("1"))
131134
continue;
132135

136+
ANetApiResponse response = null;
137+
133138
try
134139
{
135140
cnt++;
136-
ANetApiResponse response = null;
141+
137142
if (isDependent.equals("0"))
138143
{
139144
response = InvokeRunMethod(apiName);
@@ -154,6 +159,8 @@ public void TestAllSampleCodes()
154159
{
155160
System.out.println("Exception in " + apiName + " " + e.toString());
156161
System.out.println(e.getMessage());
162+
Assert.assertNotNull(response);
163+
Assert.assertEquals(response.getMessages().getResultCode(), MessageTypeEnum.OK);
157164
}
158165
}
159166
} catch (IOException e) {
@@ -449,6 +456,24 @@ public ANetApiResponse TestCreateSubscription()
449456

450457
return response;
451458
}
459+
460+
public ANetApiResponse TestCreateSubscriptionFromCustomerProfile()
461+
{
462+
CreateCustomerProfileResponse profileResponse = (CreateCustomerProfileResponse)CreateCustomerProfile.run(apiLoginId, transactionKey, getEmail());
463+
CreateCustomerPaymentProfileResponse paymentResponse = (CreateCustomerPaymentProfileResponse) CreateCustomerPaymentProfile.
464+
run(apiLoginId, transactionKey, profileResponse.getCustomerProfileId());
465+
466+
CreateCustomerShippingAddressResponse shippingResponse = (CreateCustomerShippingAddressResponse)CreateCustomerShippingAddress.
467+
run(apiLoginId, transactionKey, profileResponse.getCustomerProfileId());
468+
469+
ARBCreateSubscriptionResponse response = (ARBCreateSubscriptionResponse) CreateSubscriptionFromCustomerProfile.run(apiLoginId, transactionKey, getDays(), getAmount(), profileResponse.getCustomerProfileId(),
470+
paymentResponse.getCustomerPaymentProfileId(), shippingResponse.getCustomerAddressId());
471+
472+
CancelSubscription.run(apiLoginId, transactionKey, response.getSubscriptionId());
473+
DeleteCustomerProfile.run(apiLoginId, transactionKey, profileResponse.getCustomerProfileId());
474+
475+
return response;
476+
}
452477

453478
public ANetApiResponse TestGetSubscriptionStatus()
454479
{

0 commit comments

Comments
 (0)