@downcity/services

统一安装 Downcity 官方 accounts、balance、usage、Stripe 支付和 Creem 支付服务。

@downcity/services 把 Downcity 官方服务合并成一个包,但仍然保留清晰的能力边界。

你安装一个包,就能按需启用:

  • AccountsService:注册、登录、OAuth、会话和 user_token
  • BalanceService:全局余额、流水、充值单和 redeem code
  • PaymentService:统一暴露当前 City 开放的支付方式,配合 stripePaymentProvidercreemPaymentProvider 等 provider 使用
  • UsageService:记录真实用户侧 service 调用事实

安装

pnpm add @downcity/services

最小接入

import { Federation } from "@downcity/city";
import {
  AccountsService,
  BalanceService,
  creemPaymentProvider,
  PaymentService,
  stripePaymentProvider,
  UsageService,
} from "@downcity/services";

const base = new Federation({ db });
const balance = new BalanceService();

base.use(new AccountsService());
base.use(balance);
base.use(new PaymentService({
  readTopup: async (topup_id) => await balance.readTopup(topup_id),
  finishTopup: async (topup_id, extra) => await balance.finishTopup(topup_id, extra),
  providers: [
    stripePaymentProvider(),
    creemPaymentProvider(),
  ],
}));
base.use(new UsageService());

产品侧通常先调用:

const methods = await guest.service("payment").get("methods");

然后再根据返回的 methods.items 选择具体支付方式,比如 stripecreem

按能力阅读

  1. 账号能力读 Accounts 服务
  2. 余额能力读 Balance 服务
  3. 使用记录读 Usage 服务
  4. Stripe 充值读 Stripe Payment 服务
  5. Creem 充值读 Creem Payment 服务