buckaroo/laravel

Buckaroo支付网关的Laravel包装包

2.0.0 2024-09-24 07:25 UTC

README

Laravel Logo

Laravel Buckaroo支付集成

目录

简介

欢迎使用 Laravel Buckaroo支付集成 包!此包将Buckaroo支付服务无缝集成到您的Laravel应用程序中,使您能够轻松处理支付、退款、捕获和授权取消。

此包设计为高度可定制,允许开发者根据其需求覆盖和扩展功能,使其灵活适应各种用例。

先决条件

在继续之前,请确保您具备以下要求

  • PHP:版本8.0或更高
  • Laravel框架:与您的Laravel版本兼容
  • Buckaroo账户:
  • SSL/TLS工具包:更新的OpenSSL或其他SSL/TLS工具包

安装

按照以下步骤安装和设置Laravel Buckaroo支付集成包。

步骤1:安装包

使用Composer安装包

composer require buckaroo/laravel

步骤2:发布配置和资产

使用Artisan发布包的配置和资产

php artisan vendor:publish --provider="Buckaroo\Laravel\BuckarooServiceProvider"

此命令将在您的Laravel项目中创建配置、迁移和路由文件。

步骤3:运行迁移

执行迁移以设置所需的数据库表

php artisan migrate

步骤4:获取您的网站密钥和密钥

要集成Buckaroo,您需要您的 网站密钥密钥。从您的Buckaroo账户获取这些信息

步骤5:配置环境变量

将以下环境变量添加到您的 .env 文件中

BPE_WEBSITE_KEY=your_website_key
BPE_SECRET_KEY=your_secret_key
BPE_MODE=test or live
  • BPE_WEBSITE_KEY:将 your_website_key 替换为您的网站密钥。
  • BPE_SECRET_KEY:将 your_secret_key 替换为您的密钥。
  • BPE_MODE:设置为 test 用于测试或 live 用于生产。

这些设置允许Buckaroo客户端在您的应用程序启动过程中自动初始化。

配置

此包提供各种配置选项,以适应不同的用例。

事务模型覆盖

默认情况下,此包使用 BuckarooTransaction 模型来处理事务。但是,如果您想使用自定义模型覆盖此模型,您可以在 config/buckaroo.php 中进行配置

'transaction_model' => YourCustomTransactionModel::class,

默认值是

'transaction_model' => Buckaroo\Laravel\Models\BuckarooTransaction::class,

这允许您保持对事务处理的控制,并根据需要扩展功能。

自定义路由

此包提供用于处理支付操作的预定义路由。如果您希望自定义这些路由,您可以在 config/buckaroo.php 中配置以下选项

'routes' => [
    'load' => env('BPE_LOAD_ROUTES', true),
    'prefix' => env('BPE_ROUTE_PATH', 'buckaroo'),
],
  • load:将其设置为false以防止自动加载路由,如果您打算自行定义它们。
  • prefix:更改前缀以自定义路由路径(默认为buckaroo)。

通过调整这些设置,您可以完全控制应用程序中的路由结构。

使用方法

初始化Buckaroo客户端

Buckaroo客户端可以使用.env变量自动初始化,或在需要时手动初始化。

use Buckaroo\Laravel\Facades\Buckaroo;
use Buckaroo\Transaction\Config\DefaultConfig;

Buckaroo::api()->setBuckarooClient(
    new DefaultConfig(
        websiteKey: config('buckaroo.website_key'),
        secretKey: config('buckaroo.secret_key'),
        mode: config('buckaroo.mode'),
        returnURL: route('buckaroo.return'),
        pushURL: route('buckaroo.push'),
    )
);

开始支付事务

您可以使用PayServicePaymentMethodFactory来启动支付交易。

使用有效载荷数组

use Buckaroo\Laravel\Api\PayService;
use Buckaroo\Laravel\Handlers\PaymentMethodFactory;

$paymentSessionService = PayService::make(
    PaymentMethodFactory::make('noservice')->setPayload([
        'currency' => 'EUR',
        'amountDebit' => 100,
        'order' => '000-ORD',
        'invoice' => '000-INV',
        'description' => 'This is a description',
        'continueOnIncomplete' => '1',
        'servicesSelectableByClient' => 'ideal,bancontactmrcash',
    ])
);

使用设置方法

$paymentSessionService = PayService::make(
    PaymentMethodFactory::make('noservice')
        ->setCurrency('EUR')
        ->setAmountDebit(100)
        ->setOrder('000-ORD')
        ->setInvoice('000-INV')
        ->setDescription('This is a description')
        ->setContinueOnIncomplete('1')
        ->setServicesSelectableByClient('ideal,bancontactmrcash')
);

直接使用Buckaroo包装器

您可以使用内置的包装器直接与Buckaroo API交互,以获得更大的控制力和灵活性。

use Buckaroo\Laravel\Facades\Buckaroo;

$response = Buckaroo::api()->method('{SERVICE_CODE}')->{ACTION}([
    'currency' => 'EUR',
    'amountDebit' => 100,
    'order' => '000-ORD',
    'invoice' => '000-INV',
    'description' => 'This is a description',
]);
  • {SERVICE_CODE}替换为支付方式/服务代码(例如,'ideal')。
  • {ACTION}替换为所需的操作(例如,payrefund等)。

理想支付示例

$response = Buckaroo::api()->method('ideal')->pay([
    'currency' => 'EUR',
    'amountDebit' => 100,
    'order' => '000-ORD',
    'invoice' => '000-INV',
    'description' => 'Payment for Order 000-ORD',
]);

其他服务

该软件包提供了具有类似逻辑的附加服务

  • 退款服务
  • 扣款服务
  • 取消授权服务

这些服务遵循与PayService相同的结构,并且可以类似地用于管理各种支付操作。

更多信息

贡献

我们欢迎贡献!请在向项目贡献时遵循我们的贡献指南

版本控制

Versioning

我们使用语义版本

  • 主要:需要谨慎处理的破坏性更改
  • 次要:不影响向后兼容性的新功能
  • 补丁:错误修复和较小改进

支持

有关支持,请通过以下方式联系

许可证

Laravel Buckaroo Wrapper是开源软件,采用MIT许可