pythagus/laravel-lydia

用于在 Laravel 中使用 Lydia 支付方式的包

安装: 83

依赖: 0

建议: 0

安全: 0

星星: 0

关注者: 1

分支: 0

开放问题: 0

类型:

v2.0.5 2022-05-11 15:29 UTC

This package is auto-updated.

Last update: 2024-09-11 20:57:26 UTC


README

Lydia 是一种在线支付解决方案。本包以面向对象的方式实现了此工具。本包是 Laravel 的扩展。有关 Lydia 内部规范的详细信息,请参阅 Lydia 包文档

版本

本包适用于 Laravel 7.x。请参考下表以确认您的 PHP 版本与本包兼容。

安装

您可以使用以下命令通过 composer 安装包:

composer require pythagus/laravel-lydia

使用方法

本包包含以下功能

配置

您可以使用以下命令生成 config/lydia.php 配置文件:

php artisan vendor:publish --tag=lydia-config

生成的配置文件将在 .env 文件中搜索以下参数

LYDIA_DEBUG=false
LYDIA_DEBUG_VENDOR_TOKEN="Your-Token"
LYDIA_DEBUG_PRIVATE_TOKEN="Your-Token"
LYDIA_PRODUCTION_VENDOR_TOKEN="Your-Token"
LYDIA_PRODUCTION_PRIVATE_TOKEN="Your-Token"

Lydia 门面

Pythagus/Lydia/Lydia 文件覆盖了基本的 Lydia 门面,使其更符合 Laravel 的风格。如果您想修改此文件中的某些内容,只需扩展此文件并在您的 AppServiceProvider.register() 方法中添加

use Pythagus\LaravelLydia\Lydia as OldLydia;

OldLydia::setInstance(new YourLydia()) ;

此门面使用了一个 $savePaymentCallback 属性,如果您希望您的应用程序完全正常运行,则需要设置此属性。此可调用参数接收一个数组作为参数,该数组应该保存到您的数据库中。本包提供了默认的模型

PaymentLydia 模型

Pythagus/LaravelLydia/Models/PaymentLydia 模型是 Lydia 数据的可能表示。您可以扩展此类来自定义它,也可以完全不使用它。

CreatePaymentLydiaTable 迁移

本包还提供默认迁移,实现 Lydia 的主要数据。请查看提供的迁移文件

错误处理

本包提供了一个自定义的日志记录器,允许您查看处理过的 Lydia 异常列表。当抛出异常时,它将被添加到 storage/logs/lydia/log-file.log 中的日志文件中。

在 Laravel 8.x 之前

在您的 App/Exceptions/Handler.php 中添加以下行:

use Pythagus\LaravelLydia\Log\LydiaLog;
use Pythagus\Lydia\Contracts\LydiaException;

public function render($request, Throwable $throwable) {
     if($throwable instanceof LydiaException) {
          LydiaLog::report($throwable) ;

          return redirect()->back()->withInput()->withErrors($throwable->getMessage()) ;
     }
}

注意:这只是一个示例,展示了当抛出 LydiaException 时您可以做什么。您可以根据应用程序的预期行为进行任何操作。

自 Laravel 8.x 以来

在您的 App/Exceptions/Handler.php 中添加以下行:

use Pythagus\LaravelLydia\Log\LydiaLog;

public function register() {
     $this->reportable(LydiaLog::reportableClosure()) ;
}

您可以使用 $this->renderable() 图形化地管理 LydiaException。请参阅 Laravel 错误处理

贡献

欢迎提交拉取请求。对于重大更改,请先打开一个 issue 进行讨论您希望更改的内容。

许可协议

MIT