问题
给定 linkedPurchaseToken,我想从 Google 获取关联的订阅信息。但是 Google 获取订阅 API 需要订阅的产品 ID(即 sku)——这可能会发生变化,因为只有当客户购买新产品时才会创建新的购买令牌。如果您在 url 中使用旧的 sku 和新的购买令牌,您将收到 buyTokenDoesNotMatchProductId 错误:“购买令牌与产品 ID 不匹配。”那么实际上有没有一种方法可以只使用链接的购买令牌?
更多详情
在从 Google 文档链接的中型文章中,深入解释了链接的购买令牌,尽管它只讨论在服务器上管理它们,而不是使用它们来验证任何信息。关于升级/降级的 Google 文档 说“您可以使用 linkedPurchaseToken 查找旧订阅并识别现有用户帐户,以便您可以将新购买与同一帐户关联。”但正如其他人在对 Medium 文章的回复中提出的问题,但没有得到答复,您需要 sku 才能发出 GET 请求。
因此,成功发出此请求的唯一方法似乎是将 sku 记录在您的服务器上。我已经计划这样做了,但我担心的是,如果出现问题并且没有此信息,该怎么办。
无可否认的人为示例
假设客户在服务器停机期间升级其订阅,看到错误,然后再次升级到不同的 sku。现在将有一个链接的购买代币链,如下所示:Upgrade 2 -> Upgrade 1 -> Original Sub。假设服务器在第一个 RTDN 期间关闭,但在第二个 RTDN 期间及时恢复。数据库中只有 Original Sub,因此没有任何内容与升级 2 上的 linkedPurchaseToken 匹配。然后我们就会陷入困境 - 我们无法调用 API 来获取升级 1 的 linkedPurchaseToken,因为我们不知道 sku,所以我们永远无法完成链条。
这种情况不太可能发生,但并非不可能,并且可能存在另一种情况,我们最终会处于我现在没有想到的类似状态。因此,我真的很想了解我是否遗漏了有关 linkedPurchaseTokens 如何与 API 一起使用的基本知识,因为文档实际上并未涵盖这些细节。
已经过去很多年了,但您现在可以使用名为
subscriptionsv2
的新 API 端点,它不再需要知道订阅/产品 ID!
https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.subscriptionsv2