虽然 Spark 的计费门户旨在作为应用程序的独立部分,完全由 Spark 管理,但您可以对 Spark 使用的品牌标识和颜色进行一些小的自定义。
要自定义 Spark 计费门户左上角使用的标识,您可以在应用程序的 config/spark.php
配置文件中为 brand.logo
配置项指定一个配置值。此配置值应包含您要使用的标识的 SVG 文件的绝对路径。
'brand' => [
'logo' => realpath(__DIR__.'/../public/img/logo.svg'),
],
SVG 尺寸
您可能需要通过修改 SVG 文件本身的宽度来调整 SVG 标识的大小和宽度。
要自定义 Spark 计费门户中按钮元素的背景颜色,您可以在应用程序的 config/spark.php
配置文件中为 brand.color
配置项指定一个值。此配置值应为有效的十六进制代码或对应于 Tailwind CSS 框架 提供的背景颜色。
'brand' => [
'color' => 'bg-indigo-600',
// Or...
'color' => '#c5b358',
],
要自定义 Spark 计费门户使用的字体,您应该使用 vendor:publish
Artisan 命令导出 Spark 的视图。
php artisan vendor:publish --tag=spark-views
接下来,在 resources/views/vendor/spark/app.blade.php
模板中,您可以在模板 head
部分的底部定义自己的 font-sans
CSS 类。
<head>
<!-- ...... -->
<style>
.font-sans {
font-family: 'Your Custom Font';
}
</style>
</head>
您可以本地化/翻译 Spark 计费门户中的所有文本。要发布 Spark 本地化文件,您可以使用 vendor:publish
Artisan 命令。
php artisan vendor:publish --tag=spark-lang
此命令将发布一个 resources/lang/spark/en.json
文件,其中包含英语的翻译键和值。您可以复制此文件并将其翻译成您选择的语言。有关如何使用 Laravel 的翻译功能的更多信息,请参阅 Laravel 本地化文档。
Spark 和 Cashier 会自动处理因失败的收费和其他常见的 Paddle webhook 事件而导致的订阅取消。但是,如果您还有其他想要处理的 webhook 事件,您可以通过监听 Cashier 分派的 WebhookReceived
事件来实现。
首先,您应该为该事件创建一个监听器。然后,在监听器的 handle
方法中,您将收到包含事件负载的 WebhookReceived
事件。您可以检查此事件的负载以确定给定的监听器是否应该处理底层的 Paddle 事件。
<?php
namespace App\Listeners;
use Laravel\Paddle\Events\WebhookReceived;
class PaddleEventListener
{
/**
* Handle the event.
*/
public function handle(WebhookReceived $event): void
{
if ($event->payload['event_type'] === 'subscription.created') {
return;
}
// Handle the incoming event...
}
}