eadortsu/laravel-omnipay

此包的最新版本(2.3.0)没有提供许可证信息。

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

2.3.0 2017-02-08 19:23 UTC

This package is auto-updated.

Last update: 2024-09-14 00:32:35 UTC


README

Total Downloads Latest Version Dependency Status

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

Laravel 4 支持

对于 Laravel 4,请参阅 版本 1.x

现在使用 Omnipay 2.3/2.5

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

从版本 2.2 开始使用 Omnipay 2.5

从版本 2.3 开始支持 Laravel 5.4

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

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

'providers' => [

	'Ignited\LaravelOmnipay\LaravelOmnipayServiceProvider',

]

Omnipay facade 添加到您的 facades 数组

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

最后,发布配置文件

php artisan vendor:publish --provider="Ignited\LaravelOmnipay\LaravelOmnipayServiceProvider" --tag=config

Lumen

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

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

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

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

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

配置

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

PayPal Express 示例

以下是如何使用 PayPal Express 检查驱动程序配置密码、用户名和签名的示例

...
'gateways' => [
    'paypal' => [
        'driver'  => 'PayPal_Express',
        'options' => [
            'username'  => env( 'OMNIPAY_PAYPAL_EXPRESS_USERNAME', '' ),
            'password'  => env( 'OMNIPAY_PAYPAL_EXPRESS_PASSWORD', '' ),
            'signature' => env( 'OMNIPAY_PAYPAL_EXPRESS_SIGNATURE', '' ),
            'solutionType' => env( 'OMNIPAY_PAYPAL_EXPRESS_SOLUTION_TYPE', '' ),
            'landingPage'    => env( 'OMNIPAY_PAYPAL_EXPRESS_LANDING_PAGE', '' ),
            'headerImageUrl' => env( 'OMNIPAY_PAYPAL_EXPRESS_HEADER_IMAGE_URL', '' ),
            'brandName' =>  'Your app name',
            'testMode' => env( 'OMNIPAY_PAYPAL_TEST_MODE', 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());

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

然而,您也可以指定要使用的网关。

Omnipay::setGateway('eway');

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

dd($response->getMessage());

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

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