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 本地化文档

Webhook

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

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

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