我想知道iOS应用内购买流程,处理中断交易的最佳方法是什么?
让我们看看以下被打断的购买场景:
1.使用AppStore购买
SKPaymentQueue.defaultQueue().addPayment(payment)
2.收到回复
public func paymentQueue(queue: SKPaymentQueue, updatedTransactions)
我们会尝试在我们自己的服务器中坚持购买
尝试与我们的服务器通信以保留购买
由于网络不稳定
因此,我们不会调用 finishTransaction
用户关闭应用,然后重新启动
我们现在应该尝试在完成交易之前恢复第3步
但是,我真的不知道如何处理以下情况...
>>问题:
似乎如果存在未完成的交易,即使我没有注册观察员,每次我的应用程序都会弹出 :
SKPaymentQueue.defaultQueue().addTransactionObserver(self)
我做了以下实验:
购买不可续订的订阅 不要故意完成交易
重新启动应用。登录对话框按预期弹出
修改代码以删除
中的观察者func application(application:UIApplication,didFinishLaunchingWithOptions launchOptions:[NSObject:AnyObject]?) - >布尔
重新启动应用。 登录对话框仍会弹出 - >
>>我想要的是什么:
我想控制登录对话框何时弹出...以及何时调用paymentQueue,以便我们的应用程序可以执行实际完成交易的事情(将购买数据保留到我们的服务器或下载由用户)
原因是我们希望用户理解登录对话框是我们为他完成交易的,我们会尝试在我们自己的服务器中保留交易。
因此,我需要一种方法来触发登录对话框以及以下事务更新回调
public func paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])
请帮忙!非常感谢您阅读本文