chistel/multi-payment

laravel 的多支付网关适配器

v0.0.3 2022-05-30 14:42 UTC

This package is auto-updated.

Last update: 2024-09-29 06:14:45 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

这是一个非常简单轻量级的包,允许您在不使用大量条件语句的情况下,在应用程序中添加多种支付方式,且不依赖任何库。

使用此包,您可以保持支付发起和验证的统一性。

安装

此包可以通过 Composer 安装。

composer require chistel/multi-payment

在 Laravel 5.5 及以上版本中,服务提供者将自动注册。在框架的旧版本中,只需将服务提供者添加到 config/app.php 文件中。

'providers'=> [
    ...
    Chistel\MultiPayment\MultiPaymentServiceProvider::class,
];

可选地,您可以使用以下命令发布配置文件:

php artisan vendor:publish --provider="Chistel\MultiPayment\MultiPaymentServiceProvider" --tag="config"

此文件将发布到 config/multi-payment.php

return [
  /*
   * An array of supported gateways
   */
  'gateways' => [
        'paystack' => [
            'name' => 'Paystack',
            'driver' => PaystackGateway::class
        ]
  ]
];

使用方法

首先创建一个扩展 Chistel\MultiPayment\AbstractGateway 的网关类,该类应实现购买和完成方法。同时,还提供了几个用于发起和完成支付的行动类。

基于行动类,还提供了可以在支付成功或失败后用于监听的事件。它们返回网关名称、付款人和网关响应。

以下示例展示了如何通过 EventProvider 使用事件

  PaymentWasSuccessful::class => [
            PaymentSuccessfulListener::class
        ],
        PaymentWasUnsuccessful::class => [
            PaymentUnsuccessfulListener::class
        ]
  ]

您的监听器应类似于以下示例

class PaymentSuccessfulListener
{
    public function handle(PaymentWasSuccessful $event)
    {
        $payer = $event->user;
        $response = $event->responses
        $provider = $event->gateway;
        
        // Other code you want to added
    }
}

查看完整的用法,请访问 综合演示仓库

测试

当前未进行测试

安全

如果您发现任何安全问题,请通过电子邮件 me@chistel.com 联系我,而不是使用问题跟踪器。

致谢