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

Android In-App Billing v3订阅:无法获取到期日期等信息求助

解决Android In-App Billing v3无法获取订阅到期日期的问题

看起来你已经成功完成了订阅扣费,但卡在了获取到期日期这一步——这其实是Android In-App Billing v3的一个常见限制:客户端SDK本身不会返回订阅的到期时间、剩余时长这类详细信息,你拿到的Purchase对象只包含基础的购买状态数据(就是你贴出来的那些字段)。

下面给你两种可行的解决思路:

方法一:通过Google Play Developer API在后端查询

这是官方推荐的安全方案,因为敏感的订阅详情需要通过服务器端调用API获取,避免在客户端暴露密钥或被篡改:

  • 首先,在Google Play Console中创建一个服务账号,下载对应的JSON密钥文件,并启用「Google Play Developer API」。
  • 在你的后端服务中,调用purchases.subscriptions.get接口,传入以下参数:
    • packageName:你的应用包名(即返回结果里的packageName)
    • productId:订阅产品ID(即返回结果里的productId)
    • purchaseToken:购买令牌(即返回结果里的purchaseToken)
  • 这个接口的响应会包含expiryTimeMillis字段,就是订阅的到期时间戳,你可以把它转换为可读的日期格式返回给客户端。

方法二:升级到最新的Billing Library(推荐)

Android In-App Billing v3已经是比较老旧的版本了,Google现在推荐使用Billing Library 5及以上版本。新版本的Billing Library在客户端就能直接获取订阅的详细信息:

  • 当你完成订阅购买后,拿到的SubscriptionPurchase对象提供了getExpirationTime()方法,直接返回到期时间戳;还有getAutoRenewing()、getPrice()等实用方法,完全满足你对订阅信息的需求。
  • 升级不仅能解决这个问题,还能获得更好的兼容性、安全性和新功能支持。

最后提醒一下:不要尝试在客户端通过任何非官方手段获取订阅到期日期,这会带来安全风险,也不符合Google的政策规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:00:36