繁体   English   中英

在App Purchases iOS中

[英]in App Purchases iOS

我通过本教程制作了使用IAP的第一个应用程序

我为InAppPurchaseManager创建了一个单例,添加了3个以上的购买,购买方法,并且所有方法都很好用。 问题是我的应用程序是一个画廊,用户可以免费使用9个物品,之后再支付18个物品。 如何在显示系统UIAletrView时准确地检查ViewController是否成功购买? 或者,也许我可以在ViewController检索此警报?

对于画廊,我正在使用UICollectionView ,如果购买完成,我需要重新加载它

您可以使用此委托方法检查事务的状态。

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{

    for (SKPaymentTransaction *transaction in transactions)
    {
        NSLog(@"%i",[transaction transactionState]);
        switch (transaction.transactionState)
        {
            case SKPaymentTransactionStatePurchased:
                // [self completeTransaction:transaction];
                break;
            case SKPaymentTransactionStateFailed:
                // [self failedTransaction:transaction];
                break;
            case SKPaymentTransactionStateRestored:
                // [self restoreTransaction:transaction];
            case SKPaymentTransactionStatePurchasing: {
                // if([self.delegate respondsToSelector:@selector(inProcessPurchasingTransaction)])
                // [self.delegate inProcessPurchasingTransaction];
                }
            default:
                break;
        }
    }
}

当事务成功时,以下委托方法将触发:

 - (void) completeTransaction: (SKPaymentTransaction *)transaction

并且在失败的情况下:

- (void) failedTransaction:(SKPaymentTransaction *)transaction

并且出于测试目的,您需要创建测试用户帐户。 对应用程序进行编程后,您可能需要测试该应用程序。 您可以使用这些帐户登录App Store。 购买交易将被视为真实交易,但不会进行任何财务交易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM