Skip to content

Instantly share code, notes, and snippets.

@alvaroroyo
Created September 24, 2019 11:15
Show Gist options
  • Save alvaroroyo/b053bfa94a46142621c9a76f1403fa94 to your computer and use it in GitHub Desktop.
Save alvaroroyo/b053bfa94a46142621c9a76f1403fa94 to your computer and use it in GitHub Desktop.
func purchase(_ product: SKProduct) {
guard SKPaymentQueue.canMakePayments() else {
return
}
let payment = SKPayment(product: product)
let queue = SKPaymentQueue.default()
queue.add(payment)
queue.add(self) //Delegate
}
//SKPaymentTransactionObserver
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
transactions.forEach{
switch $0.transactionState {
case .purchasing, .deferred:
print("IAP: Waiting response")
case .purchased, .restored:
let originalTransactionId = $0.original?.transactionIdentifier ?? $0.transactionIdentifier ?? ""
print("IAP: Bought (\(originalTransactionId))")
case .failed:
print("IAP: Fail")
@unknown default:
fatalError()
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment