barryvdh/laravel-omnipay

Laravel 的 Omnipay 服务提供商

v0.2.4 2022-02-04 18:54 UTC

This package is auto-updated.

Last update: 2024-09-09 20:21:04 UTC


README

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

安装

使用 composer 安装此包。

$ composer require barryvdh/laravel-omnipay

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

'Barryvdh\Omnipay\ServiceProvider',

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

$ php artisan vendor:publish --provider=Barryvdh\Omnipay\ServiceProvider

要使用 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 = [
    'firstName' => 'Bobby',
    'lastName' => 'Tables',
    'number' => '4111111111111111',
];

$card = Omnipay::CreditCard($formInputData);