Search by

sina42048 / lara-pay

sina42048

Iranian Payment Gateways , All in one !

Package info

github.com/sina42048/LaraPay

pkg:composer/sina42048/lara-pay

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 4

Open Issues: 0

dev-main 2022-11-04 11:33 UTC

This package is auto-updated.

Last update: 2026-09-30 10:25:14 UTC


README

Iranian payment gateways for laravel , all in one !

Install

Step 1 :
composer require sina42048/lara-pay
Step 2 :
php artisan vendor:publish
Step 3 :
configure your api key in the config/larapay.php

for laravel version 5.5 and below following step is required

In your config/app.php file add these two lines
// In your providers array.
'providers' => [
    ...
    Sina42048\LaraPay\Provider\LaraPayServiceProvider::class,
],

// In your aliases array.
'aliases' => [
    ...
    'LaraPay' => Sina42048\LaraPay\Facade\Lapay::class,
],

Supported Drivers

Driver stability sandbox_stability description
idpay ✅ ✅ -
parspal ✅ ❌ this web service sand box has issue and doesnt work , however the sandbox functions is implemented, maybe in the future parspal fix this issue !
zarinpal ✅ ✅ this driver sandbox doesnt work properly but we can simulate this with the help of api key in the parspal documentation
zibal ✅ ✅ -
nextpay ✅ ❌ this web service doesnt support sandbox feature

Example Usage For Payment Process

For more information about required field for every driver please refer to that driver documentation page

use Sina42048\LaraPay\LaraBill;
use Sina42048\LaraPay\Exception\PaymentRequestException;

Route::get('/payment', function () {
    $bill = new LaraBill();
    $bill->amount(1000);
    $bill->order_id = 2;

    try {
        return LaraPay::setBill($bill)
            ->setDriver('idpay')
            ->prepare(function($transactionId, $driverName) {
                //dd($transactionId); // do database actions
            })
            ->render();
    } catch (PaymentRequestException $e) {
        dd($e->getMessage());
    }
});

Example Usage For Verify Process

use Sina42048\LaraPay\LaraRecipt;
use Sina42048\LaraPay\Exception\PaymentVerifyException;


Route::match(['GET', 'POST'], '/verify', function() {
    try {
        LaraPay::setDriver('idpay')
            ->checkAmount(function($transactionId) {
                return $amount; // $amount should be return from your table in database based on transaction id, throw exception if amount not found
            })
            ->verify(function(LaraRecipt $recipt) {
                dd($recipt); // payment is verfied , recipt data accessable
            });

    } catch (PaymentVerifyException $e) {
        dd($e->getMessage());
    }
});

Contributing

pull request are welcome !

License

MIT