我在iTunes Connect中有可消耗的应用内购买产品,在我的iPhone上尝试第二次购买时,它告诉我我已经购买过了。但这正是可消耗品的全部意义,用户可以一遍又一遍地购买。有什么建议吗?
我在iTunes Connect中有可消耗的应用内购买产品,在我的iPhone上尝试第二次购买时,它告诉我我已经购买过了。但这正是可消耗品的全部意义,用户可以一遍又一遍地购买。有什么建议吗?
如果您没有将原始购买的交易标记为已完成,就会发生这种情况。在成功处理购买后,您应该在- (void)paymentQueue:(SKPaymentQueue*)queue updatedTransactions:(NSArray*)transactions
方法中进行标记。
您需要调用的方法是[[SKPaymentQueue defaultQueue] finishTransaction:transaction]
。
let queue = SKPaymentQueue.default(); queue.transactions.forEach { queue.finishTransaction($0) }
- benrudhartpublic func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
for transaction in transactions {
switch (transaction.transactionState) {
case .purchased:
complete(transaction: transaction)
break
case .failed:
fail(transaction: transaction)
break
case .restored:
restore(transaction: transaction)
break
case .deferred:
break
case .purchasing:
break
}
}
}