eadortsu / laravel-omnipay
将 Omnipay 与 Laravel 集成并提供易于配置的方案。
Requires
- php: >=5.4.0
- illuminate/support: ~5
- omnipay/common: 2.5.*
README
通过 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');