Broadleaf Microservices

Payment Confirmation Workflow Activity

Table of Contents

Overview

This CheckoutWorkflowActivity is responsible for authorizing all unconfirmed payments. Broadleaf recommends an activity for authorizing payment (ensuring funds can be captured) during checkout but postponing capturing funds until time of fulfillment, that is, post-checkout. This makes partial fulfillment and cancellation, handling unexpected inventory mixups, and other scenarios easier for an OMS.

Moreover, we recommend that this be the last activity in the workflow 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 and, then, must be reversed if one of the other payments fails authorization.

Error Handling

On failure to confirm a payment, a CheckoutWorkflowActivityException is thrown with failureType FAILED_PAYMENT_CONFIRMATION, which is then handled by CheckoutWorkflowActivity and can be referenced by the checkout initiator in the CheckoutResponse. By default, the payment is also archived. Set broadleaf.cartoperation.checkout.workflow.payment.confirmation.shouldArchiveConfirmedPaymentsOnFailure=false to change this.