Google Play

配置 Google Play Provider Adapter,连接 Play Developer API 与 Play Billing Library。

概述

SubHub Phase 2 支持 Google Play。Provider Adapter 验证 Play Billing purchase token 并归一化为通用 Purchase + Entitlement。

Google 特定字段(如 orderId、purchaseToken)由 Adapter 处理,核心 API 使用 provider_transaction_id 等通用字段。

前置条件

  • Google Play Console 账号
  • Google Cloud 项目与 Play Developer API 启用
  • Service Account JSON 密钥
  • Play Billing Library 6.0+

控制台配置

在应用详情 → Google 配置中填写:

字段说明
Service Account EmailGCP Service Account 邮箱
Package NameAndroid 应用包名,如 com.neo.focustimer
Service Account JSON上传 GCP 密钥文件(控制台安全存储)

Play Billing 集成

SubHub Android SDK
// SDK 内部流程:
// 1. queryProductDetails() 获取商品
// 2. launchBillingFlow() 发起购买
// 3. 提取 purchaseToken
// 4. POST /v1/purchases/verify 提交至 SubHub

// 开发者只需调用:
val result = SubHub.purchase("com.neo.focustimer.promo")
val isPremium = SubHub.hasEntitlement("premium")

Real-time Developer Notifications

SubHub 通过 Google Cloud Pub/Sub 接收 RTDN,处理续订、取消与退款。

每个 Android 应用有独立的 Pub/Sub 推送地址:`https://hooks.subhub.dev/v1/providers/google/apps/{app_id}`。在 Play Console → monetization setup → Real-time developer notifications 中配置。

同一工作区多个 Android 应用需分别配置 — 平台通过 app_id 区分,不会串应用。

Adapter 自动处理通知并更新 Purchase / Entitlement 状态。

测试

  • 使用 License Testing 账号进行 Sandbox 购买
  • Test 环境密钥与 Live 环境隔离
  • 通过 Play Console → 内部测试轨道分发