Integrates Omnipay with Laravel and provides an easy configuration.
ignited/laravel-omnipay is a Laravel package for integrates omnipay with laravel and provides an easy configuration..
It currently has 517 GitHub stars and 1.086.399 downloads on Packagist (latest version 3.8.0).
Install it with composer require ignited/laravel-omnipay.
Discover more Laravel packages by ignited
or browse all Laravel packages to compare alternatives.
Last updated
Integrates the Omnipay PHP library with Laravel to make Configuring multiple payment tunnels a breeze!
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.
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.
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.
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
]
],
]
...
$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');
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');
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.
This package is open-sourced software licensed under the MIT license.