Ios 恢复购买功能-Swift
在我的应用程序中,用户可以进行两种不同的购买 以下是我的paymentQueue函数:Ios 恢复购买功能-Swift,ios,swift,in-app-purchase,Ios,Swift,In App Purchase,在我的应用程序中,用户可以进行两种不同的购买 以下是我的paymentQueue函数: func paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) { print("Received Payment Transaction Response from Apple") for transaction:AnyObject in transacti
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
)来确定购买或还原了哪个产品。查看SKPaymentTransaction
中所需的信息
case .Purchased, . Restored:
print("Product Purchased / Restored")
SKPaymentQueue.defaultQueue().finishTransaction(transaction as! SKPaymentTransaction)
if trans.payment.productIdentifier == "product1" {
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "product1Purchased")
} else if trans.payment.productIdentifier == "product2" {
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "product2Purchased")
}
根据实际产品ID的需要进行调整。您不应使用
selectedProduct
查看购买或恢复的产品。查看交易内部,了解购买或选择的内容。感谢您的快速回答!“交易”是什么意思?你的交易
变量(实际上是你的交易
变量)。