亚马逊In-App-Purchase Bug

时间:2012-05-24 17:12:22

标签: amazon kindle in-app-purchase

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

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

我正在尝试进行某种工作,因为用户不会关心亚马逊IAP实施中消息收据的变幻莫测,他们只关心他们付出了他们没有得到的东西。我们有1个不可消费的商品,这不是问题,因为我们的应用程序在启动时检查以前的购买。但消费品是另一个问题。你无法恢复那些。

是否有人遇到此问题并且有解决方法吗?

1 个答案:

答案 0 :(得分:1)

实际上有2个应用正在执行购买。购买由您的应用程序启动,但由设备中的amazon IAP组件执行,这是另一个应用程序。如果你按下主页按钮,这会将应用程序带到后台,并且通常由于android的积极内存管理,应用程序进入休眠阶段甚至死亡,具体取决于设备上的资源利用率。这会导致购买无法到达您的应用。

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

还要确保在项目完成后向用户调用notifyFullfilment()。不这样做仍会导致您的应用无法运行;但它可能会对您的货币化产生负面影响(有不同的原因,我不会详细说明)。