Google Play技术咨询:如何验证应用本身的一次性购买(非内购/订阅)
验证Google Play一次性付费应用购买记录的方案
客户端获取购买令牌
- 使用Google Play Billing Library v5+版本,调用
queryPurchasesAsync方法,指定BillingClient.SkuType.INAPP——付费应用的购买属于一次性内购范畴,以此类型查询即可获取历史购买记录。 - 从返回的
Purchase对象中提取purchaseToken字段,将该令牌传递至后端服务器进行验证。
服务器端验证逻辑
使用你已了解的purchases.products.get接口,参数配置需注意:
packageName:填写你的应用包名productId:此处必须传入应用的包名——Google Play会将付费应用本身的购买记录映射为以包名为ID的内购产品token:客户端传来的purchaseToken
接口返回后,通过以下字段判断购买有效性:
purchaseState字段为PURCHASED,即可确认用户已买断该应用- 结合
purchaseTime字段可筛选出你需要的历史用户范围
额外注意事项
- 服务器必须配置具备Android Publisher权限的服务账号,否则无法正常调用Google Play Developer API
- 若仍在使用v3及以下版本的旧Billing Library,可通过
getPurchases(BillingClient.SkuType.INAPP)方法获取购买记录,但强烈建议升级至最新版本,以获得更好的兼容性和安全性
内容的提问来源于stack exchange,提问作者Brian Rak
相关产品推荐
相关产品推荐

