在我的应用程序中,用户可以进行两次不同的购买。恢复购买功能 - 斯威夫特
这是我的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