Payment Method System with Adyen API - MKuneva/Projects GitHub Wiki

Project Context

This project aimes to test Adyen API - its payment flows and webhooks. I worked for an external stakeholder who wanted me to research into payment providers and after selecting Adyen, as the most suitable for him, test it and help him integrate it to his payment flow in his webshop.

Ngrok set up

The test is performed locally using ngrok since Adyen requires a HTTPS endpoint that is publicly accessible to send webhook notifications. Ngrok is used to expose my local server via generated secure public URL. This allows effordless testing without the need to deploy to a live server.

Webhooks

The webhook should be configured in the Adyen dashboard after signing in and logging into your developer account. The ngrok URL should be added to the webhook and an HMAC key should be generated to ensure secure request validation. This key is later added to the server (app.js in my case) to verify incoming webhook events. From the Adyen dashboard a sample payment can be triggered to confirm the connection between the configuered webhook and my server.

APIs

In this project I also set up Adyen APIs using generated API keys for client (for fronend integration) and server (for server-side authentication) via their dashboard. The frontend is using Adyen Drop-In UI to display payment methods based on the client's country and can change the language of the instructions for the client's better understanding.

Full flow

The app supports full payment flow testing, including dynamic country selection, secure webhook handling, and payment status verification.