# @absolutejs/billing 中文文档

规范地址：https://npmcn.com/package/%40absolutejs/billing/

版本：0\.19\.0
npm 元数据更新时间：2026-11-05T08:34:11.376Z
中文译文更新时间：2026-11-06T15:30:55.556Z
软件包许可：BSL-1\.1

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40absolutejs/billing
原文对照：https://npmcn.com/package/%40absolutejs/billing/?lang=original
项目主页：https://github.com/absolutejs/billing
源码仓库：https://github.com/absolutejs/billing

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：952 kB，47 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：2 个
- peer 依赖：vue ^3\.5\.0
- 首次发布：2026-05-31T17:27:05.276Z
- 最新版本发布：2026-11-05T08:34:11.152Z
- 近 30 天下载量：2904（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：29（近 12 个月 29 个）

## 中文简介

由托管的绝对JS.ai平台使用的供应商中立定价和发票计算. 将计量吸入器的使用转换成精确的整数-微小细列项目,有等级和备抵.

## 安装

```sh
npm install @absolutejs/billing
```

也可以使用：`pnpm add @absolutejs/billing`、`yarn add @absolutejs/billing`、`bun add @absolutejs/billing`

## README

# `@absolutejs/billing`

> 由托管的绝对JS.ai平台使用的供应商中立定价和发票计算.

`@absolutejs/billing` 是介于 `@absolutejs/metering` (收集使用事件)和 开出后端(Stripe,QuickBooks,一个内部计费引擎).

它做两件事:

1.  **`createPlan(...)`** - 宣布定价产品:可选平面 基准费、每单元价格、可选毕业等级、, 免费补贴.
2.  **`computeInvoice({ plan, period, tenant, usage })`** - 纯度 函数转换为 `Usage` 切入到一个 `Invoice` 与 和总计.

所有的钱都用整数计算 **微数** (1个微观=1/1 000 000) - 同一面额 内部)。 漂浮在结构上是不可能的: 0.0002美元 每个要求价格为 `200` 并且四舍五入政策是明确的.

```ts
import { createPlan, computeInvoice, formatMicros } from "@absolutejs/billing";

const plan = createPlan({
  name: "pro",
  currency: "usd",
  basePriceMicros: 20_000_000, // $20/mo
  pricedDimensions: {
    requests: { perUnitMicros: 200, freeTier: 1_000_000 },
    cpuMs: { perUnitMicros: 50, unit: 1000, freeTier: 60_000 * 60 * 10 },
    bytesEgress: {
      perUnitMicros: 100,
      unit: 1024 * 1024,
      freeTier: 100 * 1024 * 1024,
    },
    hibernationGbSeconds: { perUnitMicros: 5 },
  },
});

const invoice = computeInvoice({
  plan,
  tenant: "acme",
  period: { start, end },
  usage, // a Usage from @absolutejs/metering
});

console.log(formatMicros(invoice.totalMicros, invoice.currency));
// "27.50 USD"
```

## 定价形状

A 类 `PricedDimension` 3个之一:

-   **每单位平地** —— 说 `{ perUnitMicros: 200, unit: 1 }`
-   **等级(毕业)** —— 说 `{ tiers: [{ upTo: 1_000_000, perUnitMicros: 200 }, { upTo: Infinity, perUnitMicros: 100 }] }`
-   **自定义** —— 说 `{ price: (chargedQuantity) => micros }` (逃出舱口用于激增/封顶/非模拟定价)

可选的把手 :

-   **`freeTier`** —在定价前减去的单位
-   **`unit`** ——分卫如此 `bytesEgress` 价格为 MB QQ `unit: 1024*1024`
-   **`label`** ——发票行项目显示名称

计划级节点 :

-   **`basePriceMicros`** ——每期统一收费
-   **`minimumChargeMicros`** — 下限; 调整行项目填充 任何间隙
-   **`rounding`** —— 说 `'truncate'` (违约;分计-美元)或 `'round-half-up'`
-   **`currency`** — 显示标签;未转换
-   **`metadata`** ——流入发票的任意密钥

## 为什么纯洁?

控制飞机需要:

-   **预览** 期末前即将开具的发票
-   **重新定价** 过去的一段时期,根据新的计划( " 这将是什么?" 客户已经按拟议的企业等级付款?")
-   **干线运行** 在发布前计划更改

一个纯粹的成本模型功能使得所有三个小——没有花纹SDK, 没有副作用,没有IO。 条纹推 (或快书导出,或 寄出- PDF 生成器) 生活在此套件外, in `@absolutejs/billing-adapters/*`。 。 。 .

## 许可证

BSL-1.1 与主机 SaaS 计费平台进行命名例外 (Metronome, Orb, Lago,花纹比林,m3ter,Chargebee). 见 `LICENSE`。更改日期 : **2030-05-31 (英语)** • Apache 2.0.

## 预付服务费

[持久平衡、保留、工作上限和移徙规则](https://npmcn.com/package/%40absolutejs/billing/docs/prepaid-credits.md) 可通过 `prepaid`, (中文(简体) ), `prepaid-postgres`,以及 `credit-work` 潜行道.

## 安全信用检查

[仅限采购的交割](https://npmcn.com/package/%40absolutejs/billing/docs/checkout-handoffs.md) 提供过期的、单用浏览器能力,而无需完整的登录会话.

`@absolutejs/billing/reports` 提供客户身份、收据标记和使用合同. `parseUsageRange` 使用最多90天的半开放世界协调世界时的日期间隔(默认:包括今天在内的最近30天). 收到光标是位置,从不授权:将每个查询,倒转连接,光标绑入呼叫者的账户. 读者必须通过公共帮助者投影,后者省去提供者费用,支付代币和金库参考. 使用日及特征总额必须准确调节;购买的美元和消费的服务信贷是不同的衡量标准。 自动再填充目前不支持 .

## 递延进度

`checkpointDeferred(accountId, workId, binding, expectedRevision, value)` 保存 在不解决或保留更多信贷的情况下取得进展。 初步修订为:0; 成功返回递增的修订版并保存字符串 。 它能验证束缚 效果和授权、拒绝过时的修订和终端工作以及限制 值为一百万个字符。 现有工作使用相同的JSON状态 列; 不需要图示迁移.

检查站不是执行租约。 单项索赔执行 任何供应商呼叫前,在飞行中标记, 排出计量之前,保存其 如果结果不确定,保留保留.

### 未封装嵌入式计划和应用预算

过 `monthlyTokenLimit: null` 内 `EmbeddingUsageSnapshot` 当配置时 供应商计划没有每月嵌入式顶盖. `monthlyBudgetTokens` 能够 单独描述一个东道主拥有的支出保管人;从未报告为 供应商配额。 这两个值都是主机配置,而不是活的提供者平衡. `exhausted: true` 目前拒绝嵌入的报告而不假定每月 上限导致拒绝。 会员津贴仍然是东道方申请的政策.

## 供应商的录取

`@absolutejs/billing/provider-budget` 出口 `createProviderBudget(client, table?)` 使用现有的 `CreditSqlClient` 交易接口。 主机拥有一个日记 PostgreSQL 表格 `id text primary key`, (中文(简体) ), `scope text`, (中文(简体) ), `period text`, (中文(简体) ), `reserved_micros bigint`, (中文(简体) ), `actual_micros bigint nullable`,以及 `status text` (加上范围/期间指数)。 预留可防御最大值 **在此之前** 外部请求; 不将估计数视为硬度最大。 重复保留ID 永远不会授权另一个请求。 每月申请和每日费用范围可以独立保留;如果以后招生失败,则解除任何较早的范围.

解决已知的 满足或拒绝 电话准确一次。 中断/未知的提供者结果保留其全部保留,直到明确和解为止。 这个分类账范围承认了研究业务,独立于成员信用定价;它没有发现或记录外部的供应商呼叫。 主机必须说明保留地中的所有复写/修复,否则将无法使用.

### 用法归属

`LedgerEntry.attribution` 接受便携式 `UsageAttribution` 记录(呼叫追踪、运行、主题、会话、资助的工作、发布、服务器和工具)。 它不改变承诺和摊位,不影响定价。 主办方必须保留它与事件,并在授权后约束主体. 观察性身份不得改变提供者事件的充电/能力身份。 未知的外部主机开支不是零 .

## 支付执行政策

`@absolutejs/billing/paid-work-policy` 出口 `createPaidWorkPolicy`, (中文(简体) ), `PaidAuthorization`,以及 `PaidWorkApprovalError` 用于节点/Bun服务器。 创建一个 每个应用 `currentWork` 财务报告和审定财务报表 `withWork` 适应其供资 执行上下文。 内容包含 `userSub`选项 `actorId` 财务报告和审定财务报表 `approvalId`变异 `closed` 旗帜。 只有信任的录入代码可以创建 或附加此上下文.

将认证的处理器包入 `withPaidRequester(userSub, request.method, handler, impersonatorId?)`阅读(包括总部和备选方案)不能授权 花费,甚至通过嵌入式写框。 与 POST 开始有偿工作 反应可能流出。 GET 端点只应读取先前生成的数据 . 运输合同和支出合同必须商定:伊甸园的路线类型 单独无法验证处理器的副作用 .

要求a `PaidAuthorization` 每个付费运输边界的参数。 获取 它使用 `authorizePaidWork()` 在认可的执行范围中,和呼叫 `requirePaidAuthorization(authorization)` 在启动提供者之前 尝试。 托肯不透明,在运行时检查,具体针对政策实例 以及执行范围,并在供资/延期范围结束后被拒绝. `bindPaidExecution` 保留了反应延展者生存时间超过 处理者。 不要串行令牌, 接受客户端的令牌, 或把它们缓存到另一端 请求。 仅凭付款人身份证明无法伪造能力: `authorizePaidWork` 需要一个 核证或供资范围。 下级 `requirePaidWorkOwner` 保留a 信任的服务器支付器因归属而倒置; 该倒置不授权 a 供应商能力.

冒名顶替的要求需要资金支持的工作环境,其行为者与 冒名顶替,并持有批准证. `withoutAutomaticSpend` 块 未经批准的背景电话. `withDeferredPaidRequester` 专用于 在解剖学上已经提出持久批准要求的工人 允许在召回完成时使用.

这项政策检查执行身份和意图。 主机仍然认证 课程、验证批准所有权/终止、储备和界限提供者 在调用之前的费用、仪表实际使用量、结算或保留不确定 保留。 授权令牌不是信用余额或耐用 执行租赁。 TypeScript 防止意外丢失能力; 运行时间 检查对于不可信的输入和变化状态仍然是必要的.

## 常见问题

### @absolutejs/billing 是什么？

由托管的绝对JS\.ai平台使用的供应商中立定价和发票计算\. 将计量吸入器的使用转换成精确的整数-微小细列项目,有等级和备抵\.

### 如何安装 @absolutejs/billing？

在项目目录运行 npm install @absolutejs/billing，或使用 pnpm add / yarn add / bun add。

### @absolutejs/billing 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @absolutejs/billing 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @absolutejs/billing 可以商用吗？

@absolutejs/billing 使用 BSL-1\.1 许可。声明的许可为 BSL-1\.1，请阅读许可原文确认使用条件。以上为概括，不构成法律意见，请以许可原文为准。

### @absolutejs/billing 的下载量有多少？

根据 npm 官方下载统计，@absolutejs/billing 在 2026/10/05 – 2026/11/03 这 30 天内被下载 2,904 次，日均约 97 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @absolutejs/billing 还在维护吗？

最新版本 0\.19\.0 发布于 2026/11/05（2 天前）；至今共发布 29 个版本，其中过去 12 个月发布了 29 个；首次发布于 2026/06/01。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

