如果我没有使用 paymentQueueRestoreCompletedTransactionsFinished 方法但在 paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) 中使用恢复的事务状态,如果有任何差异,如下所示:
1
paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
print("add paymnet")
for transaction:AnyObject in transactions {
let trans = transaction as! SKPaymentTransaction
print(trans.error)
switch trans.transactionState {
case .Purchased. Restored:
...
and
...
@IBAction func RestorePurchases(sender: UIButton) {
SKPaymentQueue.defaultQueue().addTransactionObserver(self)
SKPaymentQueue.defaultQueue().restoreCompletedTransactions()
}
或者我将使用 paymentQueueRestoreCompletedTransactionsFinished 方法,但在 paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) 中的.Restored状态我会像这里一样使用制动操作符:
2
func paymentQueueRestoreCompletedTransactionsFinished(queue: SKPaymentQueue) {
//restored code here
}
//and
func paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
print("add paymnet")
for transaction:AnyObject in transactions {
let trans = transaction as! SKPaymentTransaction
print(trans.error)
switch trans.transactionState {
case .Purchased:
...
case .Restored:
break
...
//and
...
@IBAction func RestorePurchases(sender: UIButton) {
SKPaymentQueue.defaultQueue().addTransactionObserver(self)
SKPaymentQueue.defaultQueue().restoreCompletedTransactions()
}
任何帮助将不胜感激!
PS
在恢复过程中消耗品和非消耗品购买的代码应该有什么不同吗?