我可以毫不费力地购买和恢复非消耗品.
但是,如果我试图从一个从未购买该产品的帐户中恢复,则不会调用productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse)方法,而在成功的还原中调用该方法。
下面是我在符合SKPaymentTransactionObserver协议的类中的代码:
public func restorePurchases() {
print("restoring...")
SKPaymentQueue.default().add(self)
SKPaymentQueue.default().restoreCompletedTransactions()
}
public func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
for transaction in transactions {
// finishtTransaction() is called within the sub functions
switch (transaction.transactionState) {
case .purchased:
print("pruchased !")
complete(transaction: transaction)
break
case .failed:
print("failed !")
fail(transaction: transaction)
break
case .restored:
print("restored !")
restore(transaction: transaction)
break
case .deferred:
print("deferred !")
break
case .purchasing:
print("purchasing !")
break
default:
print("default...")
break
}
}
}请注意,我可以购买和恢复产品,我只是从来没有收到答复时,没有什么可以恢复。
发布于 2016-11-17 12:58:14
实际上,您只需要实现以下方法:
public func paymentQueueRestoreCompletedTransactionsFinished(_ queue: SKPaymentQueue) {
if (queue.transactions.count == 0)
{
print("Nothing to restore...")
}
}https://stackoverflow.com/questions/40654814
复制相似问题