【问题标题】:Google Play Billing: identifying duplicate transactionsGoogle Play 结算:识别重复交易
【发布时间】:2016-11-08 16:51:16
【问题描述】:

有什么方法可以查看应用内交易是否与用户已经拥有的物品有关?由于人们重新购买东西(在删除应用程序或切换用户帐户之后),我们的报告收到了一堆重复的交易——他们不会因为多次购买未消费的物品而在 Google 方面收取费用,我们需要一种方法来知道这一点.

我们尝试了以下方法:

  1. 购买收据中的OrderId 字段 - 似乎每次都是独一无二的, 即使该项目已经拥有。
  2. PurchaseToken – 尽管有一个 格式的数量,它似乎是相同的交易 涉及由同一个人购买同一商品,然而 我们的用户中很少有人每次都能获得唯一的购买代币 “购买”。

有什么方法可以判断过去是否已经发生过该产品的应用内购买(例如引用 Apple 生态系统中原始 iTunes 收据中的 transaction_id 字段)?

【问题讨论】:

    标签: android in-app-billing


    【解决方案1】:

    有什么方法可以判断该产品的应用内购买是否有 过去已经发生过?

    AFAIK 应用内计费 API 不提供消费产品的此类信息(我假设您使用产品而不是订阅)。

    案例是:

    1. 对于非消费产品,您应该从 getBuyIntent 方法中获得值为 7 的 RESPONSE_CODE - ITEM_ALREADY_OWNED,因此您可能只是不会在客户端消费产品而只是无限期地保留它们。

    2. 对于消费产品,您可能希望将产品 SKU (productId) 保存在您的应用中,或者如果您的系统使用用户会话,则将其与某种用户帐户相关联。这样,在下次尝试购买产品时,您可以匹配 SKU,并以编程方式禁止应用启动意图发送方以购买指定 SKU 产品。

    orderIdpurchaseToken 对于给定事务都应该是唯一的。它们供进一步使用,例如与Google Developer API 一起使用,即:https://developers.google.com/android-publisher/api-ref/purchases/products/get(请参阅请求参数中的token)。

    • 或者,您可以使用上述开发人员 API 和可选的 developerPayload 字段(无论您希望这样做)来匹配您系统的用户和 Play 商店交易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-21
      • 2021-05-06
      • 2014-01-30
      相关资源
      最近更新 更多