ignited / laravel-omnipay
Integrates Omnipay with Laravel and provides an easy configuration.
Installs: 928 679
Dependents: 14
Suggesters: 0
Security: 0
Stars: 510
Watchers: 17
Forks: 100
Open Issues: 0
Requires
- php: ^7.2.5|^8.0
- illuminate/support: ~6|~7|~8|~9|~10|~11
- omnipay/common: ~3.0
README
Integrates the Omnipay PHP library with Laravel to make Configuring multiple payment tunnels a breeze!
Installation
Include the laravel-omnipay package as a dependency in your composer.json
:
composer require ignited/laravel-omnipay "3.*"
Note: You don't need to include the omnipay/common
in your composer.json - it has already been included laravel-omnipay
.
Install Required Providers
Now just include each gateway as you require, to included PayPal for example:
composer require omnipay/paypal "3.*"
Alternatively you can include every gateway by the following:
composer require omnipay/omnipay "3.*"
Note: this requires a large amount of composer work as it needs to fetch each seperate repository. This is not recommended.
Configuration
You can publish the configuration files using the vendor:publish
command.
php artisan vendor:publish --provider="Ignited\LaravelOmnipay\LaravelOmnipayServiceProvider" --tag=config
Once you have published the configuration files, you can add your gateway options to the config file in config/laravel-omnipay.php
.
PayPal Express Example
Here is an example of how to configure password, username and, signature with paypal express checkout driver
... 'gateways' => [ 'paypal' => [ 'driver' => 'PayPal_Express', 'options' => [ 'username' => 'coolusername', 'password' => 'strongpassword', 'signature' => '', 'solutionType' => '', 'landingPage' => '', 'headerImageUrl' => '', 'brandName' => 'Your app name', 'testMode' => true ] ], ] ...
Usage
$cardInput = [ 'number' => '4444333322221111', 'firstName' => 'MR. WALTER WHITE', 'expiryMonth' => '03', 'expiryYear' => '16', 'cvv' => '333', ]; $card = Omnipay::creditCard($cardInput); $response = Omnipay::purchase([ 'amount' => '100.00', 'returnUrl' => 'http://bobjones.com/payment/return', 'cancelUrl' => 'http://bobjones.com/payment/cancel', 'card' => $cardInput ])->send(); dd($response->getMessage());
This will use the gateway specified in the config as default
.
However, you can also specify a gateway to use.
Omnipay::setGateway('paypal'); $response = Omnipay::purchase([ 'amount' => '100.00', 'card' => $cardInput ])->send(); dd($response->getMessage());
In addition you can make an instance of the gateway.
$gateway = Omnipay::gateway('paypal');
Installation on Other Frameworks
Lumen
For Lumen
add the following in your bootstrap/app.php
$app->register(Ignited\LaravelOmnipay\LumenOmnipayServiceProvider::class);
Copy the laravel-omnipay.php file from the config directory to config/laravel-omnipay.php
And also add the following to bootstrap/app.php
$app->configure('laravel-omnipay');
Guzzle
If you are using Guzzle 6 you need to require the following package.
composer require php-http/guzzle6-adapter
Guzzle 7 now implements a PSR http client compliant adapter. So there is no need to include this.
License
This package is open-sourced software licensed under the MIT license.