如果用户点击“主页”,购买确认将关闭并发送到主页,应用永远不会收到购买成功消息



我们刚刚在亚马逊Android商店推出了新的应用内购买SDK游戏。我们看到一些销售导致用户无法获得他们支付的虚拟商品。我已经复制了一个用例,每次都会导致这种情况发生。

基本上,用户发起和IAP,他们被带到亚马逊购买对话框,他们进行购买,并得到亚马逊的购买确认对话框.
如果用户单击对话框上的"关闭"按钮或屏幕底部选项栏上的"后退"按钮(使用 Kindle Fire),对话框将关闭,IAP 进程会向应用发送一条消息,表明购买成功。我收到消息并处理它,一切都很好.
但是,如果用户点击"主页"按钮,购买确认将关闭,并且用户被转储到主屏幕,则应用永远不会收到购买成功消息。

我正在尝试解决某种问题,因为用户不会关心亚马逊IAP实施中消息收据的变幻莫测,他们只关心他们为没有得到的东西付费。我们有 1 种不可消费的商品,这不是问题,因为我们的应用程序会在启动时检查以前的购买。但消耗品是另一个问题。您无法还原这些内容。

有解决方法吗?

实际上有 2 个应用程序执行购买。购买由您的应用程序发起,但由另一个应用程序的设备中的亚马逊IAP组件执行。如果您按下主页按钮,则会使应用程序进入后台,并且通常由于Android积极的内存管理,该应用程序会进入休眠阶段甚至被杀死,具体取决于设备上的资源利用率。这会导致购买项目无法到达您的应用。

亚马逊有一个解决方法。如此处所述 - https://developer.amazon.com/public/apis/earn/in-app-purchasing/docs-v2/implementing-iap-2.0,实现 onPurchaseUpdateResponse(),每当应用程序重新启动时,它将获取待处理的购买。有一个小的时间延迟,可以防止立即"获取待处理的购买"。

还要确保在向用户完成项目后调用 notifyFullfilment()。不这样做仍会导致您的应用程序正常工作;但它可能会对您的货币化产生负面影响(有不同的原因,我不详细介绍)。

相关内容

  • 没有找到相关文章

最新更新