Android Billing 5.x:如何从Purchase对象获取订阅优惠ID?
如何从Billing Library 5.x的Purchase对象中获取订阅优惠ID?
通过Purchase的
getSubscriptionOfferDetails()方法提取
Billing Library 5.x里的Purchase对象自带getSubscriptionOfferDetails()方法,调用后会返回一个List<SubscriptionOfferDetails>集合,其中的元素对应用户实际购买的优惠选项。你可以从SubscriptionOfferDetails实例里通过getOfferId()拿到你定义的优惠ID(比如"sum.monthly"或"sub.yearly"),也可以用getOfferToken()获取优惠令牌,用于后续订阅管理操作。代码示例
// 假设已获取到目标Purchase对象purchase val offerDetails = purchase.subscriptionOfferDetails if (!offerDetails.isNullOrEmpty()) { val selectedOffer = offerDetails.first() val targetOfferId = selectedOffer.offerId // 这里得到用户购买的优惠ID val offerToken = selectedOffer.offerToken // 可选:获取优惠令牌 }注意点
- 如果用户购买的是无优惠的基础订阅,这个集合会是空的,处理时要做好判空避免异常。
- 确认你的Billing Library版本确实是5.x及以上,这个API是5.x版本新增的,低版本不支持。
内容的提问来源于stack exchange,提问作者Anonymous
相关产品推荐
相关产品推荐

