PHP code example of quellabs / canvas-payments-buckaroo
1. Go to this page and download the library: Download quellabs/canvas-payments-buckaroo 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-buckaroo example snippets
return [
'website_key' => '',
'secret_key' => '',
'test_mode' => false,
'return_url' => 'https://example.com/order/thankyou',
'return_url_cancel' => 'https://example.com/order/cancelled',
'return_url_error' => 'https://example.com/order/error',
'return_url_reject' => 'https://example.com/order/rejected',
'push_url' => 'https://example.com/webhooks/buckaroo',
'default_culture' => 'nl-NL',
];
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(): Response {
$request = new PaymentRequest(
paymentModule: 'bkr_ideal',
amount: 999, // in minor units — €9.99
currency: 'EUR',
description: 'Order #12345',
reference: 'ORDER-12345',
issuerId: 'INGBNL2A',
);
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 (omit amount)
$request = new RefundRequest(
paymentReference: $state->transactionId,
paymentModule: 'bkr_ideal',
amount: null, // null = full refund
currency: 'EUR',
description: 'Full refund for order #12345',
);
// Partial refund
$request = new RefundRequest(
paymentReference: $state->transactionId,
paymentModule: 'bkr_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; // Buckaroo refund transaction Key
} 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::Refunded => $this->handleRefund($state),
PaymentStatus::Failed => $this->markFailed($state->transactionId),
default => null,
};
}
}