pay-now / paynow-php-sdk

PHP Library for Paynow API
https://docs.paynow.pl
MIT License
16 stars 10 forks source link
payments paynow paynow-api

Paynow PHP SDK

Build Status Latest Version Software License Total Downloads

Paynow PHP Library provides access to Paynow API from Applications written in PHP language.

Requirements

Installation

Composer

Install the library using Composer

$ composer require pay-now/paynow-php-sdk

If you don't have HTTP client that implements PSR-18 you can use:

$ composer require pay-now/paynow-php-sdk nyholm/psr7 php-http/curl-client

Use autoloader

require_once('vendor/autoload.php');

Usage

Making a payment

use Paynow\Client;
use Paynow\Environment;
use Paynow\Exception\PaynowException;
use Paynow\Service\Payment;

$client = new Client('TestApiKey', 'TestSignatureKey', Environment::SANDBOX);
$orderReference = "success_1234567";
$idempotencyKey = uniqid($orderReference . '_');

$paymentData = [
    'amount' => '100',
    'currency' => 'PLN',
    'externalId' => $orderReference,
    'description' => 'Payment description',
    'buyer' => [
        'email' => 'customer@domain.com'
    ]
];

try {
    $payment = new Payment($client);
    $result = $payment->authorize($paymentData, $idempotencyKey);
} catch (PaynowException $exception) {
    // catch errors
}

Handling notification with current payment status

use Paynow\Notification;

$payload = trim(file_get_contents('php://input'));
$headers = getallheaders();
$notificationData = json_decode($payload, true);

try {
    new Notification('TestSignatureKey', $payload, $headers);
    // process notification with $notificationData
} catch (Exception $exception) {
    header('HTTP/1.1 400 Bad Request', true, 400);
}

header('HTTP/1.1 202 Accepted', true, 202);

Making a payment's refund

use Paynow\Client;
use Paynow\Environment;
use Paynow\Exception\PaynowException;
use Paynow\Service\Refund;

$client = new Client('TestApiKey', 'TestSignatureKey', Environment::SANDBOX);

try {
    $refund = new Refund($client);
    $result = $refund->create('YXZA-123-ABC-A01', uniqid(), 100);
} catch (PaynowException $exception) {
    // catch errors
}

Retrieving available payment methods

use Paynow\Client;
use Paynow\Environment;
use Paynow\Exception\PaynowException;
use Paynow\Service\Payment;

$client = new Client('TestApiKey', 'TestSignatureKey', Environment::SANDBOX);

try {
    $payment = new Payment($client);
    $paymentMethods = $payment->getPaymentMethods('PLN', 100);
    $availablePaymentMethods = $paymentMethods->getAll();
} catch (PaynowException $exception) {
    // catch errors
}

Documentation

See the Paynow API documentation

Support

If you have any questions or issues, please contact our support at support@paynow.pl.

License

MIT license. For more information see the LICENSE file