To process a transaction, initialize a BraintreeGateway with your credentials and environment, construct a TransactionRequest, and call gateway.transaction().sale(request).
Always check result.isSuccess() to determine if the transaction was processed correctly. If it fails, you can inspect result.getTransaction() for processor errors or result.getErrors() for validation errors.
import java.math.BigDecimal;
import com.braintreegateway.*;
public class BraintreeExample {
public static void main(String[] args) {
BraintreeGateway gateway = new BraintreeGateway(
Environment.SANDBOX,
"the_merchant_id",
"the_public_key",
"the_private_key"
);
TransactionRequest request = new TransactionRequest()
.amount(new BigDecimal("1000.00"))
.paymentMethodNonce(nonceFromTheClient)
.options()
.submitForSettlement(true)
.done();
Result<Transaction> result = gateway.transaction().sale(request);
if (result.isSuccess()) {
Transaction transaction = result.getTarget();
System.out.println("Success!: " + transaction.getId());
} else if (result.getTransaction() != null) {
Transaction transaction = result.getTransaction();
System.out.println("Error processing transaction:");
System.out.println(" Status: " + transaction.getStatus());
System.out.println(" Code: " + transaction.getProcessorResponseCode());
System.out.println(" Text: " + transaction.getProcessorResponseText());
} else {
for (ValidationError error : result.getErrors().getAllDeepValidationErrors()) {
System.out.println("Attribute: " + error.getAttribute());
System.out.println(" Code: " + error.getCode());
System.out.println(" Message: " + error.getMessage());
}
}
}
}