Adyen Payment Integration
Adyen is a Dutch payment company that allows businesses to accept payments. The company offers payment processing software and application programming interfaces (APIs) for e-commerce websites and mobile applications.
To get started, you need to create an Adyen test account. The Adyen developer documentation provides all the resources you will need to optimize your payment integration. After getting an account, you get:
- the API key to communicate with Adyen servers
- the client key
Both of these can be found in the dashboard under Developers < API Credentials
The Remix Run Furniture v2 boilerplate includes a full Adyen integration, including a confirmation webhook.
On the checkout page, we render the Adyen payment form, which does the following:
- makes the cart immutable
- creates a payment (server-to-server)
In this boilerplate, we decided to save the cart in our own service layer, so we push the order to Crystallize only when the payment is successful.
When the user clicks the Pay button, the user is redirected to the /order/cart/${cartId} page. This page is actually waiting for the Cart to be saved as an order in Crystallize.
Indeed, while everything is happening, Adyen will call the confirm payment endpoint. This works because we provide the endpoint to the Adyen notification webhook.
The endpoint, when the event status is ‘AUTHORISATION’:
- creates a customer in Crystallize, if one doesn’t exist yet.
- creates the order in Crystallize
- updates the cart from placed to paid, allowing the waiting page to update to the order confirmation
This boilerplate is also using our Node Service API Request Handlers that include 2 handlers to speed up your Adyen integration.