Class MyFatoorahAuthorizeRequestResponseTransformer

java.lang.Object
com.broadleafcommerce.myfatoorah.service.requestresponse.AbstractRequestResponseTransformer
com.broadleafcommerce.myfatoorah.service.requestresponse.MyFatoorahAuthorizeRequestResponseTransformer
All Implemented Interfaces:
RequestResponseTransformer

public class MyFatoorahAuthorizeRequestResponseTransformer extends AbstractRequestResponseTransformer
The transformer for DefaultTransactionTypes.AUTHORIZE transaction type.
Author:
Dima Myroniuk (dmyroniuk)
  • Constructor Details

    • MyFatoorahAuthorizeRequestResponseTransformer

      public MyFatoorahAuthorizeRequestResponseTransformer(MyFatoorahConfigurationProperties configProperties, com.fasterxml.jackson.databind.ObjectMapper objectMapper, com.broadleafcommerce.common.extension.TypeFactory typeFactory)
  • Method Details

    • canHandle

      public boolean canHandle(@NonNull @NonNull String transactionType)
      Description copied from interface: RequestResponseTransformer
      Checks if this transformer can handle the specified transaction type.
      Parameters:
      transactionType - the transaction type of the request
      Returns:
      true if this transformer can be used for the specified request
    • createMyFatoorahRequest

      public Map<String,Object> createMyFatoorahRequest(@NonNull @NonNull MyFatoorahPaymentRequest myFatoorahPaymentRequest)
      Description copied from interface: RequestResponseTransformer
      Creates the MyFatoorah request body based on MyFatoorahPaymentRequest.
      Specified by:
      createMyFatoorahRequest in interface RequestResponseTransformer
      Overrides:
      createMyFatoorahRequest in class AbstractRequestResponseTransformer
      Parameters:
      myFatoorahPaymentRequest - the myFatoorah payment request
      Returns:
      the MyFatoorah request body
    • populatePaymentResponse

      public com.broadleafcommerce.paymentgateway.domain.PaymentResponse populatePaymentResponse(@NonNull @NonNull MyFatoorahPaymentRequest myFatoorahPaymentRequest, @NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse, @NonNull @NonNull MyFatoorahResponse myFatoorahResponse)
      Description copied from interface: RequestResponseTransformer
      Populates the payment response based on the response from the MyFatoorah API.
      Specified by:
      populatePaymentResponse in interface RequestResponseTransformer
      Overrides:
      populatePaymentResponse in class AbstractRequestResponseTransformer
      Parameters:
      myFatoorahPaymentRequest - the myFatoorah payment request
      paymentResponse - the payment response to populate
      myFatoorahResponse - the response from MyFatoorah API
      Returns:
      the populated payment response
    • getSessionId

      @Nullable protected String getSessionId(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest)
    • getCallBackUrl

      @Nullable protected String getCallBackUrl(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest)
    • getErrorUrl

      @Nullable protected String getErrorUrl(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest)
    • getCurrency

      protected String getCurrency(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest)
    • getLanguage

      protected String getLanguage(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest)
    • populateCustomerDetails

      protected void populateCustomerDetails(@NonNull @NonNull MyFatoorahPaymentRequest myFatoorahPaymentRequest, Map<String,Object> request)
    • buildUserDefinedField

      @Nullable protected String buildUserDefinedField(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest)
    • populatePaymentResponse

      protected com.broadleafcommerce.paymentgateway.domain.PaymentResponse populatePaymentResponse(@NonNull @NonNull MyFatoorahPaymentRequest myFatoorahPaymentRequest, @NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse, @NonNull @NonNull MyFatoorahResponse myFatoorahResponse, @NonNull MyFatoorahResponse.InvoiceTransaction transaction)
    • isSuccessful

      protected boolean isSuccessful(MyFatoorahResponse.InvoiceTransaction transaction)
    • buildGatewayTransactionId

      protected String buildGatewayTransactionId(@NonNull MyFatoorahResponse.InvoiceTransaction transaction)
      Build the gateway transaction id using the payment id & track id, instead of using MyFatoorahResponse.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
    • requires3DSVerification

      protected boolean requires3DSVerification(MyFatoorahResponse.InvoiceTransaction transaction)
    • get3DSVerificationUrl

      @Nullable protected String get3DSVerificationUrl(@NonNull @NonNull MyFatoorahResponse myFatoorahResponse)
    • populateResponseMap

      protected void populateResponseMap(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse, @NonNull @NonNull MyFatoorahResponse myFatoorahResponse, @NonNull MyFatoorahResponse.InvoiceTransaction latestTransaction)
    • getTypeFactory

      protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()