Omnipay for Laravel 5 & Lumen
, (*1)
Integrates the Omnipay PHP library with Laravel 5 via a ServiceProvider to make Configuring multiple payment tunnels a breeze!, (*2)
Laravel 4 Support
For Laravel 4 see the version 1.x tree, (*3)
Now using Omnipay 2.3/2.5
Version 2.0 and onwards has been updated to use Omnipay 2.3., (*4)
Version 2.2 and onwards is using Omnipay 2.5, (*5)
Composer Configuration
Include the laravel-omnipay package as a dependency in your composer.json:, (*6)
"ignited/laravel-omnipay": "2.*"
Note: You don't need to include the omnipay/common in your composer.json - it is a requirement of the laravel-omnipay package., (*7)
Omnipay recently went refactoring that made it so that each package is now a seperate repository. The omnipay/common package includes the core framework. You will then need to include each gateway as you require. For example:, (*8)
"omnipay/eway": "*"
Alternatively you can include every gateway by requring:, (*9)
"omnipay/omnipay": "*"
Note: this requires a large amount of composer work as it needs to fetch each seperate repository. This is not recommended., (*10)
Installation
Run composer install to download the dependencies., (*11)
Laravel 5
Add a ServiceProvider to your providers array in config/app.php:, (*12)
'providers' => [
'Ignited\LaravelOmnipay\LaravelOmnipayServiceProvider',
]
Add the Omnipay facade to your facades array:, (*13)
'Omnipay' => 'Ignited\LaravelOmnipay\Facades\OmnipayFacade',
Finally, publish the configuration files via php artisan vendor:publish., (*14)
Lumen
For Lumen add the following in your bootstrap/app.php, (*15)
$app->register(Ignited\LaravelOmnipay\LumenOmnipayServiceProvider::class);
Copy the laravel-omnipay.php file from the config directory to config/laravel-omnipay.php, (*16)
And also add the following to bootstrap/app.php, (*17)
$app->configure('laravel-omnipay');
Configuration
Once you have published the configuration files, you can add your gateway options to the config file in config/laravel-omnipay.php., (*18)
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., (*19)
However, you can also specify a gateway to use., (*20)
Omnipay::setGateway('eway');
$response = Omnipay::purchase([
'amount' => '100.00',
'card' => $cardInput
])->send();
dd($response->getMessage());
In addition you can take an instance of the gateway., (*21)
$gateway = Omnipay::gateway('eway');