elbakly/laravel-omnipay

Laravel 的 Omnipay 服务提供商

v0.1.1 2015-06-07 19:53 UTC

This package is not auto-updated.

Last update: 2024-09-20 18:48:30 UTC


README

对于 Laravel 4,请使用 0.1 版本

这是一个将 Omnipay 集成到 Laravel 的包。您可以使用它轻松管理配置,并使用 Facade 提供对网关的快捷方式。

安装

在 composer.json 中要求此包,并运行 composer update(或直接运行 composer require barryvdh/laravel-omnipay:0.2.x

"barryvdh/laravel-omnipay": "0.2.*@dev"

更新 composer 后,将 ServiceProvider 添加到 config/app.php 中的 providers 数组

'Barryvdh\Omnipay\ServiceProvider',

您需要发布此包的配置。已提供示例配置。默认值将与网关特定配置合并。

$ php artisan vendor:publish

要使用 Facade(使用 Omnipay::purchase() 而不是 App::make('omnipay')->purchase()),请将其添加到 facades 数组。

 'Omnipay' => 'Barryvdh\Omnipay\Facade',

在调用 Omnipay Facade/实例时,它将根据配置创建默认网关。您可以通过调用 Omnipay::setDefaultGateway('My\Gateway') 来更改默认网关。您可以通过调用 Omnipay::gateway('My\Gateway') 来获取不同的网关

示例

$params = [
    'amount' => $order->amount,
    'issuer' => $issuerId,
    'description' => $order->description,
    'returnUrl' => URL::action('PurchaseController@return', [$order->id]),
];
$response = Omnipay::purchase($params)->send();

if ($response->isSuccessful()) {
    // payment was successful: update database
    print_r($response);
} elseif ($response->isRedirect()) {
    // redirect to offsite payment gateway
    return $response->getRedirectResponse();
} else {
    // payment failed: display message to customer
    echo $response->getMessage();
}

除了网关调用外,还有针对信用卡的快捷方式

$formInputData = array(
    'firstName' => 'Bobby',
    'lastName' => 'Tables',
    'number' => '4111111111111111',
);
$card = Omnipay::CreditCard($formInputData);