Sunday, November 8, 2026
HomeiOS Developmentios - The best way to get product particulars (Buy date and...

ios – The best way to get product particulars (Buy date and Expiration date) from Restore Buy? Swift

[ad_1]

Code:

extension IAPManager: SKPaymentTransactionObserver {
//This delegate will set off for each transactions, both for buying or restoring
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
    transactions.forEach { (transaction) in
        change transaction.transactionState {
        case .bought:
            onBuyProductHandler?(.success(true))
            SKPaymentQueue.default().finishTransaction(transaction)
            
        case .restored:
            totalRestoredPurchases += 1
            let prodID = transaction.fee.productIdentifier
            print("restored productID (prodID)")
            SKPaymentQueue.default().finishTransaction(transaction)

        case .failed:
            if let error = transaction.error as? SKError {
                if error.code != .paymentCancelled {
                    onBuyProductHandler?(.failure(error))
                } else {
                    onBuyProductHandler?(.failure(IAPManagerError.paymentWasCancelled))
                }
                onBuyProductHandler?(.failure(error))
                //print("IAP Error:", error.localizedDescription)
            }
            SKPaymentQueue.default().finishTransaction(transaction)
            
        case .deferred, .buying: break
        @unknown default: break
        }
    }
}

func paymentQueueRestoreCompletedTransactionsFinished(_ queue: SKPaymentQueue) {
    if totalRestoredPurchases != 0 {
        onBuyProductHandler?(.success(true))
    } else {
        print("IAP: No purchases to revive!")
        onBuyProductHandler?(.success(false))
    }
}
 

I’ve two questions:

  1. Ought to I name SKPaymentQueue.default().finishTransaction(transaction) inside paymentQueueRestoreCompletedTransactionsFinished delegate as nicely apart from calling it on updatedTransactions delegate to shut the fee queue?

  2. When a am Restoring a product, how am I suppose to make use of transaction object to confirm receipt in an effort to get every merchandise Buy date & Expiration date?

PS: I’m engaged on Auto Renewable subscription.

[ad_2]

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments