可以安全地假设 Google Play API 中没有用于测试购买的 paymentState?
Posted
技术标签:
【中文标题】可以安全地假设 Google Play API 中没有用于测试购买的 paymentState?【英文标题】:Safe to assume paymentState is absent from Google Play API for test purchases? 【发布时间】:2017-03-24 23:30:32 【问题描述】:当我使用 Google Play Developer API 获取 purchaseToken
的 Purchases.subscriptions 资源时,测试购买不包括 paymentState
属性。然而,真正的购买似乎总是包括它。那么,当 Purchases.subscriptions 资源不包含 purchaseToken
来自测试购买的 paymentState
属性时,是否可以安全地假设?
我们正在服务器端验证购买令牌和续订,并正在寻找更好的解决方案来确定购买是否为测试购买,而不必依赖 orderId
的存在与否,该 orderId
仅适用于应用程序。
【问题讨论】:
我也在想同样的事情。您是否知道 paymentState 是否仅适用于实际购买? 这里一样,看到类似的行为,我也想知道这个问题的答案 在向 Google Play API 端点Purchases.subscriptions: get
发出数百个请求之后,如果其他人想知道的话。每个 Purchases.subscriptions resource
响应中都缺少 paymentState
属性
【参考方案1】:
自 2017 年 7 月 10 日起,Google Play 现在提供来自测试购买的 orderID。
【讨论】:
请将此作为评论。 @dee-elle 感谢您提供的信息。你有官方消息来源吗?【参考方案2】:所以我意识到使用paymentState
并不是检测测试购买的正确方法。我注意到如果 purchaseToken 支付失败,paymentState
属性也不会返回。所以我们最终决定使用从应用程序传递给我们的orderId
的缺失或存在。
【讨论】:
但是一个测试请求(至少是一个订阅)也有一个orderId。 (我只能确认订阅)【参考方案3】:现在不确定它是否相关,但 Purchases.subscriptions:get
现在在响应中包含 purchaseType
purchaseType
0 表示测试购买
参考 - https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.subscriptions
【讨论】:
以上是关于可以安全地假设 Google Play API 中没有用于测试购买的 paymentState?的主要内容,如果未能解决你的问题,请参考以下文章
Google Play 政策更新 | 扩展目标 API 级别要求以增进用户安全
Android google play 控制台错误 APK 不安全地传输用户数据
安全进展 | 持续打造值得信赖的 Google Play 平台
安全进展 | 持续打造值得信赖的 Google Play 平台
错误记录Google Play 上架报错 ( APK 大小 | 目标 API 级别 | Google Play 帮助文档 )