Adyen library for handling notification webhooks.
You can use Composer. Follow the installation instructions if you do not already have Composer installed.
composer require adyen/php-webhook-module
In your PHP script, make sure to include the autoloader:
require __DIR__ . '/vendor/autoload.php';
Alternatively, you can download the release on GitHub.
// Setup NotificationReceiver with dependency injection or create an instance as follows
$notificationReceiver = new \Adyen\Webhook\Receiver\NotificationReceiver(new \Adyen\Webhook\Receiver\HmacSignature);
// Authorize notification
if (!$notificationReceiver->isAuthenticated(
$request['notificationItems'][0]['NotificationRequestItem'],
YOUR_MERCHANT_ACCOUNT,
YOUR_NOTIFICATION_USERNAME,
YOUR_NOTIFICATION_PASSWORD
)) {
throw new AuthenticationException();
}
// Process each notification item
foreach ($request['notificationItems'] as $notificationItem) {
// validate the notification
if ($notificationReceiver->validateHmac($notificationItem, YOUR_HMAC_KEY)) {
// save notification to your database
$this->databaseService->saveNotification($notificationItem);
}
}
return new JsonResponse('[accepted]');
$notificationItem = \Adyen\Webhook\Notification::createItem([
'eventCode' => $notification['eventCode'],
'success' => $notification['success']
]);
$processor = \Adyen\Webhook\Processor\ProcessorFactory::create(
$notificationItem,
$currentPaymentState,
$this->logger
);
$newState = $processor->process();
NB: set $currentPaymentState
to one of the values in \Adyen\Webhook\PaymentStates
Visit our documentation page to learn more about handling notifications.
We encourage you to contribute to this repository, so everyone can benefit from new features, bug fixes, and any other improvements. Have a look at our contributing guidelines to find out how to raise a pull request.
If you have a feature request, or spotted a bug or a technical problem, create an issue here. For other questions, contact our Support Team.
This repository is available under the MIT license.