ignited/laravel-omnipay

Integerates Omnipay with Laravel and provides an easy configuration.

Installs: 11 682

Dependents: 0

Stars: 84

Watchers: 7

Forks: 10

Open Issues: 4

Language: PHP

2.0.0 2015-03-18 20:52 UTC

README

Total Downloads Latest Version Dependency Status

Integrates the Omnipay PHP library with Laravel 5 via a ServiceProvider to make Configuring multiple payment tunnels a breeze!

Laravel 4 Support

For Laravel 4 see the version 1.x tree

Now using Omnipay 2.3

Version 2.0 and onwards has been updated to use Omnipay 2.3.

Composer Configuration

Include the laravel-omnipay package as a dependency in your composer.json:

"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.

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:

"omnipay/eway": "*"

Alternatively you can include every gateway by requring:

"omnipay/omnipay": "*"

Note: this requires a large amount of composer work as it needs to fetch each seperate repository. This is not recommended.

Installation

Run composer install to download the dependencies.

Add a ServiceProvider to your providers array in config/app.php:

'providers' => [

    'Ignited\LaravelOmnipay\LaravelOmnipayServiceProvider',

]

Add the Omnipay facade to your facades array:

    'Omnipay' => 'Ignited\LaravelOmnipay\Facades\OmnipayFacade',

Finally, publish the configuration files via php artisan vendor:publish.

Configuration

Once you have published the configuration files, you can add your gateway options to the config file in config/laravel-omnipay.php.

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('eway');

$response = Omnipay::purchase([
    'amount' => '100.00',
    'card'   => $cardInput
])->send();

dd($response->getMessage());

In addition you can take an instance of the gateway.

$gateway = Omnipay::gateway('eway');