logo

定制

品牌

虽然 Spark 的计费门户旨在作为应用程序的独立部分,完全由 Spark 管理,但您可以对 Spark 使用的品牌标识和颜色进行一些小的定制。

要自定义 Spark 计费门户左上角使用的标识,您可以在应用程序的 config/spark.php 配置文件中为 brand.logo 配置项指定一个配置值。此配置值应包含您要使用的标识的 SVG 文件的绝对路径。

php
'brand' => [
    'logo' => realpath(__DIR__.'/../public/img/logo.svg'),
],

SVG 大小

您可能需要通过修改 SVG 文件本身的宽度来调整 SVG 标识的大小和宽度。

品牌颜色

要自定义 Spark 计费门户中按钮元素的背景颜色,您可以在应用程序的 config/spark.php 配置文件中为 brand.color 配置项指定一个值。此配置值应为有效的十六进制代码或对应于 Tailwind CSS 框架 提供的背景颜色。

php
'brand' => [
    'color' => 'bg-indigo-600',

    // Or...

    'color' => '#c5b358',
],

字体

要自定义 Spark 计费门户使用的字体,您应该使用 vendor:publish Artisan 命令导出 Spark 的视图。

bash
php artisan vendor:publish --tag=spark-views

接下来,在 resources/views/vendor/spark/app.blade.php 模板中,您可以在模板 head 部分的底部定义自己的 font-sans CSS 类。

html
<head>
    <!-- ...... -->

    <style>
        .font-sans {
            font-family: 'Your Custom Font';
        }
    </style>
</head>

本地化

您可以本地化/翻译 Spark 计费门户中的所有文本。要发布 Spark 本地化文件,您可以使用 vendor:publish Artisan 命令。

bash
php artisan vendor:publish --tag=spark-lang

此命令将发布一个包含英语语言的翻译键和值的 resources/lang/spark/en.json 文件。您可以复制此文件并将其翻译成您选择的语言。有关如何使用 Laravel 的翻译功能的更多信息,请参阅 Laravel 本地化文档

迁移

最常见的是,应用程序会向单个用户收取每月和每年的订阅计划费用。但是,您的应用程序可以选择对其他类型的模型进行计费,例如团队、组织、乐队等。

如果这描述了您的应用程序,您应该检查 Spark 发布的迁移并使用应用程序的可计费模型将使用的列更新 add_spark_columns_to_users_table 迁移。有关为团队计费自定义迁移的更多信息,请查看 我们的 Cookbook 文档

Webhook

Spark 和 Cashier 会自动处理因收费失败和其他常见的 Stripe Webhook 事件导致的订阅取消。但是,如果您想处理其他 Webhook 事件,可以通过监听 Cashier 派发的 `WebhookReceived` 事件来实现。

首先,您应该为该事件创建一个监听器。然后,在监听器的 `handle` 方法中,您将收到包含事件负载的 `WebhookReceived` 事件。您可以检查此事件的负载,以确定给定的监听器是否应该处理底层的 Stripe 事件。

php
<?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...
    }
}