2016-01-29 79 views
0

所以我想你可以说我觉得我发现自己陷入了空虚。这是我理解distriqt inappbilling顺序的方式 - 初始化记账 的getProducts(send_in_array_of_products) 现在,它的完成我可以发送请求消费,购买等Android设定 distriqt inappbilling - getProducts

我第一次运行它返回的程序产品。我做了一个测试购买,但购买失败 - 这使它的Android登录和验证信用卡 - 然后购买失败事件被触发(我不知道为什么它在这个时候失败)。此时我关闭了游戏并做了一些更新,以跟踪更多正在发生的事情。

当我第二次运行游戏获取产品列表失败时 - 事实证明它给了我以下错误:1003 - 刷新库存时出错(查询拥有的物品)。好吧 - 现在呢?

由于此错误,我无法加载getProducts()。我曾尝试为每个产品发送消耗并且失败。看起来我被困在一个地方,因为我无法加载产品列表,所以我无法对商店做任何事情。

Android说你打算打电话给商店以获得该人拥有的产品清单,但我没有在distriqt包中看到该类型的功能。

任何人都可以解释我必须做些什么才能让商店再次运作。如果我不知道他们拥有哪些产品,我该如何通过忽略他们拥有的产品来申请产品清单?此外,如果我确实知道他们拥有什么 - 不应该消费(产品)将其从购买的产品中删除?

有谁知道如果您可以先运行消耗(产品)而不先执行getProducts()命令?

感谢您提供的任何帮助。

+0

您应该考虑添加更多的上下文和标签,以便有机会充分了解您的问题以回答您的问题的人可以回答它。另外,如果可能的话,你应该包括一些代码示例。 – kazagistar

回答

0

这个答案确实适用于Distriqt InAppBilling ANE,但它可能会帮助其他人使用不同的编程方法来解决同样的问题。大约一个星期后,我终于搞清楚了。

您必须确保呼叫的

InAppBilling.service.finishPurchase(purchase-information)

命令。

否则,Play商店将会将其视为未完成交易,并在您尝试获取产品列表时失败,并显示错误代码1003 - Error refreshing inventory (querying owned items)

为了解决这个问题,我向所有的产品进​​行了finishPurchase调用。一旦完成,一切都开始正常工作了。只要确保在所有退回的购买事件中调用finishPurchase命令。我在失败事件中错过了那次电话,那是我头痛的一次。你会认为,如果购买失败,谷歌会关闭交易,但没有 - 你仍然必须告诉他们已完成。希望这可以帮助别人!

+0

嗨,很高兴你找到了解决方案。 'finishPurchase'函数用于在完成购买之前对交易执行服务器端验证。欲了解更多信息,你可以在这里阅读入门指南,关于“进行购买”的部分强调了这一信息:http://airnativeextensions.com/extension/com.distriqt.InAppBilling#get-started Cheers – Michael

+0

此外,作为一方请注意,如果您持有支持许可证,您可以通过发布到github存储库中获得积极的支持。 – Michael

相关问题