积分消耗系统

HappyShip 内置智能积分消耗系统,采用预扣费模式合理控制 AI 生成成本,支持灵活自定义积分数量和套餐配置。

💰
积分系统概述

HappyShip 模板的积分系统特点:

  • 预扣费模式 - 生成开始前立即扣除积分
  • 灵活计费 - 不同功能可设置不同积分消耗
  • 实时检查 - 生成前验证积分是否充足
  • 用户友好 - 积分不足时引导用户升级
  • 自动分配 - 购买套餐后自动充值积分

🎯 默认积分配置

AI 视频生成
10 积分/次
AI 图片生成
1 积分/次
新用户奖励
3 免费积分

🔄
积分消耗流程

1

用户发起生成请求

用户输入提示词,点击生成按钮

2

服务端验证积分

检查用户当前积分是否满足生成需求

const requiredCredits = 10; // 视频生成
if (currentCredits < requiredCredits) {
return 'INSUFFICIENT_CREDITS';
}
3

立即扣除积分

采用预扣费模式,避免重复请求和资源浪费

await supabaseAdmin.update({
credits: currentCredits - requiredCredits
})
4

调用 AI 服务

启动生成任务,返回预测ID供前端轮询结果

5

返回结果

生成完成后向用户展示结果,无论成功失败积分已扣除

⚠️ 预扣费模式说明

为防止恶意请求和资源滥用,系统采用预扣费模式。即使 AI 生成失败,积分也不会退还。 这确保了服务的稳定性和公平性,建议合理设置积分消耗数量。

⚙️
自定义积分数量

HappyShip 支持灵活自定义积分消耗数量,让你根据业务需求调整计费策略。

📝 修改 API 中的积分消耗

在生成 API 路由中修改 requiredCredits 变量:

// src/app/api/generate-image/route.ts
export async function POST(request: NextRequest) {
// 获取用户积分...
const currentCredits = userData?.credits || 0;
// 🎯 修改这里的积分消耗数量
const requiredCredits = 15; // 原来是10,现在改为15
// 检查积分是否足够...
}

🎨 更新前端显示信息

同时更新前端组件中的积分提示信息:

// src/components/ui/VideoGenerationTool.tsx
<div className="text-center p-3 bg-primary/5">
<p className="text-xs lg:text-sm text-muted-foreground">
{t('costInfo', { cost: 15 })}
</p>
</div>

🔄 不同功能设置不同积分

可以根据生成参数动态调整积分消耗:

// 根据视频时长调整积分消耗
let requiredCredits = 10; // 基础积分
if (duration === '10s') {
requiredCredits = 15; // 长视频消耗更多
}
if (resolution === '720p') {
requiredCredits += 5; // 高分辨率额外消耗
}

📋
配置说明

💎 套餐积分配置

在 HappyShip 配置流程中可以自定义套餐积分数量:

Pro 套餐
• 默认:200 积分/月
• 可自定义为任意数量
• 建议:100-500 积分
Premium 套餐
• 默认:500 积分/月
• 可自定义为任意数量
• 建议:300-1000 积分

🎁 新用户初始积分

在认证配置中修改新用户的初始积分:

// src/lib/auth.ts - signIn callback
const { error: insertError } = await supabaseAdmin
.from('users_profile')
.insert({
email: extendedUser.email!,
name: extendedUser.name,
avatar: extendedUser.image,
credits: 5, // 🎯 修改新用户初始积分(原来是3)
});

⚠️ 积分不足处理策略

友好提示:显示当前积分和所需积分的差额
引导升级:提供"获取更多积分"按钮跳转到定价页面
视觉强调:使用特殊样式高亮积分不足错误

💡
实际应用案例

📊 案例1:分层定价策略

图片生成
1 积分/次
快速、成本低
短视频生成
10 积分/次
5秒视频
长视频生成
20 积分/次
10秒高清视频

🎯 案例2:按质量定价

// 根据分辨率动态计费
let baseCredits = 8;
switch (resolution) {
case '480p':
requiredCredits = baseCredits; // 标准质量
break;
case '720p':
requiredCredits = baseCredits * 1.5; // 高清质量
break;
case '1080p':
requiredCredits = baseCredits * 2; // 超高清质量
break;
}

💼 案例3:合理套餐设计

免费用户
3 积分 = 3张图片
体验产品功能
Pro 用户
200 积分 = 20个视频
满足个人创作需求
Premium 用户
500 积分 = 50个视频
商业使用充足配额

💰 积分系统总结

HappyShip 的积分系统设计灵活且用户友好,通过预扣费模式确保服务稳定性,同时支持完全自定义的计费策略。 你可以根据业务需求灵活调整积分消耗,为用户提供公平合理的使用体验。

🎯 精准控制

灵活设置不同功能的积分消耗,实现精准成本控制

🛡️ 防止滥用

预扣费模式有效防止恶意请求和资源浪费

👥 用户友好

清晰的积分提示和友好的不足处理机制

💡 合理设置积分策略,平衡用户体验与运营成本!

目录

💡 需要帮助?

修改积分配置后记得重启开发服务器,确保更改生效。