如何判断Google Play Billing订阅购买是初始还是续订?
Android订阅初始购买与续订判断及服务器API配置指南
一、如何区分订阅的初始购买与续订
官方规则:所有初始订阅购买都需要确认,订阅续订无需确认。
客户端queryPurchasesAsync返回的Purchase对象确实没有直接标识是否为初始购买的字段,你需要自行在客户端或后端追踪这一状态:
- 客户端本地追踪方案:
- 当首次处理一笔新的订阅购买(调用
acknowledgePurchase之前),将该订阅的purchaseToken与用户ID关联,存储到本地(比如SharedPreferences、Room数据库)。 - 后续通过
queryPurchasesAsync获取订阅记录时,检查本地存储:若该purchaseToken已存在,则判定为续订;若不存在,则判定为初始购买,完成确认逻辑后再存入本地。
- 当首次处理一笔新的订阅购买(调用
- 注意点:如果用户取消订阅后再次订阅,这属于新的初始购买,此时
purchaseToken会更新,所以本地存储要以最新的purchaseToken为准。
若后续能启用服务器端API,还可通过purchases.subscriptions.get接口返回的SubscriptionPurchase对象判断:
- 初始购买的
orderId为独立格式,续订的orderId会在初始orderId后追加.X后缀(例如初始为GPA.1234-5678-9012-34567,续订为GPA.1234-5678-9012-34567.1)。
二、Google Play Developer API权限配置步骤
按以下步骤完成服务账号与权限配置:
- 进入Google Play控制台,打开你的应用详情页。
- 左侧菜单栏选择「API访问」。
- 点击「创建服务账号」,页面会跳转至Google Cloud控制台。
- 在Cloud控制台的服务账号页面,点击「创建服务账号」,填写名称、ID后完成创建。
- 回到Play控制台的「API访问」页面,找到刚创建的服务账号,点击「授予访问权限」。
- 在权限弹窗中,根据需求选择权限:仅查看订阅数据选「查看应用权限」,需管理订阅则选「管理应用权限」,确认后保存。
- 回到Cloud控制台的服务账号详情页,切换到「密钥」标签,点击「添加密钥」→「创建新密钥」,选择JSON格式下载并妥善保存密钥文件。
- 在Cloud控制台的API库中,搜索「Google Play Developer API」,点击「启用」。
- 后端代码中使用下载的JSON密钥文件完成身份认证,即可调用API接口。
内容的提问来源于stack exchange,提问作者JimEli
相关产品推荐
相关产品推荐

