在应用程序购买 – 当试图再次购买消费品 – 这个应用程序内购买已经被购买

我在我的iTunes连接中有可用的产品,当我试图购买两次(在我的iPhone上)时,它告诉我已经购买了它。 但这是消费品的全部重点,用户可以一遍又一遍地购买。 有什么build议么?

如果您没有将原始采购的交易标记为已完成,则会发生这种情况,您应该在成功处理采购之后在- (void)paymentQueue:(SKPaymentQueue*)queue updatedTransactions:(NSArray*)transactions方法。

你需要调用的方法是[[SKPaymentQueue defaultQueue] finishTransaction:transaction]

 public 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 } } }