集成指南

接入 SubHub 时需要了解的四个核心概念,以及 SDK 与 REST API 各自负责什么。

四个核心概念

SubHub 围绕一次购买组织数据:用户在 App 内付款 → 平台验证凭证 → 发放权益 → 你的 App 或服务器读取结果。

集成时主要接触 Member(谁买了)、Product(买了哪个 SKU)、Purchase(购买记录)和 Entitlement(能不能用)。

购买链路

  • SDK configure 后创建 Member,并分配 anonymousId
  • 用户 purchase(productId) — productId 是 App Store / Google Play 的商店 SKU
  • SDK 自动验证凭证,写入 Purchase 并发放 Entitlement
  • 客户端用 hasEntitlement() 鉴权;服务端可查询 REST API 或接收 Webhook

Member — 购买者

每位 App 用户对应一个 Member。SDK 首次初始化时自动创建。

可选调用 identify() 关联你系统中的用户 ID(UUID、Firebase UID 等任意字符串,平台不做解析)。

Product — 商店商品

Product 对应各平台的内购 SKU(如 com.app.pro_monthly)。在 SubHub 中为每个应用创建商品目录,并映射到 Entitlement。详见商品与权益文档。

purchase() 传入商店 Product ID,不是 SubHub 内部 ID。

Purchase — 购买记录

每次成功验证的内购生成一条 Purchase,记录购买者、商品、来源商店与状态(如 completed、refunded)。

通常由 SDK 在 purchase() 后自动创建;服务端也可直接调用验证 API。

Entitlement — 访问权限

Entitlement 是鉴权的唯一单元(如 premium、remove_ads)。月付与年付可映射同一 Entitlement。

客户端用 hasEntitlement("premium");服务端查询权益 API 或通过 Webhook 同步。不要基于 Product 做访问控制。

SDK 还是 REST API?

  • 客户端购买与权益查询 → SDK(Publishable Key)
  • 服务端批量查询、对账、发货 → REST API(Secret Key)
  • 购买、退款、权益变更等实时通知 → Webhook