Class DefaultMyFatoorahTransactionLookupService
java.lang.Object
com.broadleafcommerce.myfatoorah.service.DefaultMyFatoorahTransactionLookupService
- All Implemented Interfaces:
MyFatoorahTransactionLookupService,com.broadleafcommerce.paymentgateway.service.PaymentGatewayTransactionLookupService,com.broadleafcommerce.paymentgateway.service.PaymentGatewayTypeAware
public class DefaultMyFatoorahTransactionLookupService
extends Object
implements MyFatoorahTransactionLookupService
- Author:
- Divyank Chavan.
-
Constructor Summary
ConstructorsConstructorDescriptionDefaultMyFatoorahTransactionLookupService(MyFatoorahProvider myFatoorahProvider, com.fasterxml.jackson.databind.ObjectMapper objectMapper, com.broadleafcommerce.common.extension.TypeFactory typeFactory, MyFatoorahConfigurationProperties configProperties) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddRawResponse(com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse, MyFatoorahResponse myFatoorahResponse) protected StringBuild the gateway transaction id using the payment id & track id, instead of usingMyFatoorahResponse.InvoiceTransaction.getTransactionId()due to this field not being present in the webhook payload.protected voidbuildPaymentResponse(com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse, MyFatoorahResponse myFatoorahResponse, MyFatoorahResponse.InvoiceTransaction transaction, String transactionCurrency, boolean isSuccessful, String paymentId) protected com.broadleafcommerce.paymentgateway.domain.TransactionIdentifierbuildTransactionIdentifier(String tenantId, String gatewayTransactionId) protected MyFatoorahConfigurationPropertiesprotected StringgetCurrencyCode(String currencyDisplayValue) protected StringgetGatewayResponseCode(MyFatoorahResponse.InvoiceTransaction invoiceTransactions) protected StringgetInvoiceStatus(@NonNull MyFatoorahResponse myFatoorahResponse) protected MyFatoorahProviderprotected com.fasterxml.jackson.databind.ObjectMapperprotected StringgetPaymentId(@NonNull MyFatoorahResponse myFatoorahResponse) protected javax.money.MonetaryAmountgetTransactionAmount(MyFatoorahResponse.InvoiceTransaction invoiceTransactions, @NonNull String transactionCurrency) org.apache.commons.lang3.tuple.Pair<com.broadleafcommerce.paymentgateway.domain.TransactionIdentifier,com.broadleafcommerce.paymentgateway.domain.PaymentResponse> protected com.broadleafcommerce.common.extension.TypeFactoryprotected StringidentifyFailureType(String reasonCode, String transactionReferenceId) protected MyFatoorahResponse.InvoiceTransactionidentifyLatestTransaction(@NonNull MyFatoorahResponse myFatoorahResponse) protected booleanisAuthorize(MyFatoorahResponse.InvoiceTransaction transaction) protected booleanisKnetTransaction(MyFatoorahResponse.InvoiceTransaction myFatoorahResponse) protected booleanisSuccessful(MyFatoorahResponse.InvoiceTransaction transaction) com.broadleafcommerce.paymentgateway.domain.PaymentResponselookupTransactionDetails(@NonNull com.broadleafcommerce.paymentgateway.domain.TransactionLookupRequest transactionLookupRequest, String tenantId, String applicationId) protected com.broadleafcommerce.paymentgateway.domain.PaymentResponsepopulatePaymentResponse(@NonNull MyFatoorahResponse myFatoorahResponse, @NonNull String invoiceId, String applicationId, String tenantId) protected com.broadleafcommerce.paymentgateway.domain.PaymentResponsepopulatePaymentResponse(@NonNull com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse, @NonNull MyFatoorahResponse myFatoorahResponse, MyFatoorahResponse.InvoiceTransaction transaction, String paymentId, String applicationId, String tenantId, boolean isAuthorizedTransaction) protected voidpopulateResponseMap(MyFatoorahResponse.InvoiceTransaction latestTransaction, @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse) protected voidprotected voidvalidateCurrency(@NonNull com.broadleafcommerce.paymentgateway.domain.TransactionLookupRequest transactionLookupRequest, String applicationId, String tenantId) voidMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.broadleafcommerce.paymentgateway.service.PaymentGatewayTransactionLookupService
validateRequestParams
-
Constructor Details
-
DefaultMyFatoorahTransactionLookupService
public DefaultMyFatoorahTransactionLookupService(MyFatoorahProvider myFatoorahProvider, com.fasterxml.jackson.databind.ObjectMapper objectMapper, com.broadleafcommerce.common.extension.TypeFactory typeFactory, MyFatoorahConfigurationProperties configProperties)
-
-
Method Details
-
validateRequestParams
public void validateRequestParams(Map<String, String> requestParams, @Nullable String tenantId, @Nullable String applicationId) - Specified by:
validateRequestParamsin interfacecom.broadleafcommerce.paymentgateway.service.PaymentGatewayTransactionLookupService
-
getTransactionDetails
public org.apache.commons.lang3.tuple.Pair<com.broadleafcommerce.paymentgateway.domain.TransactionIdentifier,com.broadleafcommerce.paymentgateway.domain.PaymentResponse> getTransactionDetails(Map<String, String> requestParams, @Nullable String tenantId, @Nullable String applicationId) - Specified by:
getTransactionDetailsin interfacecom.broadleafcommerce.paymentgateway.service.PaymentGatewayTransactionLookupService
-
lookupTransactionDetails
public com.broadleafcommerce.paymentgateway.domain.PaymentResponse lookupTransactionDetails(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.TransactionLookupRequest transactionLookupRequest, @Nullable String tenantId, @Nullable String applicationId) - Specified by:
lookupTransactionDetailsin interfacecom.broadleafcommerce.paymentgateway.service.PaymentGatewayTransactionLookupService
-
getGatewayType
- Specified by:
getGatewayTypein interfacecom.broadleafcommerce.paymentgateway.service.PaymentGatewayTypeAware
-
populatePaymentResponse
protected com.broadleafcommerce.paymentgateway.domain.PaymentResponse populatePaymentResponse(@NonNull @NonNull MyFatoorahResponse myFatoorahResponse, @NonNull @NonNull String invoiceId, @Nullable String applicationId, @Nullable String tenantId) -
getInvoiceStatus
@Nullable protected String getInvoiceStatus(@NonNull @NonNull MyFatoorahResponse myFatoorahResponse) -
identifyLatestTransaction
protected MyFatoorahResponse.InvoiceTransaction identifyLatestTransaction(@NonNull @NonNull MyFatoorahResponse myFatoorahResponse) -
getTransactionAmount
@Nullable protected javax.money.MonetaryAmount getTransactionAmount(@NonNull MyFatoorahResponse.InvoiceTransaction invoiceTransactions, @NonNull @NonNull String transactionCurrency) -
getCurrencyCode
-
getGatewayResponseCode
protected String getGatewayResponseCode(@NonNull MyFatoorahResponse.InvoiceTransaction invoiceTransactions) -
identifyFailureType
-
buildTransactionIdentifier
-
populatePaymentResponse
protected com.broadleafcommerce.paymentgateway.domain.PaymentResponse populatePaymentResponse(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse, @NonNull @NonNull MyFatoorahResponse myFatoorahResponse, @NonNull MyFatoorahResponse.InvoiceTransaction transaction, @Nullable String paymentId, @Nullable String applicationId, @Nullable String tenantId, boolean isAuthorizedTransaction) -
buildPaymentResponse
protected void buildPaymentResponse(com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse, MyFatoorahResponse myFatoorahResponse, MyFatoorahResponse.InvoiceTransaction transaction, String transactionCurrency, boolean isSuccessful, String paymentId) -
isAuthorize
-
addRawResponse
protected void addRawResponse(com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse, MyFatoorahResponse myFatoorahResponse) -
buildGatewayTransactionId
protected String buildGatewayTransactionId(@NonNull MyFatoorahResponse.InvoiceTransaction transaction) Build the gateway transaction id using the payment id & track id, instead of usingMyFatoorahResponse.InvoiceTransaction.getTransactionId()due to this field not being present in the webhook payload.- Parameters:
transaction- The transaction results- Returns:
- The gateway transaction id based on the payment id & track id
-
populateResponseMap
protected void populateResponseMap(@NonNull MyFatoorahResponse.InvoiceTransaction latestTransaction, @NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse) -
putIfNotBlank
-
getPaymentId
-
isKnetTransaction
protected boolean isKnetTransaction(@NonNull MyFatoorahResponse.InvoiceTransaction myFatoorahResponse) -
isSuccessful
-
validateCurrency
-
getMyFatoorahProvider
-
getObjectMapper
protected com.fasterxml.jackson.databind.ObjectMapper getObjectMapper() -
getTypeFactory
protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory() -
getConfigProperties
-