PHP code example of quellabs / canvas-payments-adyen
1. Go to this page and download the library: Download quellabs/canvas-payments-adyen library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
quellabs / canvas-payments-adyen example snippets
return [
'test_mode' => true,
'api_key' => '',
'merchant_account' => '',
'hmac_key' => '',
'live_endpoint_prefix' => '', // om/webhooks/adyen',
'default_country' => 'NL',
'default_currency' => 'EUR',
];
use Quellabs\Payments\Contracts\PaymentInterface;
use Quellabs\Canvas\Controllers\BaseController;
use Quellabs\Payments\Contracts\PaymentRequest;
use Quellabs\Payments\Contracts\PaymentInitiationException;
class CheckoutController extends BaseController {
public function __construct(private PaymentInterface $router) {}
/**
* @Route("...")
*/
public function checkout(): void {
$request = new PaymentRequest(
paymentModule: 'adyen_ideal',
amount: 999, // in minor units — €9.99
currency: 'EUR',
description: 'Order #12345',
);
try {
$result = $this->router->initiate($request);
return $this->redirect($result->redirectUrl);
} catch (PaymentInitiationException $e) {
// handle error
}
}
}
use Quellabs\Payments\Contracts\RefundRequest;
use Quellabs\Payments\Contracts\PaymentRefundException;
// Full refund
$request = new RefundRequest(
paymentReference: $state->transactionId,
paymentModule: 'adyen_ideal',
amount: null, // null = full refund
currency: 'EUR',
description: 'Full refund for order #12345',
);
// Partial refund
$request = new RefundRequest(
paymentReference: $state->transactionId,
paymentModule: 'adyen_ideal',
amount: 500, // in minor units — €5.00
currency: 'EUR',
description: Partial refund for order #12345',
);
try {
$result = $this->router->refund($request);
echo $result->refundId;
} catch (PaymentRefundException $e) {
// handle error
}
use Quellabs\Canvas\Annotations\ListenTo;
use Quellabs\Payments\Contracts\PaymentState;
use Quellabs\Payments\Contracts\PaymentStatus;
class OrderService {
/**
* @ListenTo("payment_exchange")
*/
public function onPaymentExchange(PaymentState $state): void {
match ($state->state) {
PaymentStatus::Paid => $this->markPaid($state->transactionId, $state->valuePaid),
PaymentStatus::Canceled => $this->markCanceled($state->transactionId),
PaymentStatus::Expired => $this->markExpired($state->transactionId),
PaymentStatus::Refunded => $this->handleRefund($state),
default => null,
};
}
}