【问题标题】:iOS - Inapp purchase - handling crashiOS - 应用内购买 - 处理崩溃
【发布时间】:2012-04-24 13:02:00
【问题描述】:

我成功地将应用内购买集成到我的应用程序中。但我带着疑问离开了,并在寻找如何处理这种情况。
当用户发起应用内购买时,提供他的身份验证详细信息。但由于某种原因,在我处理finishedTransaction 方法并解锁应用程序中的功能之前,应用程序崩溃了。
下次启动应用时,如何知道购买是否成功?

【问题讨论】:

  • 提供一些代码,应该不会崩溃
  • @Oritm - 我的代码没有崩溃。仅出于预防措施,我想在我的代码中处理这种情况。

标签: ios in-app-purchase


【解决方案1】:

只有finishTransaction 会从paymentsQueue 中删除事务。因此,如果崩溃发生在之前,付款将留在队列中,并且下次用户启动应用程序时,将要求他输入密码,然后您将能够再次进行购买。

但是如果崩溃发生在finishTransaction调用之后,在你提供内容之前,用户会注意到没有提供内容,所以他可以按下恢复按钮。或者你finishTransaction 之后可以自己标记一个标志并检查您是否提供了您应该提供的内容。

【讨论】:

  • 我关于崩溃的问题是在调用“finishTransaction”之前。
  • 一切都很好,正如我在问题的第一部分中回答的那样。
  • 让我解释一下:用户输入了应用商店凭据,苹果可能已经处理了付款并从信用卡中扣款。当苹果发送支付成功的响应并在调用“finishTransaction”之前,应用程序崩溃了。钱被扣了,但是我没有处理finishTransaction并解锁了资源....怎么处理?
  • 您的付款仍在付款队列中,它会要求用户输入他的凭据,不是吗?
【解决方案2】:

我不认为你可以。

但是如果用户已经购买,并且苹果收到了付款,用户可以随时恢复他的购买。当你按下支付按钮(或你编程的)它会说:你已经购买了这个项目,你想恢复这个购买吗?

如果恢复,finishedTransaction 将被调用。

您不必再次付款。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 1970-01-01
    相关资源
    最近更新 更多