虽然 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 发布的迁移并使用应用程序的可计费模型将使用的列更新 add_spark_columns_to_users_table
迁移。有关为团队计费自定义迁移的更多信息,请查看 我们的 Cookbook 文档。
Spark 和 Cashier 会自动处理因收费失败和其他常见的 Stripe Webhook 事件导致的订阅取消。但是,如果您想处理其他 Webhook 事件,可以通过监听 Cashier 派发的 `WebhookReceived` 事件来实现。
首先,您应该为该事件创建一个监听器。然后,在监听器的 `handle` 方法中,您将收到包含事件负载的 `WebhookReceived` 事件。您可以检查此事件的负载,以确定给定的监听器是否应该处理底层的 Stripe 事件。
<?php
namespace App\Listeners;
use Laravel\Cashier\Events\WebhookReceived;
class StripeEventListener
{
/**
* Handle the event.
*/
public function handle(WebhookReceived $event): void
{
if ($event->payload['type'] !== 'customer.subscription.updated') {
return;
}
// Handle the incoming event...
}
}