如何通过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
相关产品推荐
相关产品推荐

