The following documentation is only relevant prior to version
1.7.0-GA. For payment interactions in
1.7.0-GA and following releases, see Payment Transaction Components (Since 1.7.0-GA) and Checkout Payment Architecture.
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.
On failure to confirm a payment, a CheckoutWorkflowActivityException is thrown with
FAILED_PAYMENT_TRANSACTION, which is then handled by CheckoutWorkflowActivity and can be referenced by the checkout initiator in the CheckoutResponse.
By default, the payment is also archived.
broadleaf.cartoperation.checkout.workflow.payment.confirmation.shouldArchiveConfirmedPaymentsOnFailure=false to change this.