首页 > 解决方案 > 如何在没有 productId/sku 的情况下使用 Google 订阅 linkedPurchaseToken?

问题描述

问题

给定一个linkedPurchaseToken,我想从谷歌获取相关的订阅信息。但是Google Get Subscription API需要订阅的产品 ID(即 sku)——这可能会发生变化,因为新的购买令牌仅在客户购买新产品时创建。如果您将 url 中的旧 sku 与新的购买令牌一起使用,您将收到 purchaseTokenDoesNotMatchProductId 错误:“购买令牌与产品 ID 不匹配。” 那么实际上有没有办法只使用链接的购买令牌?

更多细节

在Google 文档链接的一篇 Medium 文章中,深入解释了链接的购买令牌,尽管它只讨论在您的服务器上管理它们,而不是使用它们来验证任何信息。关于升级/降级的Google 文档说“您可以使用 linkedPurchaseToken 查找旧订阅并识别现有用户帐户,以便您可以将新购买与同一帐户相关联。” 但正如其他人在回复未回答的 Medium 文章时所问的那样,您需要 sku 才能发出 GET 请求。

因此,似乎成功发出此请求的唯一方法是将 sku 记录在您的服务器上。我已经计划这样做,但我担心的是在出现问题并且此信息不存在的情况下该怎么办。

诚然人为的例子

假设客户在服务器停机期间升级其订阅,发现错误,然后再次将其升级到不同的 sku。现在会有一个这样的链接购买令牌链:升级 2 -> 升级 1 -> 原始子。假设服务器在第一个 RTDN 时关闭,但在第二个 RTDN 时及时备份。只有原始子在数据库中,所以升级 2 中没有任何内容与linkedPurchaseToken 匹配。然后我们会被卡住 - 我们无法调用 API 来获取升级 1 的linkedPurchaseToken,因为我们不知道 sku,所以我们永远无法完成这个链条。

这种情况不太可能但并非不可能,并且可能还有另一种情况,我们最终会处于我现在没有想到的类似状态。因此,我真的很想了解是否缺少有关如何将linkedPurchaseTokens 与API 一起使用的基本知识,因为文档实际上并未涵盖这些细节。

标签: google-playgoogle-play-developer-apigoogle-play-billing

解决方案


推荐阅读