You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Android Publisher API purchases.subscriptionsv2.get判断用户是否在试用周期

判断用户是否处于试用周期(新版Android Publisher API subscriptionsv2.get接口)

旧版purchases.subscriptions.get用paymentState=2标识免费试用,新版subscriptionsv2.get返回的SubscriptionPurchaseV2对象没有这个字段,你可以通过以下两个核心字段判断:

  • 检查promotionType字段
    如果订阅是通过免费试用激活的,promotionType会被设为FREE_TRIAL,直接匹配该值即可判断试用状态。

  • 检查当前订阅阶段的phaseType
    订阅的currentPhase字段包含当前所处阶段信息,试用阶段的phaseType为TRIAL。验证该字段是否等于TRIAL,即可确认用户当前是否处于试用周期。

Java代码示例(对应依赖版本:com.google.apis:google-api-services-androidpublisher:v3-rev20230313-2.0.0)

import com.google.api.services.androidpublisher.model.SubscriptionPurchaseV2;
import com.google.api.services.androidpublisher.model.SubscriptionPhase;

public boolean isInFreeTrial(SubscriptionPurchaseV2 subscriptionPurchase) {
    // 1. 验证促销类型是否为免费试用
    if ("FREE_TRIAL".equals(subscriptionPurchase.getPromotionType())) {
        return true;
    }
    
    // 2. 验证当前订阅阶段是否为试用阶段
    SubscriptionPhase currentPhase = subscriptionPurchase.getCurrentPhase();
    if (currentPhase != null && "TRIAL".equals(currentPhase.getPhaseType())) {
        return true;
    }
    
    return false;
}

说明:当试用周期结束后,currentPhase会切换至正常订阅阶段,promotionType也不再是FREE_TRIAL,因此这两个判断逻辑可以准确反映用户当前的试用状态。

内容的提问来源于stack exchange,提问作者Jamie Xu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 07:03:27