亚马逊应用内购买错误

Posted

技术标签:

【中文标题】亚马逊应用内购买错误【英文标题】:Amazon In-App-Purchase Bug 【发布时间】:2012-05-31 07:34:08 【问题描述】:

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

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

我正在尝试解决一些问题,因为用户不会关心亚马逊 IAP 实施中消息回执的变幻莫测,他们只关心他们为没有得到的东西付费。我们有 1 件非消耗品,这不是问题,因为我们的应用会在启动时检查以前的购买。但消耗品是另一个问题。你无法恢复那些。

有人遇到过这种情况吗?有解决办法吗?

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

以上是关于亚马逊应用内购买错误的主要内容,如果未能解决你的问题,请参考以下文章

亚马逊应用内购买如何测试付款

亚马逊移动应用内购买需要我自己的服务器?

亚马逊应用内购买在生产环境中不起作用

无法为亚马逊应用内购买请求商品数据

亚马逊移动应用内购买。正确初始化

Android - 亚马逊应用内购买