跳转到正文

创建 Android 自动续订订阅

GitHub

自动续订订阅可让用户持续访问应用内的内容、服务或高级功能。本指南将帮助您在 Google Play Console 中创建并配置订阅。

订阅会在每个计费周期结束时自动续订,直到用户取消为止。它们非常适用于:

  • 高级内容访问
  • 无广告体验
  • 云存储
  • 持续性服务
  1. 导航到“订阅”

    在 Google Play Console 中,选择您的应用并点击 盈利 > 订阅 左侧菜单中的

    点击 创建订阅 按钮开始操作。

    导航到订阅

  2. 填写基本信息

    提供订阅名称和产品 ID。产品 ID 用于应用内的配置,且之后无法更改。

    输入订阅详情

  3. 创建基础方案

    Google Play 要求每个订阅必须包含且仅包含一个基础方案。为了保持与 iOS 的兼容性,native-purchases 插件目前仅支持单个基础方案。

    点击 添加基础方案 以继续。

    创建基础方案

  4. 配置基础方案详情

    输入:

    • 基础方案 ID:该方案的唯一标识符
    • 计费周期: 用户扣费周期(每周、每月、每年等)
    • 宽限期: Google 在取消订阅前重试扣款期间,保持订阅有效的时间窗口

    配置基础方案

  5. 设置定价

    进入定价部分,选择所有您想提供该订阅的国家/地区。

    选择地区

  6. 配置价格

    以您的主货币设置基础价格。Google Play 会自动将其转换为当地货币。

    设置价格

  7. 检查区域定价

    检查每个国家/地区自动转换后的价格。如有需要,您可以单独调整价格。

    查看价格

  8. 保存配置

    保存您的价格配置。

    保存价格

  9. 激活订阅

    点击 激活 点击此按钮使您的订阅产品上线并可供购买。

    激活订阅

基础方案限制

基础方案限制

为了确保与 iOS 订阅处理逻辑保持一致,native-purchases 插件要求每个订阅必须且只能包含一个基础方案。目前不支持多个基础方案。

宽限期

宽限期

宽限期允许 Google Play 在尝试重新支付失败的同时,仍维持用户的订阅访问权限。常见的宽限期设置如下:

  • 按月订阅为 3 天
  • 长期订阅为 7 天

订阅状态

订阅状态

创建后,您的订阅将处于“Draft”状态,直到被激活。您可以在沙盒模式下测试草稿状态的订阅。

在 App 中使用

在应用中使用

创建完成后,请在应用中使用该产品 ID 来引用订阅:

import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Load subscription info
const { products } = await NativePurchases.getProducts({
productIdentifiers: ['com.example.premium.monthly'],
productType: PURCHASE_TYPE.SUBS,
});
const product = products[0];
console.log(`${product.title} — ${product.priceString}`);
// Purchase (planIdentifier = Base Plan ID from Google Play Console)
const transaction = await NativePurchases.purchaseProduct({
productIdentifier: 'com.example.premium.monthly',
planIdentifier: 'monthly-plan', // REQUIRED on Android, ignored on iOS
productType: PURCHASE_TYPE.SUBS,
});
console.log('Transaction ID', transaction.transactionId);
// Later, check purchase state
const { purchases } = await NativePurchases.getPurchases({
productType: PURCHASE_TYPE.SUBS,
});
const subscription = purchases.find(
(purchase) => purchase.productIdentifier === 'com.example.premium.monthly',
);
if (subscription && subscription.purchaseState === 'PURCHASED' && subscription.isAcknowledged) {
console.log('Subscription active locally');
// For expiration/cancellation, validate purchaseToken through your backend
}

应用中未显示订阅:

  • 验证产品 ID 是否完全匹配
  • 确保订阅已激活
  • 检查应用的包名是否正确
  • 激活后请等待 2-3 小时以使更改生效

基础方案 (Base plan) 错误:

  • 确保仅配置了一个基础方案
  • 验证所有必填字段均已填写
  • 检查计费周期是否有效

价格问题:

  • 确认已至少选择一个国家/地区
  • 验证基础价格是否高于允许的最小值
  • 检查货币汇率是否在合理范围内

如果你正在使用 创建 Android 自动续订订阅 要规划商店审核与分发,请将其与 使用 @capgo/native-purchases 关于“使用 @capgo/native-purchases”中的原生能力, @capgo/capacitor-in-app-review 有关 @capgo/capacitor-in-app-review 中的实现细节, 使用 @capgo/capacitor-in-app-review 有关《使用 @capgo/capacitor-in-app-review》中的原生能力, @capgo/capacitor-native-market 有关 @capgo/capacitor-native-market 的实现细节,以及 使用 @capgo/capacitor-native-market 有关使用 @capgo/capacitor-native-market. 时的原生能力