A simple composer package that implements the przelewy24 payment gateway.
For more information about the Przelewy24 API, take a look at the manual
This gateway can be installed with Composer:
$ composer require willvin/przelewy24
require_once __DIR__ . '/vendor/autoload.php';
use willvin\Przelewy24\Gateway;
$gateway = new Gateway();
$gateway->initialize([
'merchantId' => 'YOUR MERCHANT ID HERE',
'posId' => 'YOUR POS ID HERE',
'crc' => 'YOUR CRC KEY HERE',
'testMode' => true, // Sets P24 gateway to use sandbox url
]);
$gateway->setPostData([
'p24_transactionId' => 'Transaction ID',
'p24_amount' => 'Amount',
'p24_description' => 'Description',
'p24_email' => 'Email',
'p24_session_id' => $gateway->getSessionId('Transaction ID'), //pass your transaction id here or use this $gateway->getSessionId($orderId) function to generate the id
'p24_currency' => 'Currency',
'p24_country' => 'Country',
'p24_url_return' => 'Url to redirect user, after payment',
'p24_url_status' => 'Transaction status callback url',
]);
$res = $gateway->trnRegister(); // ruturns a code like this D35CD73C0E-37C7B5-059083-E8EFB7FA96
if(!$res['error']){
$res = $gateway->trnRequest($res['token']); // trigger the payment
} else {
echo 'Transaction failed.';
}
require_once __DIR__ . '/vendor/autoload.php';
use willvin\Przelewy24\Gateway;
$gateway = new Gateway();
$rawData = file_get_contents('php://input');
parse_str($rawData, $p24Data);
if(!empty($p24Data)){
$gateway->initialize([
'merchantId' => 'YOUR MERCHANT ID HERE',
'posId' => 'YOUR POS ID HERE',
'crc' => 'YOUR CRC KEY HERE',
'testMode' => true, // Sets P24 gateway to use sandbox url
]);
$gateway->setPostData([
'p24_session_id' => $p24Data['p24_session_id'],
'p24_order_id' => $p24Data['p24_order_id'],
'p24_amount' => $p24Data['p24_amount'],
'p24_currency' => $p24Data['p24_currency']
]);
$res = $gateway->trnVerify(); // Use to verify the payment sent to your callback url
}
require_once __DIR__ . '/vendor/autoload.php';
use willvin\Przelewy24\Gateway;
$gateway = new Gateway();
$gateway->initialize([
'merchantId' => 'YOUR MERCHANT ID HERE',
'posId' => 'YOUR POS ID HERE',
'crc' => 'YOUR CRC KEY HERE',
'testMode' => true, // Sets P24 gateway to use sandbox url
]);
OR
require_once __DIR__ . '/vendor/autoload.php';
use willvin\Przelewy24\Gateway;
$gateway = new Gateway('YOUR MERCHANT ID HERE', 'YOUR POS ID HERE', 'YOUR CRC KEY HERE', true);
$gateway->setPostData([
'p24_transactionId' => 'Transaction ID',
'p24_amount' => 'Amount',
'p24_description' => 'Description',
'p24_email' => 'Email',
'p24_session_id' => 'Session ID',
'p24_currency' => 'Currency',
'p24_country' => 'Country',
'p24_url_return' => 'Url to redirect user, after payment',
'p24_url_status' => 'Transaction status callback url',
'p24_channel' => $gateway::P24_CHANNEL_ALL, // you have the following channels available P24_CHANNEL_CC, P24_CHANNEL_BANK_TRANSFERS, P24_CHANNEL_MANUAL_TRANSFER, P24_CHANNEL_ALL_METHODS_24_7, P24_CHANNEL_USE_PREPAYMENT, P24_CHANNEL_ALL
]);
OR
$gateway->addValue('p24_transactionId', 'Transaction ID');
$gateway->addValue('p24_amount', 'Amount');
$gateway->addValue('p24_description', 'Description');
$gateway->addValue('p24_email', 'Email');
$gateway->addValue('p24_session_id', 'Session ID');
$gateway->addValue('p24_currency', 'Currency');
$gateway->addValue('p24_country', 'Country');
$gateway->addValue('p24_url_return', 'Url to redirect user, after payment';
$gateway->addValue('p24_url_status', 'Transaction status callback url';
$gateway->addValue('p24_channel', $gateway::P24_CHANNEL_ALL);// you have the following channels available P24_CHANNEL_CC, P24_CHANNEL_BANK_TRANSFERS, P24_CHANNEL_MANUAL_TRANSFER, P24_CHANNEL_ALL_METHODS_24_7, P24_CHANNEL_USE_PREPAYMENT, P24_CHANNEL_ALL
p24_address
p24_language
p24_client
p24_city
p24_order_id
p24_method
p24_time_limit
p24_shipping
p24_wait_for_result
p24_encoding
p24_transfer_label
p24_phone
p24_zip
#### Shopping cart details, where X is a number 1-100 (optional 2)
p24_name_X
p24_description_X
p24_quantity_X
p24_price_X
p24_number_X
For more details, you can read the przelewy24 documentation
$res = $gateway->trnRegister(); // ruturns a token like this D35CD73C0E-37C7B5-059083-E8EFB7FA96
$res = $gateway->trnRequest('Pass transaction token here'); // trigger the payment with your token
$res = $gateway->trnVerify(); // Use to verify the payment sent to your callback url
$gateway->getSessionId('Transaction ID');
If you believe you have found a bug, please report it using the GitHub issue tracker, or better yet, fork the library and submit a pull request.
Click "Watch and Star" to get an email notification once an update is made to this repository. And contributions are also welcomed.
You can support this project by donating to the following address.
PayPal: Make a Donation
Patreon: Become a Patron!
YouTube: Subscribe to willvin
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.