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

Google Play Billing测试订阅续期:回调方式与时间戳疑问

Google Play Billing 订阅续期测试经验分享

核心问题解答

a) 订阅续期信息需通过轮询获取,还是会通过监听器推送?

实测下来,运行中的BillingClient不会被Google主动调用触发监听器——哪怕是测试订阅(比如1周档5分钟续期的场景)。不管APP处于前台还是后台,续期事件都不会主动推送给客户端的PurchasesUpdatedListener。

你必须主动调用queryPurchasesAsync方法轮询获取最新订阅状态。建议的轮询时机包括:APP启动时、从后台切回前台时,或者每隔固定时长(比如1小时,避免过于频繁)主动查询一次。如果需要更实时的通知,也可以结合Google Play的实时开发者通知(服务器端)接收续期事件,但客户端侧仍需主动查询同步状态。

b) 订阅续期后,返回的时间戳是首次购买时间,还是新订阅周期的开始时间?

测试后确认两个关键时间戳的逻辑:

  • getPurchaseTime() 返回的始终是首次购买的时间,续期后不会更新;
  • getExpirationTime() 会更新为新订阅周期的结束时间,每次续期都会向后顺延一个订阅周期(比如测试周卡续期后,过期时间会比上次多5分钟)。

针对你的离线使用场景,应该以expirationTime作为判断订阅是否有效的核心依据,而不是purchaseTime。离线时可以通过本地存储的过期时间判断用户是否仍在订阅期内,续期后查询到新的过期时间再同步更新本地存储即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 03:48:16