如何处理来自 Google Play 的待处理购买

Fur*_*kul 11 android in-app-purchase

我们的大多数购买在 3 天 30 分钟后一直被取消,我认为这是等待购买状态的结果。但是,关于如何准确处理未决购买的文档很少。而且,出于某种原因,即使我自己是一名测试员,我也无法对其进行测试,因为购买方法上没有“慢卡”选项。此外,我们没有后端服务器来支持我们。

这是我从官方文档中找到的解释:

void handlePurchase(Purchase purchase) {
    if (purchase.getPurchaseState() == PurchaseState.PURCHASED) {
        // Acknowledge purchase and grant the item to the user
    } else if (purchase.getPurchaseState() == PurchaseState.PENDING) {
        // Here you can confirm to the user that they've started the pending
        // purchase, and to complete it, they should follow instructions that
        // are given to them. You can also choose to remind the user in the
        // future to complete the purchase if you detect that it is still
        // pending.
    }
}
Run Code Online (Sandbox Code Playgroud)

查看有关PENDING状态的说明。“要完成购买,他们应该按照给他们的指示”是什么意思?这些指令究竟是什么?我们需要将用户重定向到 Google Play 还是什么?它没有具体说明要做什么,并且因为购买无缘无故或出于这个原因而被取消,这让我很烦恼。如何完成待处理的购买?什么都没有,或者我找不到它,因此我结束了这里。

我希望你能帮我解决这个问题。谢谢。

chi*_*tte 20

我同意文档很差,特别是因为有一次你想确切地知道发生了什么是当你在处理别人的钱时!

看起来“慢卡”交易实际上是“待购买”,这是谷歌在 2019 年推出的。这是可能的流程......

  • 在您的应用中,用户点击“立即购买”
  • 他们会看到 Google 结帐叠加层
  • 他们选择“在阿克拉 Freddina's Grocery 付款”(一家本地商店,已签约处理 Google 待处理的购买)
  • Google Checkout 会显示一个代码以显示给 Freddina
  • 用户以现金支付 Freddina,Freddina 使用该代码处理付款
  • 大约 10 分钟后,购买更新将登陆您的应用

至于处理不可预测的定时更新事件,我们有一个应用程序,它有一个handlePurchaseUpdated方法,从应用程序启动的那一刻开始监听,并根据Purchase它附带的对象进行更改。这是一个示例流程:

  • 我们会在应用程序启动后立即侦听购买更新
  • 用户购买缓慢
  • 我们收到购买更新
  • 传递的Purchase对象具有购买状态 PENDING
  • 我们告诉用户我们会在购买完成后通知他们
  • 在未来的某个时间点(例如应用程序重新启动后的第二天),购买更新会到来
  • 如果购买状态现在是 PURCHASED 我们完成购买并告诉用户

注意:我们的是ReactNative app,不是原生java,但是流程应该是一样的。

实施起来很复杂,因为您必须选择时间进行购买更改并在有意义的时间显示购买结果,而不一定是在启动后 5 秒(或任何其他奇怪时间)购买更新到达时。如果在您的授权或确认步骤中出现错误,情况会变得更加复杂,呃。

此外,您可能没有看到“慢卡”测试器选项,因为您不允许它


小智 5

听起来您不承认购买。请参阅 Google Play 结算文档中的以下内容:

如果您使用 Google Play Billing Library 2.0 或更新版本,您必须在三天内确认所有购买。未能正确确认购买会导致这些购买被退款。