pythagus / laravel-lydia
用于在 Laravel 中使用 Lydia 支付方式的包
Requires
- php: ^7.3|^8.0
- laravel/framework: ^6.0 | ^7.0 | ^8.0 | ^9.0
- monolog/monolog: ^2.0
- pythagus/lydia: ^1.0
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 进行讨论您希望更改的内容。