Consume the Shipmondo API in PHP.
composer require setono/shipmondo-php-sdk
<?php
use Setono\Shipmondo\Client\Client;
require_once __DIR__ . '/../vendor/autoload.php';
$client = new Client('api_username', 'api_key');
$paymentGateways = $client
->paymentGateways()
->get()
;
foreach ($paymentGateways as $paymentGateway) {
print_r($paymentGateway);
}
will output something:
Setono\Shipmondo\Response\PaymentGateways\PaymentGateway Object
(
[id] => 1234
[name] => quickpay
[provider] => quick_pay
[merchantNumber] => 67894321
)
Internally this library uses the CuyZ/Valinor library which is particularly well suited for turning API responses into DTOs. However, this library has some overhead and works best with a cache enabled.
When you instantiate the Client
use the opportunity to set a cache:
<?php
use CuyZ\Valinor\Cache\FileSystemCache;
use Setono\Shipmondo\Client\Client;
require_once '../vendor/autoload.php';
$cache = new FileSystemCache('path/to/cache-directory');
$client = new Client('API_USERNAME', 'API_KEY');
$client->getMapperBuilder()->withCache($cache);
You can read more about it here: Valinor: Performance and caching.