Swift:如何在购买完成时通知

Gje*_*sen 0 storekit ios swift

SKPaymentTransactionObserver购买完成后我有支票

extension IAPService: SKPaymentTransactionObserver {
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
    for transaction in transactions {
        print(transaction.transactionState.status(), transaction.payment.productIdentifier)
        if transaction.transactionState.status() == "purchased" {
            // Pro Purchased
        }
        switch transaction.transactionState {
        case .purchasing: break
        default: queue.finishTransaction(transaction)
        }
    }
}
}
Run Code Online (Sandbox Code Playgroud)

ViewController购买完成后,如何隐藏购买的对象

Fra*_*iro 5

您可以在IAPService类中创建一个闭包:

var productDidPurchased: (() -> Void)?
Run Code Online (Sandbox Code Playgroud)

然后,您可以在扩展程序中以以下方式使用它:

switch transaction.transactionState {
    case .purchasing: 
        break
    case .purchased:
        productDidPurchased?()
    default:
        queue.finishTransaction(transaction)
}
Run Code Online (Sandbox Code Playgroud)

然后在您的ViewController中检索它:

IAPService.shared.productDidPurchased = { 
    [weak self] in 
    //you will receive a callback when the product is purchased and can hide your view here 
}
Run Code Online (Sandbox Code Playgroud)