Skip to content

Exchange

Wouter Jonker edited this page Nov 27, 2025 · 3 revisions

The SDK includes functionality to make it very easy to setup your exchange handler, and process your orders.

<?php # Include your autoload.php require 'vendor/autoload.php'; use PayNL\Sdk\Util\ExchangeResponse; use PayNL\Sdk\Util\Exchange; # Instantiate the exchange object using the settings from config/config.global.php $exchange = new Exchange(); try { # Process the exchange request. This will take care of any type of exchange: GET, POST and even requests. # This function will return a payOrder object or throws an exception when something went wrong. $payOrder = $exchange->process(); if ($payOrder->isPending()) { $response = new ExchangeResponse(true, 'Ignoring pending'); } elseif ($payOrder->isPaid()) { $response = yourCodeToProcessPaidOrder($payOrder->getReference()); } else { $response = new ExchangeResponse(true, 'No action defined for payment state ' . $payOrder->getStateId()); } } catch (Throwable $exception) { $response = new ExchangeResponse(false, 'failed: ' . $exception->getMessage()); } # Finally the response of your exchange handler $exchange->setExchangeResponse($response); /**  * @param $reference  * @return ExchangeResponse  */ function yourCodeToProcessPaidOrder($reference): ExchangeResponse { try { // try to set your order to status paid return new ExchangeResponse(true, 'successfully processed'); } catch (Throwable $exception) { return new ExchangeResponse(false, 'could not process: ' . $exception->getMessage()); } }

See also the sample in the repository.

The payOrder object has multiple useful methods, such as:

Function Description
isPaid To check whether the payment was fully paid
isFastCheckout To determine whether the transaction is a fastCheckout-transaction
getReference To retrieve your payment reference

Clone this wiki locally