PHP code example of quellabs / canvas-payments-paypal
1. Go to this page and download the library: Download quellabs/canvas-payments-paypal 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-paypal example snippets
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: 'paypal',
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
}
}
}
// In your payment_exchange listener — store the capture ID when the payment succeeds
public function onPaymentExchange(PaymentState $state): void {
if ($state->state === PaymentStatus::Paid) {
$this->orderRepository->updateCaptureId(
$state->transactionId,
$state->metadata['paymentReference']
);
}
}
// Full refund
$request = new RefundRequest(
paymentReference: $order->paymentReference, // retrieved from your orders table
paymentModule: 'paypal',
amount: null, // null = full refund
currency: 'EUR',
description: 'Full refund for order #12345',
);
// Partial refund
$request = new RefundRequest(
paymentReference: $order->paymentReference, // retrieved from your orders table
paymentModule: 'paypal',
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),
PaymentStatus::Canceled => $this->markCanceled($state->transactionId),
PaymentStatus::Failed => $this->markFailed($state->transactionId),
default => null,
};
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.