在iOS应用程序内购买流程中,处理未更新订阅的中断事务的最佳方法是什么?

时间:2016-02-17 17:28:08

标签: ios in-app-purchase non-renewing-subscription

我想知道iOS应用内购买流程,处理中断交易的最佳方法是什么?

让我们看看以下被打断的购买场景:

1.使用AppStore购买

SKPaymentQueue.defaultQueue().addPayment(payment)

2.收到回复

public func paymentQueue(queue: SKPaymentQueue, updatedTransactions)

我们会尝试在我们自己的服务器中坚持购买

  1. 尝试与我们的服务器通信以保留购买

  2. 由于网络不稳定

  3. 导致通讯失败

    因此,我们不会调用 finishTransaction

    1. 用户关闭应用,然后重新启动

    2. 我们现在应该尝试在完成交易之前恢复第3步

    3. 但是,我真的不知道如何处理以下情况...

      >>问题:

      似乎如果存在未完成的交易,即使我没有注册观察员,每次我的应用程序都会弹出

      SKPaymentQueue.defaultQueue().addTransactionObserver(self)

      我做了以下实验:

      1. 购买不可续订的订阅 不要故意完成交易

      2. 重新启动应用。登录对话框按预期弹出

      3. 修改代码以删除

        中的观察者

        func application(application:UIApplication,didFinishLaunchingWithOptions launchOptions:[NSObject:AnyObject]?) - >布尔

      4. 重新启动应用。 登录对话框仍会弹出 - >

      5. >>我想要的是什么:

        我想控制登录对话框何时弹出...以及何时调用paymentQueue,以便我们的应用程序可以执行实际完成交易的事情(将购买数据保留到我们的服务器或下载由用户)

        原因是我们希望用户理解登录对话框是我们为他完成交易的,我们会尝试在我们自己的服务器中保留交易。

        因此,我需要一种方法来触发登录对话框以及以下事务更新回调

        public func paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])
        

        请帮忙!非常感谢您阅读本文

0 个答案:

没有答案