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

How to handle pending purchases from Google Play

我们的大部分购买在 3 天 30 分钟后不断被取消,我认为这是未决购买状态的结果。但是,关于如何准确处理待定购买的文档非常少。而且,出于某种原因,即使我自己是测试人员,我也无法测试它,因为购买方式没有 "Slow card" 选项。另外,我们没有后端服务器来支持我们。

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

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.
    }
}

查看PENDING状态的解释。 "To complete the purchase, they should follow instructions that are given to them" 是什么意思?这些指令到底是什么?我们需要将用户重定向到 Google Play 还是什么?它没有具体说明要做什么,并且因为购买无缘无故或出于这个原因而被取消而困扰着我。如何完成待定购买?什么都没有,或者我找不到,所以我就到这里了。

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

我同意文档很差,尤其是因为有一次你想知道到底发生了什么,那是在你处理别人的钱的时候!

看起来 'slow card' 交易实际上是 'pending purchase',Google 在 2019 年已经 rolling out。这是可能的流程...

  • 在您的应用中,用户点击 'Buy now'
  • 他们看到 Google 结帐叠加层
  • 他们选择 "Pay at Freddina's Grocery, Accra"(已注册处理 Google 待定购买的本地商店)
  • Google 结帐显示一个代码给 Freddina
  • 用户以现金支付 Freddina,Freddina 使用该代码处理付款
  • 10 分钟左右后,购买更新将登陆您的应用程序

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

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

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

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

此外,您可能没有看到 'slow card' 测试人员选项,因为您没有 allow it?

听起来你不是acknowledging购买的。请参阅 Google Play Billing 文档中的以下内容:

If you use the Google Play Billing Library version 2.0 or newer, you must acknowledge all purchases within three days. Failure to properly acknowledge purchases results in those purchases being refunded.