lokielse/laravel-omnipay

此包的最新版本(v3.0.0)没有可用的许可证信息。

将 Omnipay 与 Laravel 集成,并提供简单的配置。

v3.0.0 2016-07-14 14:20 UTC

This package is auto-updated.

Last update: 2024-08-27 22:16:12 UTC


README

Total Downloads Latest Version Dependency Status

通过 ServiceProvider 将Omnipay PHP 库与 Laravel 5 集成,使得配置多个支付通道变得非常简单!

Laravel 4 支持

对于 Laravel 4,请查看1.x 版本

现在使用 Omnipay 2.3

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

Composer 配置

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

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

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

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

"omnipay/eway": "*"

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

"omnipay/omnipay": "*"

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

安装

运行 composer install 下载依赖项。

Laravel 5

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

'providers' => [

	'Ignited\LaravelOmnipay\LaravelOmnipayServiceProvider',

]

Omnipay 门面添加到您的 facades 数组

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