obanach/zen-php-sdk

PHP client library for creating checkouts and IPN validation via ZEN.COM API

1.0 2023-03-16 22:42 UTC

This package is auto-updated.

Last update: 2024-05-17 01:31:48 UTC


README

PHP client library for creating and retrieving payments via ZEN.COM API

Installation

composer require obanach/zen-php-sdk

Usage

Create checkout

use Zen\ZenClient;

$client = new ZenClient('PAYWALL_SECRET', 'IPN_SECRET', 'TERMINAL_UUID');

$checkout = $client->createCheckout([
    'merchantTransactionId' => 'myCustomTransactionId',
    'amount' => 10.00,
    'currency' => 'PLN',
    'customer' => [
        'firstName' => 'John',
        'lastName' => 'Doe',
        'email' => 'john@example.com'
    ],
    'items' => [
        [
            'code' => 't-shirt',
            'name' => 'Blue t-shirt',
            'price' => 10.00,
            'quantity' => 1,
            'lineAmountTotal' => 10.00,
        ]
    ]
]);

if ($checkout->getStatus()) {
    $checkout->getCheckoutUrl();
} else {
    $checkout->getMessage();
}

Validate IPN

use Zen\ZenClient;

$client = new ZenClient('PAYWALL_SECRET', 'IPN_SECRET', 'TERMINAL_UUID');

// raw json data received from IPN
$json = '{"merchantTransactionId":"myCustomTransactionId","amount":"10.00","currency":"EUR","status":"PAID","hash":"5CD4255C8BEE2A45ADF57DA13CADCA406FF4C5D2A1046E5EF719890A8FB09807"}'

$validate = $client->validateIpn($json);

if ($validate->getStatus()) {
    // validate on your own if currency and amount are correct
    $validate->getMerchantTransactionId();
    $validate->getCurrency();
    $validate->getAmount();
    $validate->getPaymentStatus();
} else {
    // handle error
    $validate->getMessage();
}

API Documentation

See the official zen.com API documentation

License

MIT license.