laravel-omnipay:集成Omnipay支付库,轻松配置多支付渠道

Omnipay for Laravel & Lumen

Branch4Tags19
This repository is empty

Laravel & Lumen 的 Omnipay 集成

总下载量 最新版本

Laravel 和 Lumen 集成了 Omnipay PHP 库,使得配置多个支付网关变得轻而易举!

安装

在你的项目 composer.json 中添加 laravel-omnipay 包作为依赖:

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

注意: 无需在你的 composer.json 文件中包含 omnipay/common,因为 laravel-omnipay 已经包含了它。

安装所需服务提供者

根据需要引入每个支付网关,例如要安装 PayPal:

composer require omnipay/paypal "3.*"

或者,如果你想一次性安装所有网关:

composer require omnipay/omnipay "3.*"

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

配置

可以使用 vendor:publish 命令发布配置文件:

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

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

PayPal 快捷支付示例

这是一个配置 PayPal 快捷支付驱动器(包括用户名、密码和签名)的例子:

...
'gateways' => [
    'paypal' => [
        'driver'  => 'PayPal_Express',
        'options' => [
            'username'  => 'coolusername',
            'password'  => 'strongpassword',
            'signature' => '',
            'solutionType' => '',
            'landingPage'    => '',
            'headerImageUrl' => '',
            'brandName' =>  'Your app name',
            'testMode' => true
        ]
    ],
]
...

使用方法

$cardInput = [
	'number'      => '4444333322221111',
	'firstName'   => 'MR. WALTER WHITE',
	'expiryMonth' => '03',
	'expiryYear'  => '16',
	'cvv'         => '333',
];

$card = Omnipay::createCreditCard($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());

这将会使用配置文件中默认指定的网关。

然而,你也可以指定要使用的网关:

Omnipay::setGateway('paypal');

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

dd($response->getMessage());

另外,你可以创建一个网关实例:

$gateway = Omnipay::getGateway('paypal');

在其他框架中的安装

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

Guzzle

如果你使用的是 Guzzle 6,你需要添加以下包:

composer require php-http/guzzle6-adapter

对于 Guzzle 7,它现在实现了符合 PSR HTTP 客户端的适配器,因此不需要这个步骤。

许可证

此软件包是开源软件,遵循 MIT 许可证

Introduction

Omnipay for Laravel & Lumen

Customize your domain