@RequiredArgsConstructor
public class Authorize {
private final BraintreeTransactionService braintreeTransactionService;
public void performAuthorization() {
MonetaryAmount transactionTotal = Monetary.getDefaultAmountFactory().setNumber(amount).create();
PaymentRequest paymentRequest = new PaymentRequest()
.transactionReferenceId(transactionReferenceId)
.transactionTotal(transactionTotal)
.additionalField("nonce", nonce); // The nonce which we got from Braintree Client Integration (Drop-in call).
PaymentResponse paymentResponse = braintreeTransactionService.authorize(paymentRequest);
paymentResponse.isSuccessful();
paymentResponse.getGatewayResponseCode(); // The Braintree response code
paymentResponse.getFailureType(); // Failure type in case the transaction was not successful.
paymentResponse.getRawResponse(); // Braintree raw response stored as a JSON object.
paymentResponse.getGatewayTransactionId(); // gatewayTransaction Id from Braintree.
paymentResponse.getGatewayTransactionType(); // Braintree gateway transaction type.
paymentResponse.getResponseMap().get("TRANSACTION_ID"); // Braintree transaction Id. This value is used to execute subsequent transactions.
paymentResponse.getResponseMap().get("TRANSACTION_STATUS"); // Braintree transaction status.
}
}