Broadleaf Microservices
  • v1.0.0-latest-prod

MyFatoorah Capture Transaction

Prerequisites

Set up your environment as described in the Environment Setup Guide

Executing a Capture Transaction

Note
This transaction type is only relevant if your MyFatoorah account is configured to execute Authorizations and Captures as separate transactions.

Use the following code snippet to perform a Capture transaction:

public class Capture {

 @Autowired
 MyFatoorahTransactionService myFatoorahTransactionService;

 public void performCapture() {

		 CurrencyUnit currency = Monetary.getCurrency(currencyCode);
		 MonetaryAmount transactionTotal = Monetary.getDefaultAmountFactory().setCurrency(currency).setNumber(amount).create();

		 PaymentRequest paymentRequest = new PaymentRequest()
		        .additionalField("invoiceId", invoiceId) // The MyFatoorah invoice id gathered from the Authorize transaction.
		        .transactionTotal(transactionTotal);

	 	PaymentResponse paymentResponse = myFatoorahTransactionService.capture(paymentRequest);

		paymentResponse.isSuccessful();
		paymentResponse.getGatewayResponseCode(); // MyFatoorah reason_code
      		paymentResponse.getGatewayTransactionId(); // MyFatoorah transaction ID
	   	paymentResponse.getRawResponse(); // MyFatoorah Raw response stored as a JSON object.
	   	paymentResponse.getGatewayTransactionType();// MyFatoorah GatewayTransactionType
	   	paymentResponse.getResponseMap().get("invoiceId"); // MyFatoorah invoiceId.
	   	paymentResponse.getResponseMap().get("paymentId"); // MyFatoorah paymentId.
	   	paymentResponse.getResponseMap().get("paymentGateway"); // MyFatoorah paymentGateway.
	   	paymentResponse.getResponseMap().get("transactionId");  // MyFatoorah transactionId.
	}
}