LaravelPackages.net
Acme Inc.
Toggle sidebar
sina42048/lara-pay

Iranian Payment Gateways , All in one !

1
4
About sina42048/lara-pay

sina42048/lara-pay is a Laravel package for iranian payment gateways , all in one !. It currently has 4 GitHub stars and 1 downloads on Packagist. Install it with composer require sina42048/lara-pay. Discover more Laravel packages by sina42048 or browse all Laravel packages to compare alternatives.

Last updated

LaraPay

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

Comments