use of com.tranxactive.j2pay.net.HTTPResponse in project J2PAY by tranxactive.
the class AuthorizeGateway method purchase.
@Override
public HTTPResponse purchase(JSONObject apiParameters, Customer customer, CustomerCard customerCard, Currency currency, float amount) {
JSONObject resp;
String requestString = this.buildPurchaseParameters(apiParameters, customer, customerCard, currency, amount);
PurchaseResponse successResponse = null;
ErrorResponse errorResponse = new ErrorResponse();
HTTPResponse httpResponse;
int result;
httpResponse = HTTPClient.httpPost(this.getApiURL(), requestString, ContentType.APPLICATION_XML);
if (httpResponse.getStatusCode() == -1) {
return httpResponse;
}
resp = XMLHelper.toJson(httpResponse.getContent());
if (resp.has("createTransactionResponse")) {
if (resp.getJSONObject("createTransactionResponse").get("transactionResponse") instanceof JSONObject) {
result = resp.getJSONObject("createTransactionResponse").getJSONObject("transactionResponse").getInt("responseCode");
if (result == 1) {
successResponse = new PurchaseResponse();
successResponse.setMessage(resp.getJSONObject("createTransactionResponse").getJSONObject("transactionResponse").getJSONObject("messages").getJSONObject("message").getString("description"));
successResponse.setTransactionId(resp.getJSONObject("createTransactionResponse").getJSONObject("transactionResponse").get("transId").toString());
successResponse.setCardValuesFrom(customerCard);
successResponse.setAmount(amount);
successResponse.setCurrencyCode(currency);
if (resp.getJSONObject("createTransactionResponse").getJSONObject("profileResponse").has("customerProfileId")) {
successResponse.setRebillParams(new JSONObject().put("customerProfileId", resp.getJSONObject("createTransactionResponse").getJSONObject("profileResponse").get("customerProfileId").toString()).put("paymentProfileId", resp.getJSONObject("createTransactionResponse").getJSONObject("profileResponse").getJSONObject("customerPaymentProfileIdList").get("numericString").toString()));
} else {
successResponse.setRebillParams(null);
}
successResponse.setRefundParams(new JSONObject().put(ParamList.TRANSACTION_ID.getName(), resp.getJSONObject("createTransactionResponse").getJSONObject("transactionResponse").get("transId").toString()).put(ParamList.CARD_LAST_4.getName(), customerCard.getLast4()));
successResponse.setVoidParams(new JSONObject().put(ParamList.TRANSACTION_ID.getName(), resp.getJSONObject("createTransactionResponse").getJSONObject("transactionResponse").get("transId").toString()));
} else {
errorResponse.setMessage(resp.getJSONObject("createTransactionResponse").getJSONObject("transactionResponse").getJSONObject("errors").getJSONObject("error").getString("errorText"));
}
} else {
errorResponse.setMessage(resp.getJSONObject("createTransactionResponse").getJSONObject("messages").getJSONObject("message").getString("text"));
}
} else {
errorResponse.setMessage(resp.getJSONObject("ErrorResponse").getJSONObject("messages").getJSONObject("message").getString("text"));
}
if (successResponse == null) {
if (resp.has("createTransactionResponse") && resp.getJSONObject("createTransactionResponse").has("transactionResponse") && resp.getJSONObject("createTransactionResponse").get("transactionResponse") instanceof JSONObject && resp.getJSONObject("createTransactionResponse").getJSONObject("transactionResponse").has("transId")) {
errorResponse.setTransactionId(resp.getJSONObject("createTransactionResponse").getJSONObject("transactionResponse").optString("transId"));
}
}
// final response.
processFinalResponse(resp, httpResponse, successResponse, errorResponse);
return httpResponse;
}
use of com.tranxactive.j2pay.net.HTTPResponse in project J2PAY by tranxactive.
the class AuthorizeGateway method voidTransaction.
@Override
public HTTPResponse voidTransaction(JSONObject apiParameters, JSONObject voidParameters) {
JSONObject resp;
String requestString = this.buildVoidParameters(apiParameters, voidParameters);
VoidResponse successResponse = null;
ErrorResponse errorResponse = new ErrorResponse();
HTTPResponse httpResponse;
int result;
httpResponse = HTTPClient.httpPost(this.getApiURL(), requestString, ContentType.APPLICATION_XML);
if (httpResponse.getStatusCode() == -1) {
return httpResponse;
}
resp = XMLHelper.toJson(httpResponse.getContent());
if (resp.has("createTransactionResponse")) {
if (resp.getJSONObject("createTransactionResponse").get("transactionResponse") instanceof JSONObject) {
result = resp.getJSONObject("createTransactionResponse").getJSONObject("transactionResponse").getInt("responseCode");
if (result == 1) {
successResponse = new VoidResponse();
successResponse.setMessage(resp.getJSONObject("createTransactionResponse").getJSONObject("transactionResponse").getJSONObject("messages").getJSONObject("message").getString("description"));
successResponse.setTransactionId(resp.getJSONObject("createTransactionResponse").getJSONObject("transactionResponse").get("transId").toString());
} else {
errorResponse.setMessage(resp.getJSONObject("createTransactionResponse").getJSONObject("transactionResponse").getJSONObject("errors").getJSONObject("error").getString("errorText"));
}
} else {
errorResponse.setMessage(resp.getJSONObject("createTransactionResponse").getJSONObject("messages").getJSONObject("message").getString("text"));
}
} else {
errorResponse.setMessage(resp.getJSONObject("ErrorResponse").getJSONObject("messages").getJSONObject("message").getString("text"));
}
if (successResponse == null) {
if (resp.has("createTransactionResponse") && resp.getJSONObject("createTransactionResponse").has("transactionResponse") && resp.getJSONObject("createTransactionResponse").get("transactionResponse") instanceof JSONObject && resp.getJSONObject("createTransactionResponse").getJSONObject("transactionResponse").has("transId")) {
errorResponse.setTransactionId(resp.getJSONObject("createTransactionResponse").getJSONObject("transactionResponse").optString("transId"));
}
}
// final response.
processFinalResponse(resp, httpResponse, successResponse, errorResponse);
return httpResponse;
}
use of com.tranxactive.j2pay.net.HTTPResponse in project J2PAY by tranxactive.
the class BraintreeGateway method authorize.
@Override
public HTTPResponse authorize(JSONObject apiParameters, Customer customer, CustomerCard customerCard, Currency currency, float amount) {
boolean hasException = false;
HTTPResponse createCustomer = createCustomer(apiParameters, customer, customerCard, currency, amount);
if (!createCustomer.isSuccessful()) {
return createCustomer;
}
AuthResponse successResponse = null;
ErrorResponse errorResponse = new ErrorResponse();
HTTPResponse httpResponse = new HTTPResponse();
String customerId = createCustomer.getJSONResponse().getJSONObject(ParamList.LIBRARY_RESPONSE.getName()).getString(ParamList.TRANSACTION_ID.getName());
TransactionRequest transactionRequest = new TransactionRequest();
transactionRequest.customerId(customerId).amount(new BigDecimal(Float.toString(amount)));
transactionRequest.options().submitForSettlement(false);
Result<Transaction> sale = null;
try {
sale = getGatewayObject(apiParameters).transaction().sale(transactionRequest);
} catch (NotFoundException e) {
errorResponse.setMessage("No record found");
hasException = true;
} catch (AuthenticationException e) {
errorResponse.setMessage("Invalid credentials");
hasException = true;
} catch (AuthorizationException e) {
errorResponse.setMessage("Not authorized to perform this action");
hasException = true;
} catch (ConfigurationException e) {
errorResponse.setMessage("Configuratoin error");
hasException = true;
} catch (DownForMaintenanceException e) {
errorResponse.setMessage("Server is under maintenance");
hasException = true;
} catch (TimeoutException e) {
errorResponse.setMessage("Request time out");
hasException = true;
} catch (ForgedQueryStringException | InvalidChallengeException | InvalidSignatureException | UnexpectedException e) {
errorResponse.setMessage("Unexpected exception occured");
hasException = true;
} catch (ServerException e) {
errorResponse.setMessage("Server error");
hasException = true;
} catch (TooManyRequestsException e) {
errorResponse.setMessage("Too many requests");
hasException = true;
} catch (UpgradeRequiredException e) {
errorResponse.setMessage("Need to upgrade");
hasException = true;
}
if (hasException) {
processFinalResponse(null, httpResponse, successResponse, errorResponse);
return httpResponse;
}
if (sale.isSuccess()) {
successResponse = new AuthResponse();
successResponse.setMessage("Success");
successResponse.setTransactionId(sale.getTarget().getId());
successResponse.setCardValuesFrom(customerCard);
successResponse.setAmount(amount);
successResponse.setCurrencyCode(currency);
successResponse.setRebillParams(new JSONObject().put(CUSTOMER_ID, customerId));
successResponse.setVoidParams(new JSONObject().put(ParamList.TRANSACTION_ID.getName(), sale.getTarget().getId()));
successResponse.setCaptureParams(new JSONObject().put(ParamList.TRANSACTION_ID.getName(), sale.getTarget().getId()));
} else {
errorResponse.setMessage(sale.getMessage());
}
processFinalResponse(null, httpResponse, successResponse, errorResponse);
return httpResponse;
}
use of com.tranxactive.j2pay.net.HTTPResponse in project J2PAY by tranxactive.
the class BraintreeGateway method purchase.
@Override
public HTTPResponse purchase(JSONObject apiParameters, Customer customer, CustomerCard customerCard, Currency currency, float amount) {
boolean hasException = false;
HTTPResponse createCustomer = createCustomer(apiParameters, customer, customerCard, currency, amount);
if (!createCustomer.isSuccessful()) {
return createCustomer;
}
PurchaseResponse successResponse = null;
ErrorResponse errorResponse = new ErrorResponse();
HTTPResponse httpResponse = new HTTPResponse();
String customerId = createCustomer.getJSONResponse().getJSONObject(ParamList.LIBRARY_RESPONSE.getName()).getString(ParamList.TRANSACTION_ID.getName());
TransactionRequest transactionRequest = new TransactionRequest();
transactionRequest.customerId(customerId).amount(new BigDecimal(Float.toString(amount)));
transactionRequest.options().submitForSettlement(true);
Result<Transaction> sale = null;
try {
sale = getGatewayObject(apiParameters).transaction().sale(transactionRequest);
} catch (NotFoundException e) {
errorResponse.setMessage("No record found");
hasException = true;
} catch (AuthenticationException e) {
errorResponse.setMessage("Invalid credentials");
hasException = true;
} catch (AuthorizationException e) {
errorResponse.setMessage("Not authorized to perform this action");
hasException = true;
} catch (ConfigurationException e) {
errorResponse.setMessage("Configuratoin error");
hasException = true;
} catch (DownForMaintenanceException e) {
errorResponse.setMessage("Server is under maintenance");
hasException = true;
} catch (TimeoutException e) {
errorResponse.setMessage("Request time out");
hasException = true;
} catch (ForgedQueryStringException | InvalidChallengeException | InvalidSignatureException | UnexpectedException e) {
errorResponse.setMessage("Unexpected exception occured");
hasException = true;
} catch (ServerException e) {
errorResponse.setMessage("Server error");
hasException = true;
} catch (TooManyRequestsException e) {
errorResponse.setMessage("Too many requests");
hasException = true;
} catch (UpgradeRequiredException e) {
errorResponse.setMessage("Need to upgrade");
hasException = true;
}
if (hasException) {
processFinalResponse(null, httpResponse, successResponse, errorResponse);
return httpResponse;
}
if (sale.isSuccess()) {
successResponse = new PurchaseResponse();
successResponse.setMessage("Success");
successResponse.setTransactionId(sale.getTarget().getId());
successResponse.setCardValuesFrom(customerCard);
successResponse.setAmount(amount);
successResponse.setCurrencyCode(currency);
successResponse.setVoidParams(new JSONObject().put(ParamList.TRANSACTION_ID.getName(), sale.getTarget().getId()));
successResponse.setRebillParams(new JSONObject().put(CUSTOMER_ID, customerId));
successResponse.setVoidParams(new JSONObject().put(ParamList.TRANSACTION_ID.getName(), sale.getTarget().getId()));
} else {
errorResponse.setMessage(sale.getMessage());
}
processFinalResponse(null, httpResponse, successResponse, errorResponse);
return httpResponse;
}
use of com.tranxactive.j2pay.net.HTTPResponse in project J2PAY by tranxactive.
the class BraintreeGateway method createCustomer.
private HTTPResponse createCustomer(JSONObject apiParameters, Customer customer, CustomerCard customerCard, Currency currency, float amount) {
boolean hasException = false;
CustomerRequest customerRequest = new CustomerRequest();
customerRequest.firstName(customer.getFirstName()).lastName(customer.getLastName()).email(customer.getEmail()).phone(customer.getPhoneNumber());
CreditCardRequest card = customerRequest.creditCard();
card.cardholderName(customerCard.getName()).number(customerCard.getNumber()).cvv(customerCard.getCvv()).expirationDate(customerCard.getExpiryMonth() + "/" + customerCard.getExpiryYear());
CreditCardAddressRequest address = card.billingAddress();
address.countryCodeAlpha3(customer.getCountry().getCodeISO3()).postalCode(customer.getZip()).streetAddress(customer.getAddress()).region(customer.getState()).locality(customer.getCity());
Result<com.braintreegateway.Customer> createCustomer = null;
GeneralResponse successResponse = null;
ErrorResponse errorResponse = new ErrorResponse();
HTTPResponse httpResponse = new HTTPResponse();
try {
createCustomer = getGatewayObject(apiParameters).customer().create(customerRequest);
} catch (NotFoundException e) {
errorResponse.setMessage("No record found");
hasException = true;
} catch (AuthenticationException e) {
errorResponse.setMessage("Invalid credentials");
hasException = true;
} catch (AuthorizationException e) {
errorResponse.setMessage("Not authorized to perform this action");
hasException = true;
} catch (ConfigurationException e) {
errorResponse.setMessage("Configuratoin error");
hasException = true;
} catch (DownForMaintenanceException e) {
errorResponse.setMessage("Server is under maintenance");
hasException = true;
} catch (TimeoutException e) {
errorResponse.setMessage("Request time out");
hasException = true;
} catch (ForgedQueryStringException | InvalidChallengeException | InvalidSignatureException | UnexpectedException e) {
errorResponse.setMessage("Unexpected exception occured");
hasException = true;
} catch (ServerException e) {
errorResponse.setMessage("Server error");
hasException = true;
} catch (TooManyRequestsException e) {
errorResponse.setMessage("Too many requests");
hasException = true;
} catch (UpgradeRequiredException e) {
errorResponse.setMessage("Need to upgrade");
hasException = true;
}
if (hasException) {
processFinalResponse(null, httpResponse, successResponse, errorResponse);
return httpResponse;
}
if (createCustomer.isSuccess()) {
successResponse = new GeneralResponse();
successResponse.setMessage("Success");
successResponse.setTransactionId(createCustomer.getTarget().getId());
} else {
errorResponse.setMessage(createCustomer.getMessage());
}
processFinalResponse(null, httpResponse, successResponse, errorResponse);
return httpResponse;
}
Aggregations