首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS:在购买时恢复之前购买的应用内产品,但不更新交易

iOS:在购买时恢复之前购买的应用内产品,但不更新交易
EN

Stack Overflow用户
提问于 2016-12-14 18:37:54
回答 1查看 162关注 0票数 0

我有一个用于iOS的Xamarin应用程序,可以在应用程序内购买。在测试期间,我购买了一个可消耗产品,但没有完成转换(出错时崩溃)。现在,如果我重新安装应用程序,它允许购买此产品,但当然会恢复它,并显示消息“该产品已恢复免费”。

此行为是预期行为,但队列侦听器的UpdatedTransactions未激发。我可以直接通过StoreKit.SKPaymentQueue.DefaultQueue.Transactions,检查队列,但我需要知道用户交互何时结束(用户在该消息对话框中按下OK )。但不会触发任何侦听器方法。据我从苹果文档中了解,在此之后必须有事务的更新。也许在我尝试购买之前它就被解雇了。但是,我应该在购买之前手动检查队列吗?

EN

回答 1

Stack Overflow用户

发布于 2016-12-14 19:02:14

我没有使用Xamarin,但StoreKit是iOS特性的基础,因此它不能在Xamarin中工作。必须更早地激发事件。一旦您添加了事务观察者([SKPaymentQueue defaultQueue addTransactionObserver:self]),您将收到所有挂起事务的更新回调。如果这是在应用程序启动时完成的(它应该是),当您到达购买屏幕时,您将有交易更新。对我来说,这是IAP开发中最棘手的部分,因为您必须在应用程序启动时处理它们,以及在您拥有它们的所有屏幕中处理它们,并且回调可能随时发生。

还请注意,这个挂起的事务可能会在事务列表中出现多次(我主要使用非消耗品,所以每次重新启动应用程序时都会添加新的事务,而无需关闭所有挂起的事务)。为此,我让组件在应用程序启动时立即添加为事务观察者,侦听更新的事务,并将其存储在实例变量中以供以后使用。在开始新的购买之前,我会检查是否存在具有相同产品id的待处理事务,并采取相应的行动。

希望这能有所帮助。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41140477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档