如何处理来自 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.
我们的大部分购买在 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.