我对android计费库的新版本(5)感到困惑。我的应用程序中有几个订阅,每一个都有一个月周期和两个星期的免费试用。现在我想向用户展示我的订阅的定价细节。
当我得到每个订阅的产品细节时,总是一样的。我在subscriptionOfferDetails列表中获得两个项目,其中第一个项目有两个PricingPhase项目,一个具有0价格(免费试用),一个具有有效的订阅价格。然后,第二个SubscriptionOfferDetails项目--一个具有有效订阅价格的PricingPhase。
这是怎么回事?为什么Google要在这种奇怪的结构中返回我的订阅细节?为什么我要接收两个SubscriptionOfferDetails项目而不是一个?
我应该用哪一项来显示正确的订阅价格?另外,当用户想购买的时候,我应该使用哪一个来启动支付流程?报价券是不同的。
注:有些国家的价格不一样。这在这里起作用了吗?
只是为了澄清
奇怪的是,在两个不同的SubscriptionOfferDetails项目中,带有全价的选项会增加两次。图中的第三个突出显示的项是没有意义的,因为该选项已经存在于上一个SubscriptionOfferDetails项中,但具有不同的offerToken。

发布于 2022-06-22 22:33:08
当您尝试检索subscriptionOfferDetails时,它将根据资格标准返回用户有资格获得的所有优惠。
如果一个报价有两个pricingPhases项目,这意味着它有一个免费试用或开盘价格,然后是定期的基本计划定价后,免费试用或开盘期已经完成。
如果用户有资格获得多个报价,则可以使用计费库v5中的新v5功能检索用户可以购买的选定报价,并使用offerToken构建启动购买流程(https://developer.android.com/google/play/billing/migrate-gpblv5#launching-offer)所需的billingFlowParams。
发布于 2022-08-29 08:29:15
这种行为似乎是正确的。对于每次订阅,当用户有资格查看这两种优惠时,您将得到两种“优惠”。这两种报价都意味着定期订阅(基本计划)和免费试用(免费试用和比基本计划)。如果用户以前有这样的订阅,他将不会看到免费试用的报价。
发布于 2022-12-01 14:47:15
我也面临着这个问题。
现在可以使用subscriptionOfferDetails的第一个值。它有一个pricingPhases.pricingPhaseList列表,在这个列表中,的第一个值将是“自由周期”,而则是完整的成本。使用这个。
示例:
val offerPricesMonth = listSkuDetails[TARIFF_MONTH].subscriptionOfferDetails[0].pricingPhases.pricingPhaseList
// For get free trial
val formattedFreeTrialMonth = offerPricesMonth[0].formattedPrice
// For get cost tariff
val formattedPriceMonth = offerPricesMonth[offerPricesMonth.lastIndex].formattedPricehttps://stackoverflow.com/questions/72692269
复制相似问题