The extension introduces the adyenCheckoutFacade which can be used in combination with your own storefront controllers. The methods of this facade can be used to initiate payments during the checkout process.
The extension overrides the checkoutFlowFacade to re-implement the hasNoPaymentInfo method because the defaultCheckoutFlowFacade is strongly coupled to built-in credit card payments.
The extension offers the following services:
- adyenTransactionService: Provides methods to register Adyen transaction entries.
- adyenPaymentService: Provides methods to communicate to Adyen API such as authorizations, captures and refunds.
- adyenNotificationService: Provides methods to handle Adyen notifications to be used in custom notification controller.
- adyenOrderService: Provides methods to update an order regarding payment data such as fraud results.
- adyenBusinessProcessService: Provides methods to trigger Adyen events for order and return processes.
The following models are extended ad:
- CartModel to add the CSE token.
- BaseStoreModel to add Adyen configurations on store level.
- PaymentInfoModel to add the payment details i.e. selected payment method and fraud results.
Adyen extension implements AbstractOrderPopulator to inject the billing address to an OrderData or CartData object. This is done because the AbstractOrderData is strongly coupled to credit card payments. This populator is added on the list of populators of cartConverter, extendedCartConverter, and orderConverter.
The extension implements the CartPopulator to inject data about the selected payment method to the CartData object so that it is available from the controllers that use the cart facade.
The following URLs are being handled by Adyen Controllers:
- GET/checkout/multi/adyen/select-payment-method: Payment & Billing Address checkout step implementation. In this step, the shopper selects a card or local payment method.
- POST/checkout/multi/adyen/select-payment-method: This contains the handler of the payment method selection form and stores the selection (CSE token, HPP brandCode, issuerId) to the cart.
- GET /checkout/multi/adyen/summary/view: Final Review checkout step implementation. In this step, we display a payment form to be posted to Adyen Place Order handler. The reason why this controller exists is to override the target of the default form submission.
- POST/checkout/multi/adyen/summary/placeOrder: Handler for the final payment submission. In this step we create the order, initiate an authorization call and redirect to 3D Secure by displaying a silent form that posts to the issuer. The shopper is then redirected to skin and finally to the order confirmation page.
- POST/checkout/multi/adyen/summary/authorise-3d-adyen-response: Handler for the Adyen redirect after the customer finishes his 3D Secure authentication.
- POST/adyen/v6/notification: Handler for notifications sent from Adyen.