sina42048 / lara-pay
Iranian Payment Gateways , All in one !
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/sina42048/lara-pay
Requires
- guzzlehttp/guzzle: ^7.3
- illuminate/support: ^8.42
This package is auto-updated.
Last update: 2025-12-04 18:32:45 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