Swift: Updated IAP transactions that are not called.

I have a problem with my code. The updatedTransactions function is called only once when the transaction is. Purchasing and not called upon completion of the transaction.

func buyProduct(product: SKProduct) {
  let payment = SKPayment(product: product)
  SKPaymentQueue.defaultQueue().addTransactionObserver(self)
  SKPaymentQueue.defaultQueue().addPayment(payment)
}

func paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {

  for transaction in transactions {
    print(transaction)
    switch (transaction.transactionState) {
      case .Purchased, .Restored:
        print("Completed")
        complete(transaction)
        break
      case .Failed:
        fail(transaction)
        break
      default:
        break
    }
  }
}
+4
source share
1 answer

Sorry, I can answer a little later, but this may be related to this question . Do you test your IAP from Xcode when it does not reach state .purchased?

If yes, then you need to set the App Store identifier on the device that you created in iTunes Connect (user menu, Sandbox testers).

, , , SKPaymentQueue , . SKPaymentQueue.default().transactions.

28 , , case.

, viewDidLoad, ( , , ):

for transaction: AnyObject in SKPaymentQueue.default().transactions {
    SKPaymentQueue.default().finishTransaction(transaction as! SKPaymentTransaction)
}
0

Source: https://habr.com/ru/post/1662199/


All Articles