@RequiredArgsConstructor
public class Authorize {
private final TabbyTransactionService tabbyTransactionService;
public void performAuthorization() {
CurrencyUnit currency = Monetary.getCurrency(currencyCode);
MonetaryAmount transactionTotal = Monetary.getDefaultAmountFactory().setCurrency(currency).setNumber(amount).create();
PaymentRequest paymentRequest = new PaymentRequest()
.transactionTotal(transactionTotal)
.transactionReferenceId(transactionReferenceId)
.tenantId(tenantId)
.applicationId(applicationId)
.additionalField("bnpl_type", "PAY_IN_4")
.additionalField("payment", tabbyPaymentJsonString)
.additionalField("lang", "en")
.additionalField("merchant_urls", merchantUrlsJsonString)
.additionalField("merchant_code", merchantCode);
PaymentResponse paymentResponse = tabbyTransactionService.authorize(paymentRequest);
paymentResponse.isSuccessful();
paymentResponse.getFailureType();
paymentResponse.getRawResponse();
paymentResponse.getGatewayTransactionId();
paymentResponse.getResponseMap().get("payment_id");
paymentResponse.getResponseMap().get("payment_status");
paymentResponse.getResponseMap().get("checkout_session_id");
paymentResponse.getResponseMap().get("checkout_session_status");
paymentResponse.getNextAction();
}
}