PHP code example of kuzry / laravel-przelewy24

1. Go to this page and download the library: Download kuzry/laravel-przelewy24 library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

kuzry / laravel-przelewy24 example snippets




namespace App\Http\Controllers;

use App\Models\Order;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Kuzry\Przelewy24\Facades\Przelewy24;

class Przelewy24Controller extends Controller
{
    public function transactionRegister(Request $request): JsonResponse
    {
        $order = Order::create([
            'number' => 'O-123456789-2025-01-01',
            'status' => 'pending',
            'products' => [1, 2],
        ]);

        return response()->json(
            Przelewy24::transaction()->register(
                TransactionRegisterRequestData::from([
                    'sessionId' => $order->number,
                    'amount' => $order->amount,
                    'description' => 'Order: ' . $order->number,
                    'email' => $request->input('email'),
                    'currency' => $order->currency,
                    'client' => $request->input('client'),
                    'address' => $request->input('address'),
                    'zip' => $request->input('zip'),
                    'city' => $request->input('city'),
                    'phone' => $request->input('phone'),
                    'method' => $request->input('method'),
                ]),
            )
        );
    }
}

Route::post('/przelewy24/transaction/register', [Przelewy24Controller::class, 'transactionRegister'])
    ->name('przelewy24.transaction.register');



namespace App\Http\Controllers;

use App\Models\Order;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Kuzry\Przelewy24\Facades\Przelewy24;

class Przelewy24Controller extends Controller
{    
    public function statusWebhook(Request $request): JsonResponse
    {
       $order = Order::where('number', $request->input('sessionId'))
            ->firstOrFail();

        $data = TransactionRegisterNotificationData::from([
            'sessionId' => $order->number,
            'amount' => $request->input('amount'),
            'originAmount' => $order->amount,
            'currency' => $order->currency,
            'orderId' => $request->input('orderId'),
            'methodId' => $request->input('methodId'),
            'statement' => $request->input('statement'),
        ]);

        if (Przelewy24::notification()->isTransactionRegisterValid($request->input('sign'), $data)) {
            $transactionVerifyResponseData = Przelewy24::transaction()->verify(
                TransactionVerifyRequestData::fromRequest($request)
            );

            if ($transactionVerifyResponseData->isSuccess) {
                $order->update([
                    'status' => 'completed',
                ]);

                return response()->json([
                    'success' => true,
                ]);
            }

            return response()->json([
                'success' => false,
                'error' => 'Verification failed',
            ], 400);
        }

        return response()->json([
            'success' => false,
            'error' => 'Invalid signature',
        ], 400);
    }
}

Route::post('/przelewy24/status', [Przelewy24Controller::class, 'statusWebhook'])
    ->name('przelewy24.status');

'auto_register_frontend_data' => true,



use Illuminate\Support\Facades\Route;
use Inertia\Inertia;
use Kuzry\Przelewy24\Facades\Przelewy24;

Route::get('/cart', function () {
    return Inertia::render('cart', [
        'przelewy24' => Przelewy24::getFrontendData(),
    ]);
})->name('home');
bash
php artisan vendor:publish --tag=przelewy24-config