liyu/laravel-omnipay

此包已被弃用且不再维护。作者建议使用liyu/laravel-omnipay包。

将Omnipay集成到Laravel中,并提供易于配置的解决方案。

此包尚未发布任何版本,且信息较少。


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。

Omnipay 3 支持

从版本 3.0 开始支持Omnipay 3.0和Laravel 5.3、5.4、5.5、5.6、5.7。

Composer配置

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

composer require liyu/laravel-omnipay "3.*"

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

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

composer require omnipay/eway "3.*"

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

composer require omnipay/omnipay "3.*"

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

Laravel 5

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

'providers' => [

	Ignited\LaravelOmnipay\LaravelOmnipayServiceProvider::class

]

Omnipay外观添加到您的外观数组

	'Omnipay' => Ignited\LaravelOmnipay\Facades\OmnipayFacade::class

最后,发布配置文件

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

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中的配置文件中添加您的网关选项。

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