Giter Club home page Giter Club logo

przelewy24's Introduction

Przelewy24

A simple composer package that implements the przelewy24 payment gateway.

willvin's Przelewy24 payment processing library

Software License Codacy Badge

For more information about the Przelewy24 API, take a look at the manual

Install

This gateway can be installed with Composer:

$ composer require willvin/przelewy24

Example

Initiate Transaction

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.';
}

Verify Transaction

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
}

Usage

Initialization

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);

Set Post Data

$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

Other available Post Data fields

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

Register transaction

$res = $gateway->trnRegister(); // ruturns a token like this D35CD73C0E-37C7B5-059083-E8EFB7FA96

Initiate Transaction

$res = $gateway->trnRequest('Pass transaction token here'); // trigger the payment with your token

Verify Transaction

$res = $gateway->trnVerify(); // Use to verify the payment sent to your callback url

Generate Session ID

$gateway->getSessionId('Transaction ID');

Support

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.

Buy Me A Coffee

PayPal: Make a Donation

Patreon: Become a Patron!

YouTube: Subscribe to willvin

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

przelewy24's People

Contributors

dependabot[bot] avatar willvin313 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

codacy-badger

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.