darthsoup/laravel-omnipay

此包已被废弃且不再维护。未建议替代包。

将 Omnipay 与 Laravel 集成并提供易于配置。

2.4.0 2017-10-16 16:11 UTC

This package is auto-updated.

Last update: 2020-02-07 21:01:11 UTC


README

Total Downloads Latest Version Dependency Status

通过 ServiceProvider 将 Omnipay PHP 库与 Laravel 5 集成,使配置多个支付通道变得轻而易举!

现在使用 Omnipay 2.3/2.5

从版本 2.0 开始已更新为使用 Omnipay 2.3。

从版本 2.2 开始使用 Omnipay 2.5

从版本 2.3 开始支持 Laravel 5.4

从版本 2.4 开始支持 Laravel 5.5

Composer 配置

将 laravel-omnipay 包作为依赖项包含在您的 composer.json

"ignited/laravel-omnipay": "2.*"

注意:您不需要在 composer.json 中包含 omnipay/common - 这是 laravel-omnipay 包的要求。

Omnipay 最近进行了重构,使得每个包现在都是一个独立的仓库。包 omnipay/common 包含核心框架。然后您需要根据需要包含每个网关。例如

"omnipay/eway": "*"

或者您可以通过要求包括每个网关

"omnipay/omnipay": "*"

注意:这需要大量的 composer 工作,因为它需要获取每个单独的仓库。不推荐这样做。

安装

运行 composer install 下载依赖项。

Laravel 5

将 ServiceProvider 添加到您的 config/app.php 中的 providers 数组中

'providers' => [

	'Ignited\LaravelOmnipay\LaravelOmnipayServiceProvider',

]

Omnipay 门面添加到您的门面数组中

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

最后,通过 php artisan vendor:publish 发布配置文件。

Lumen

对于 Lumen,在您的 bootstrap/app.php 中添加以下内容

$app->register(Ignited\LaravelOmnipay\LumenOmnipayServiceProvider::class);

将 config 目录中的 laravel-omnipay.php 文件复制到 config/laravel-omnipay.php

并在 bootstrap/app.php 中添加以下内容

$app->configure('laravel-omnipay');

配置

一旦发布配置文件,您可以将网关选项添加到 config/laravel-omnipay.php 中的配置文件中。

用法

$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());

这将使用配置中指定的网关作为 default

但是,您也可以指定要使用的网关。

Omnipay::setGateway('eway');

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

dd($response->getMessage());

此外,您还可以获取网关实例。

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