ShipNow LogoShipNow

积分

了解如何在 ShipNow 应用程序中管理和使用积分

概述

ShipNow 提供了完善的积分系统,使您能够:

  • 💳 管理用户积分
  • 🎁 为新用户提供初始积分
  • 📅 处理月度、年度和一次性购买积分
  • 🔄 自动重置和积分过期管理

查看积分

用户可以在用户下拉菜单中查看他们的积分余额:

Credits

积分来源

  1. 初始积分:新用户获得的初始积分,自注册之日起一年内有效。
  2. 订阅积分:来自月度/年度订阅的积分,按月更新和过期。
  3. 一次性购买积分:来自一次性购买的积分,一个月后过期。
  4. 手动添加积分:你可以手动添加积分,并指定积分过期时间。

配置初始积分

.env.local 中设置初始积分数量,新用户注册时会自动添加积分。

.env.local
CREDIT_INITIAL_AMOUNT="10"

配置订阅/一次性购买积分

定义积分数量

在定价方案中配置 credits 来设置积分数量:

messages/en.json
{
  "pricing": {
    "plans": [
      {
        "id": "basic",
        "monthlyPricing": {
          "credits": 100
        },
        "yearlyPricing": {
          "credits": 100
        }
      },
      {
        "id": "one-time-purchase",
        "oneTimePricing": {
          "credits": 100
        }
      }
    ]
  }
}

订阅/一次性购买积分说明

  • 月度计划:积分在下一次扣费后更新
  • 年度计划:用户预付一年费用,但积分每月重置
  • 一次性购买:积分立即添加到用户账户中

🔥 年度订阅积分按月重置

ShipNow 为年度订阅提供了一套月度积分重置系统:

  1. 用户购买年度订阅计划
  2. 用户立即获得第一个月的积分
  3. 用户可以使用积分
  4. 未使用的积分在 1 个月后过期,同时添加新的积分
  5. 此过程每月重复,直到订阅结束

所有积分操作由系统自动管理,您无需处理繁琐的积分过期和重置逻辑。

积分接口

获取可用积分

import { getUserAvailableCredits } from "@/lib/credits";
 
const credits = await getUserAvailableCredits("user_id");

添加积分

import { addCredits } from "@/lib/credits";
import { addMonths } from "date-fns";
 
await addCredits({
  userId: "user_id",
  amount: 100,
  description: "Monthly subscription credits",
  expiresAt: addMonths(new Date(), 1)
});

扣除积分

import { deductCredits } from "@/lib/credits";
 
// 扣除积分前检查余额
const credits = await getUserAvailableCredits("user_id");
if (credits >= 10) {
  await deductCredits({ 
    userId: "user_id",
    amount: 10,
    description: "Generate image"
  });
}

需要帮助?

  • 加入我们的 Discord 社区
  • 在 GitHub 上提交问题

On this page

ShipNow Logo获取 ShipNow