Paynow PHP Library provides access to Paynow API from Applications written in PHP language.
- PHP 7.1 or higher
- HTTP client implements
php-http/client-implementation
. For more information see the packages list.
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');
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
}
See the Paynow API documentation
If you have any questions or issues, please contact our support at support@paynow.pl.
MIT license. For more information see the LICENSE file