应用程序内购买:收听"取消"按钮?

use*_*946 2 iphone xcode in-app-purchase ipad ios

我正在试图找出当用户试图购买某些内容时,我会如何收听"确认"警告中显示的"取消"按钮.你知道,苹果公司做的官方版本看起来像是:"确认你的应用内购买.你想以价格购买一个$产品吗?[取消] [购买]"

如果我正确理解我的代码,则通过以下方式启动警报:

SKPayment *payment = [SKPayment paymentWithProductIdentifier:productIdentifier];
[[SKPaymentQueue defaultQueue] addPayment:payment];
Run Code Online (Sandbox Code Playgroud)

所以基本上我想做点什么,如果他们点击取消.谢谢

Mat*_*uch 9

paymentQueue:updatedTransactions:SKPaymentTransactionObserver协议实现该方法.在那里,你可以检查transactionStateerror每一个transaction对象.

我用过这样的东西:

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions {
    for (SKPaymentTransaction *transaction in transactions) {
        switch (transaction.transactionState) {
            case SKPaymentTransactionStatePurchased:
                [self completeTransaction:transaction];
                break;
            case SKPaymentTransactionStateFailed:
                if (transaction.error.code == SKErrorPaymentCancelled) {
                    /// user has cancelled
                    [self finishTransaction:transaction wasSuccessful:NO];
                }
                else if (transaction.error.code == SKErrorPaymentNotAllowed) {
                    // payment not allowed
                    [self finishTransaction:transaction wasSuccessful:NO];
                }
                else {
                    // real error
                    [self finishTransaction:transaction wasSuccessful:NO];
                    // show error
                }
                break;
            case SKPaymentTransactionStateRestored:
                [self restoreTransaction:transaction];
                break;
            default:
                break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)