Download the PHP package shetabit/payment without Composer
On this page you can find all versions of the php package shetabit/payment. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download shetabit/payment
More information about shetabit/payment
Files in shetabit/payment
Package payment
Short Description Laravel Payment Gateway Integration Package
License MIT
Homepage https://github.com/shetabit/payment
Rated 3.00 based on 1 reviews
Informations about the package payment
Laravel Payment Gateway
This is a Laravel Package for Payment Gateway Integration. This package requires PHP 8.4+ and supports Laravel 12+.
Donate me if you like this package :sunglasses: :bowtie:
For PHP integration you can use shetabit/multipay package.
This packages works with multiple drivers, and you can create custom drivers if you can't find them in the current drivers list (below list).
- داکیومنت فارسی
- English documents
- 中文文档
List of contents
- Laravel Payment Gateway
- List of contents
- List of available drivers
- Install
- Configure
- How to use
- Working with invoices
- Purchase invoice
- Pay invoice
- Verify payment
- Useful methods
- Create custom drivers:
- Events
- Testing
- Change log
- Contributing
- Security
- Credits
- License
List of available drivers
- aqayepardakht :heavy_check_mark:
- asanpardakht :heavy_check_mark:
- atipay :heavy_check_mark:
- azkiVam (Installment payment) :heavy_check_mark:
- behpardakht (mellat) :heavy_check_mark:
- bitpay :heavy_check_mark:
- daracard :heavy_check_mark:
- digipay :heavy_check_mark:
- etebarino (Installment payment) :heavy_check_mark:
- fanavacard :heavy_check_mark:
- gooyapay :heavy_check_mark:
- irandargah :heavy_check_mark:
- irankish :heavy_check_mark:
- jibit :heavy_check_mark:
- local :heavy_check_mark:
- minipay :heavy_check_mark:
- nextpay :heavy_check_mark:
- novinopay :heavy_check_mark:
- omidpay :heavy_check_mark:
- panapal :heavy_check_mark:
- parsian :heavy_check_mark:
- parspal :heavy_check_mark:
- pasargad :heavy_check_mark:
- payfa :heavy_check_mark:
- paypal (will be added soon in next version)
- payping :heavy_check_mark:
- paystar :heavy_check_mark:
- pna :heavy_check_mark:
- poolam :heavy_check_mark:
- rayanpay :heavy_check_mark:
- refah :heavy_check_mark:
- sadad (melli) :heavy_check_mark:
- saman :heavy_check_mark:
- sep (saman electronic payment) Keshavarzi & Saderat :heavy_check_mark:
- sepehr (saderat) :heavy_check_mark:
- sepordeh :heavy_check_mark:
- shepa :heavy_check_mark:
- sizpay :heavy_check_mark:
- snapppay :heavy_check_mark:
- stripe :heavy_check_mark:
- toman :heavy_check_mark:
- torobpay (Installment payment) :heavy_check_mark:
- vandar :heavy_check_mark:
- xendit :heavy_check_mark:
- yekpay :heavy_check_mark:
- zarinpal :heavy_check_mark:
-
zibal :heavy_check_mark:
- Others are under way.
Help me to add the gateways below by creating pull requests
- stripe
- authorize
- 2checkout
- braintree
- skrill
- payU
- amazon payments
- wepay
- payoneer
- paysimple
you can create your own custom drivers if it does not exist in the list, read the
Create custom driverssection.
Install
Via Composer
Publish Vendor Files
-
publish configuration files:
- publish views for customization:
Configure
The service provider and the Payment alias are registered by Laravel's package discovery, so there is nothing to add
to config/app.php (or to bootstrap/providers.php).
In the config file you can set the default driver to use for all your payments. But you can also change the driver at runtime.
Choose what gateway you would like to use in your application. Then make that as default driver so that you don't have to specify that everywhere. But, you can also use multiple gateways in a project.
Then fill the credentials for that gateway in the drivers array.
How to use
your Invoice holds your payment details, so initially we'll talk about Invoice class.
Working with invoices
before doing any thing you need to use Invoice class to create an invoice.
In your code, use it like the below:
available methods:
uuid: set the invoice unique idgetUuid: retrieve the invoice current unique iddetail: attach some custom details into invoicegetDetails: retrieve all custom detailsamount: set the invoice amountgetAmount: retrieve invoice amounttransactionId: set invoice payment transaction idgetTransactionId: retrieve payment transaction idvia: set a driver we use to pay the invoicegetDriver: retrieve the driver
Purchase invoice
In order to pay the invoice, we need the payment transactionId. We purchase the invoice to retrieve transaction id:
Pay invoice
After purchasing the invoice, we can redirect the user to the bank payment page:
Verify payment
When user has completed the payment, the bank redirects them to your website, then you need to verify your payment in order to ensure the invoice has been paid.
Useful methods
-
callbackUrl: can be used to change callbackUrl on the runtime. -
amount: you can set the invoice amount directly -
via: change driver on the fly -
config: set driver configs on the fly
Create custom drivers:
First you have to add the name of your driver, in the drivers array and also you can specify any config parameters you want.
Now you have to create a Driver Map Class that will be used to pay invoices.
In your driver, You just have to extend Shetabit\Payment\Abstracts\Driver.
Eg. You created a class: App\Packages\PaymentDriver\MyDriver.
Once you create that class you have to specify it in the payment.php config file map section.
Note:- You have to make sure that the key of the map array is identical to the key of the drivers array.
Events
You can listen for 2 events
- InvoicePurchasedEvent: Occurs when an invoice is purchased (after purchasing invoice is done successfully).
- InvoiceVerifiedEvent: Occurs when an invoice is verified successfully.
Both events expose the driver and the invoice they were dispatched for as readonly properties, and the verification
event exposes the receipt as well:
Testing
Every pull request and every push to master is checked by GitHub Actions: the test suite runs on
PHP 8.4 and 8.5, against Laravel 12 and 13 and against both the lowest and the highest supported dependencies, the
coding style is checked with PHP_CodeSniffer, the sources are analysed with PHPStan and the code coverage of the test
suite is measured and has to stay above 95%.
You can run the same checks locally. With PHP and Composer installed on your machine:
If you would rather not install PHP on your machine, the shipped Dockerfile and Makefile run everything inside a
container:
Another PHP version can be used with make test PHP_VERSION=8.5, and a single Laravel version with
make test-laravel LARAVEL=12.
Change log
Please see CHANGELOG for more information on what has been changed recently.
Contributing
Please see CONDUCT for details.
Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Credits
- Mahdi khanzadi
- All Contributors
License
The MIT License (MIT). Please see License File for more information.
Star History
All versions of payment with dependencies
illuminate/broadcasting Version ^12.0|^13.0
illuminate/contracts Version ^12.0|^13.0
illuminate/support Version ^12.0|^13.0
illuminate/view Version ^12.0|^13.0
shetabit/multipay Version ^3.0.1