在我的應用程序中,用戶可以進行兩次不同的購買。恢復購買功能 - 斯威夫特
這是我的paymentQueue功能:
func paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
print("Received Payment Transaction Response from Apple")
for transaction:AnyObject in transactions {
if let trans:SKPaymentTransaction = transaction as? SKPaymentTransaction {
switch trans.transactionState {
case .Purchased, . Restored:
print("Product Purchased/Restored")
SKPaymentQueue.defaultQueue().finishTransaction(transaction as! SKPaymentTransaction)
// TO DO
if selectedProduct == "product1" {
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "product1Purchased")
} else if selectedProduct == "product2" {
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "product2Purchased")
}
case .Failed:
print("Purchased Failed")
SKPaymentQueue.defaultQueue().finishTransaction(transaction as! SKPaymentTransaction)
break
default:
break
}
}
}
}
我創建了一個名爲selectedProduct
變量來檢測用戶選擇其產品。如果他點擊按鈕購買第一個產品,變量selectedProduct
保存值「product1」。
問題是當用戶點擊恢復採購按鈕,應用程序檢查所選產品是「product1」還是「product2」,但如果用戶點擊「恢復採購」按鈕,selectedProduct
沒有任何價值, 。
我該怎麼辦?
您不應該使用'selectedProduct'來查看購買或恢復的內容。查看交易內容以瞭解購買或選擇的內容。 – rmaddy
感謝您的快速回答! 「交易」是什麼意思? – fredericdnd
你的'transaction'變量(實際上是你的'trans'變量)。 – rmaddy