通知
学习如何在 MkSaaS 中设置和使用通知
MkSaaS 支持在用户成功完成支付时发送通知。这允许您的团队在工具中接收实时订单提醒。目前,我们支持 Discord 和飞书。未来将支持更多通知渠道(如 Telegram),模块化设计使得根据需要集成其他服务变得容易。
设置
要启用通知,您需要在 .env
文件中配置以下环境变量:
DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/..."
FEISHU_WEBHOOK_URL="https://open.feishu.cn/open-apis/bot/v2/hook/..."
如何获取 Webhook URL
Discord
- 进入到 Discord 服务器并打开想要接收通知的频道。
- 点击齿轮图标打开
Channel Settings
。 - 选择
Integrations
>Webhooks
>New Webhook
。 - 为 webhook 设置名称和头像(可选)。
- 复制
Webhook URL
并将其粘贴到.env
文件中作为DISCORD_WEBHOOK_URL
。
更多详情,请参阅 Discord Webhooks 文档。
飞书
- 进入到飞书群聊。
- 点击群名称 >
Group Settings
>Bot Management
。 - 添加新的
Custom Bot
并启用Webhooks
。 - 复制生成的
Webhook URL
并将其粘贴到.env
文件中作为FEISHU_WEBHOOK_URL
。
更多详情,请参阅飞书 Webhook 文档。
如果您正在设置环境,现在可以回到环境配置文档并继续。本文档的其余部分可以稍后阅读。
环境配置
设置环境变量
通知系统架构
MkSaaS 中的通知系统是模块化的,易于扩展:
discord.ts
feishu.ts
notification.ts
discord.ts
:使用配置的 webhook 向 Discord 发送购买通知。feishu.ts
:使用配置的 webhook 向飞书发送购买通知。notification.ts
:向所有启用的渠道发送通知的中央入口点。
核心功能
- 成功支付的实时通知
- 开箱即用,支持 Discord 和飞书
- 未来易于添加更多通知渠道
使用方法
要在成功支付后发送通知,请使用以下实用程序:
import { sendNotification } from '@/notification';
// 支付成功后的示例用法
await sendNotification(sessionId, customerId, userName, amount);
如果配置了相应的 webhook URL,这将自动向 Discord 和飞书发送消息。
消息格式
通知消息包含以下信息:
- 用户名:客户的用户名
- 金额:购买金额(美元)
- 客户 ID:Stripe 客户 ID 用于参考
- 会话 ID:Stripe 结账会话 ID 用于跟踪
- 时间戳:购买发生的时间
Discord 消息
Discord 通知作为带有绿色和结构化字段的丰富嵌入发送,便于阅读。
飞书消息
飞书通知作为纯文本消息发送,所有购买详情格式清晰。
自定义和扩展性
通知系统设计为可扩展的。要添加新的通知渠道:
- 在
src/notification
目录中创建新文件(例如slack.ts
)。 - 实现向新渠道发送消息的函数:
export async function sendMessageToSlack(
sessionId: string,
customerId: string,
userName: string,
amount: number
): Promise<void> {
try {
const webhookUrl = process.env.SLACK_WEBHOOK_URL;
if (!webhookUrl) {
console.warn('SLACK_WEBHOOK_URL 未设置,跳过 Slack 通知');
return;
}
// 您的 Slack 消息实现
// ...
} catch (error) {
console.error('<< 发送 Slack 通知失败:', error);
}
}
- 在
notification.ts
中导入并调用此函数:
import { sendMessageToSlack } from './slack';
export async function sendNotification(
sessionId: string,
customerId: string,
userName: string,
amount: number
): Promise<void> {
// 现有的 Discord 和飞书调用
await sendMessageToDiscord(sessionId, customerId, userName, amount);
await sendMessageToFeishu(sessionId, customerId, userName, amount);
// 添加新的 Slack 通知
await sendMessageToSlack(sessionId, customerId, userName, amount);
}
最佳实践
- 保持 Webhook URL 机密:永远不要公开暴露 Webhook URL 或将其提交到代码库。
- 监控执行:检查您的通知渠道以确保消息按预期执行。
- 错误处理:系统记录错误但不会在通知失败时中断支付流程。
- 速率限制:注意每个服务的 Webhook 速率限制,以避免被阻止。
- 测试通知:在部署到生产环境之前,在开发环境中测试您的 Webhook。
- 扩展性:添加新通知渠道时遵循现有模式。
视频教程
下一步
现在您了解了如何在 MkSaaS 中使用通知,您可能想要探索这些相关功能: