2016 年 4 月 6 日
Amazon 应用内购买 v2 插件现已推出
Corona Labs 很高兴地宣布 **Amazon IAP v2** 插件已正式发布。 如果您计划将您的应用程序部署到亚马逊 Kindle 设备并使用其应用内购买(IAP)服务,您应尽快在您的项目内实现此插件。 此外,如果您当前在亚马逊应用商店中有一个使用其 IAP 服务的应用程序,则必须在 **2016 年 4 月 30 日**之前将其更新为 v2 插件。
实现新的插件
该插件已在商店中为您预先激活。 因为这是一个官方的 Corona Labs 插件,您需要更改您的 build.settings
文件以反映不同的 publisherId
。 插件名称保持不变,但 publisherId
必须更改为 "com.coronalabs"
1 2 3 4 5 6 7 8 9 10 11 12 |
settings = { plugins = { ["plugin.amazon.iap"] = { publisherId = "com.coronalabs", supportedPlatforms = { ["android-kindle"]=true } }, }, } |
新的函数和属性
与旧版插件相比,此更新的插件包含一些额外的函数和属性。
- 现在支持 store.isActive。 如果插件已成功初始化,此属性将为
true
。 您可以使用它作为确认其他商店功能和流程可以启动的唯一依据。 - 添加了新的 store.getUserData() 函数,用于检索当前登录用户的用户 ID 和市场代码。
- 在与 store.loadProducts() 关联的 productList 事件表以及与 初始化、购买 和 恢复 请求关联的 storeTransaction 事件表中,可以使用新的属性。
交易变更
除了上述新函数和属性之外,v2 插件还进行了一些重要更改。
- 亚马逊现在要求您“完成”所有交易。 因此,您现在必须在每次交易后调用 store.finishTransaction() 以通知亚马逊该交易已处理。
- Amazon IAP v2 不包括交易的
"restored"
状态。 仍然可以调用 store.restore() 函数来检索用户的所有购买,但现在所有有效的交易都将处于"purchased"
状态。
迁移指南
我们迁移指南中总结了以上所有要点,它将帮助旧版插件的用户更新到新插件。
文档
与往常一样,我们为该插件提供了全面的文档。 我们鼓励旧版插件的用户和新用户查阅本文档,以便成功实现亚马逊应用内购买。
总结
请记住,亚马逊要求所有使用其应用内购买服务的应用程序在 **2016 年 4 月 30 日**之前升级到 v2。如果您有其他问题,请在 Corona 论坛 中讨论它们。
Scott
发布于 09:41,4 月 6 日我在商店里没看到它,和以前的插件一样吗?
Rob Miracle
发布于 09:45,4 月 6 日您在 build.settings 中放入的代码不同,但我们已将旧版本隐藏在商店中。 新版本指向新的插件和新的文档。
Scott
发布于 18:59,4 月 6 日Rob 对不起在这里告诉你,我 5 天前提交了一个错误。 仍然没有收到回复。 我认为文本字段(不是文本框)存在相当大的问题,它们不会通过侦听器返回 began 阶段。 我知道这是题外话,但认为你们应该知道。
Rob Miracle
发布于 19:41,4 月 6 日您应该收到来自错误跟踪器的电子邮件。 您可以回复该电子邮件以了解。 您也可以在论坛中更符合主题的地方提问,询问该错误,我可以查找它。
Scott
发布于 20:53,4 月 6 日好的,我会回复
编号为 45529
Andriy
发布于 14:42,4 月 7 日新插件是否支持“store.canLoadProducts”和“store.canMakePurchases”属性?
Rob Miracle
发布于 19:27,4 月 7 日Amazon IAP V2 不支持这些,但我们添加了相同名称的便利方法,它们只运行 true,因此您可以继续使用它们。
Andriy
发布于 05:57,4 月 8 日谢谢你,Rob
Evan
发布于 12:54,4 月 11 日当取消 IAP 时,我发现我的设备在调用回调函数之前有很长的延迟。 它最终会被调用,且 errorType 和 errorString 为 FAILED 和 FAILED。 有关此问题的更多信息吗? 理想情况下,它不应该花费 5-10 秒,并且 transaction.state 应该 == 'cancelled'。
有什么想法吗?
Rob Miracle
发布于 13:43,4 月 12 日可能需要那么长时间。
George
发布于 14:15,4 月 11 日你好,Rob,我应该从哪里调用 finishTransaction? 从事务事件处理程序中吗? 一个示例将非常有帮助。 谢谢!
Rob Miracle
发布于 13:42,4 月 12 日如果您正在使用我们在文档和教程中使用的典型 transactionHandler() 函数,在该函数内部,您将有一个大的 if-then-elseif-elseif-else-end 语句,您将在其中测试您是否获得了 transaction.state == “purchased” 等。 您可以在每个之后调用 finishTransaction,或者如果您的逻辑允许它流到末尾,则只需将其放在函数的末尾。 请参阅此处的示例代码:https://docs.solar2d.cn/daily/guide/monetization/IAP/index.html#transaction-listener
Stany2011
发布于 04:08,4 月 12 日您好,您可以告诉我使用 amazon iap 插件必须添加哪些权限吗?
Rob Miracle
发布于 13:39,4 月 12 日我们的插件会自行添加所需的权限。 您无需添加任何特殊内容。