【问题标题】:Getting purchase token for a paid app from Google Play从 Google Play 获取付费应用的购买令牌
【发布时间】:2019-05-31 14:15:17
【问题描述】:

我们需要将有关应用购买的信息与我们服务器上的用户相关联。对于应用内产品,这很容易做到,因为我们可以收到购买令牌。

如何为直接从 Google Play 下载的付费应用实现相同的功能?我们无法找到一种方法来接收订单 ID 或购买令牌以记录在我们的服务器上。

【问题讨论】:

  • 您没有获得购买您应用的客户的标识符吗?
  • @axelaxel 如果您能告诉我我们如何获得购买该应用程序的人的 ID/电子邮件,它将解决我们的问题。不幸的是,我们不知道这种方法。可以在设备上获取连接到 Google Play 的帐户列表。但是,无法确定到底是哪一个人购买了该应用程序。
  • 您找到解决方案了吗?我遇到了类似的问题,当用户在谷歌播放本身内恢复过期订阅时 - 只是创建了带有新令牌的新付款。而且我不知道如何将它连接到后端用户。

标签: android google-play in-app-purchase android-app-licensing


【解决方案1】:

我在研究自己的问题时遇到了这个问题和你的问题。我认为this 可能是您想要的:

支持开发者负载

Google Play Billing 库的 2.0 增加了对开发人员有效负载的支持 - 可以附加到购买的任意字符串。您可以将开发人员有效负载参数附加到购买,但仅在确认或消费购买时。这与 AIDL 中的开发人员有效负载不同,后者可以在启动购买流程时指定有效负载。由于现在可以从您的应用外部发起购买,因此此更改可确保您始终有机会向购买添加有效负载。

为了访问新库中的负载,Purchase 对象现在包含一个 getDeveloperPayload() 方法。

注意:负载分配后不能修改。

下面是一些示例代码:

消耗品

BillingClient client = ...
ConsumeResponseListener listener = ...

ConsumeParams consumeParams =
    ConsumeParams.newBuilder()
        .setPurchaseToken(/* token */)
        .setDeveloperPayload(/* payload */)
        .build();

client.consumeAsync(consumeParams, listener);

非消耗品

BillingClient client = ...
AcknowledgePurchaseResponseListener listener = ...

AcknowledgePurchaseParams acknowledgePurchaseParams =
    AcknowledgePurchaseParams.newBuilder()
        .setPurchaseToken(/* token */)
        .setDeveloperPayload(/* payload */)
        .build();

client.acknowledgePurchase(acknowledgePurchaseParams, listener)

【讨论】:

  • 您提到了用于销售应用内产品的 Google Play 结算库。但我们可以使用购买令牌和订单 ID 来跟踪应用内购买。问题是我们如何跟踪在 Google Play 中购买的下载应用程序
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-11
  • 2013-08-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多