繁体   English   中英

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

[英]How to handle pending purchases from Google Play

我们的大部分购买在 3 天 30 分钟后一直被取消,我认为这是挂起购买 state 的结果。但是,关于如何准确处理挂起购买的文档很少。 而且,不知为什么,即使我自己是测试人员,我也无法测试它,因为购买方式上没有“慢卡”选项。 此外,我们没有后端服务器来支持我们。

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

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 state上的解释。“To complete purchase, they should follow instructions that are given to them”是什么意思? 这些指令到底是什么? 我们需要将用户重定向到 Google Play 还是什么? 它没有具体说明要做什么,并且因为购买被无故取消或出于这个原因而困扰我。 如何完成待定购买? 什么都没有,或者我找不到它,所以我就到了这里。

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

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

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

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

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

  • 我们会在应用程序启动后立即收听购买更新
  • 用户购买缓慢
  • 我们收到购买更新
  • 已通过Purchase object 已购买 state PENDING
  • 我们告诉用户我们会在购买完成时通知他们
  • 在未来的某个时间点(例如,应用程序重启后的第二天)购买更新会出现
  • 如果购买 state 现在是 PURCHASED 我们完成购买并告诉用户

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

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

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


2022 年更新:我个人觉得文档仍然很差,而且复杂性如此之大,我建议使用IAPHUB 之类的服务来管理 iaps 和订阅。

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

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

根据 Google 的文档 ( https://developer.android.com/google/play/billing/integrate#pending ),您需要调用enablePendingPurchases() ,然后当 state 从 PENDING 变为 PURCHASED 时,您的PurchasesUpdatedListener将收到通知。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM