Class PaymentTransactionExecutionActivity

java.lang.Object
com.broadleafcommerce.cartoperation.service.checkout.workflow.activity.PaymentTransactionExecutionActivity
All Implemented Interfaces:
CheckoutWorkflowActivity, PaymentFinalizationActivity, RequiresSecurePaymentInformationActivity

public class PaymentTransactionExecutionActivity extends Object implements RequiresSecurePaymentInformationActivity, PaymentFinalizationActivity
This CheckoutWorkflowActivity is responsible for executing payment transactions that are required to complete a successful checkout. This is where we strongly suggest that you execute payment transactions due to the amount of control & visibility that it provides. With that being said, if transactions were executed prior to entering the CheckoutWorkflow, then this activity doesn't have any work to do. Alternatively, if you wish to process the payment transactions at a later time, then it can be done by skipping the transaction execution in this activity. We strongly suggest that this is the last activity in your CheckoutWorkflow to eliminate the need to reverse successful authorization transactions for carts with a single payment method. If the cart includes multiple payments that are to be authorized within the checkout workflow, then this activity ordering will not avoid the need to reverse an authorization. In that case, there's a chance that one of the payments will be successfully authorized & then must be reversed if one of the other payments fails authorization.
Author:
Chris Kittrell (ckittrell)
  • Constructor Details

    • PaymentTransactionExecutionActivity

      public PaymentTransactionExecutionActivity(PaymentTransactionExecutionService transactionExecutionService, org.springframework.context.MessageSource messageSource)
  • Method Details

    • execute

      public CheckoutProcessDto execute(@NonNull @NonNull CheckoutProcessDto checkoutProcessDto, @NonNull @NonNull Map<String,String> securityCodes, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: RequiresSecurePaymentInformationActivity
      Method responsible for executing some work against the cart that requires secure payment information in checkout.
      Specified by:
      execute in interface RequiresSecurePaymentInformationActivity
      Parameters:
      checkoutProcessDto - The CheckoutProcessDto that we're attempting to checkout with.
      securityCodes - Secure codes that are passed to the gateway for verification during authorization or capture transactions.
      contextInfo - Context information around sandbox and multitenant state.
      Returns:
      The final state of the CheckoutProcessDto following the execution of the activity.
    • execute

      public CheckoutProcessDto execute(@NonNull @NonNull CheckoutProcessDto processDto, @NonNull @NonNull List<SensitivePaymentMethodData> sensitivePaymentMethodData, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: RequiresSecurePaymentInformationActivity
      Method responsible for executing some work against the cart that requires secure payment information in checkout.
      Specified by:
      execute in interface RequiresSecurePaymentInformationActivity
      Parameters:
      processDto - The CheckoutProcessDto that we're attempting to checkout with.
      sensitivePaymentMethodData - Collection of SensitivePaymentMethodData used to communicate payment method properties that should not be persisted in Payment#paymentMethodProperties in PaymentTransactionServices.
      contextInfo - Context information around sandbox and multitenant state.
      Returns:
      The final state of the CheckoutProcessDto following the execution of the activity.
    • hasNon3dsAndNonExternalInteractionFailure

      protected boolean hasNon3dsAndNonExternalInteractionFailure(@NonNull @NonNull PaymentTransactionFailureException e)
    • getMessage

      protected String getMessage(@NonNull @NonNull String errorMessage, @Nullable Object... args)
    • getTransactionExecutionService

      protected PaymentTransactionExecutionService getTransactionExecutionService()
    • getMessageSource

      protected org.springframework.context.MessageSource getMessageSource()
    • getTypeFactory

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

      @Autowired public void setTypeFactory(com.broadleafcommerce.common.extension.TypeFactory typeFactory)