Iphone 在处理购买时检测应用商店何时不可用

Iphone 在处理购买时检测应用商店何时不可用,iphone,ios,in-app-purchase,Iphone,Ios,In App Purchase,在我处理购买的过程中,我希望能够检测到苹果的服务器是否已经停止运行,并弹出一个警报说苹果的服务器不可用。听起来很简单,对吧?我遇到的问题是,我不确定是否有办法判断苹果的服务器是否已停止运行,或者用户只是坐在苹果的“确认应用内购买”alertview上。这主要发生在该委托方法中: - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions 检查事务数组的transactionSt

在我处理购买的过程中,我希望能够检测到苹果的服务器是否已经停止运行,并弹出一个警报说苹果的服务器不可用。听起来很简单,对吧?我遇到的问题是,我不确定是否有办法判断苹果的服务器是否已停止运行,或者用户只是坐在苹果的“确认应用内购买”alertview上。这主要发生在该委托方法中:

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
检查事务数组的transactionState,在开始购买时调用SKPaymentTransactionStatePurchasing委托,在购买完成后调用SKPaymentTransactionStatePurchasing委托。没有指示何时弹出此警报对话框以及用户是否确认,因此在这些情况下,我无法可靠地弹出“不可用”消息


我是遗漏了什么,还是这是正确的?其他人如何处理此问题?

如果事务失败,则调用以下方法:

- (void)failedTransaction:(SKPaymentTransaction *)transaction
    {
       NSLog(@"The error description is:%@",[transaction.error description]);
        if (transaction.error.code != SKErrorUnknown)
        {
            // error!
           //Your time to take over
        }

     }

您应该检查失败的Transaction是否会因为不同的原因被调用。如果您正在寻找特定的存储已关闭,那么这就是我在所有存储工具包回调中所做的

查看存储工具包返回的错误代码

if ( [[error domain] isEqualToString:SKErrorDomain] 
{  
    if ([[[[error userInfo] objectForKey:NSLocalizedDescriptionKey] lowercaseString] isEqualToString:@"cannot connect to itunes store"] )
    {  
       // Show custome message to user that store is not available  
    }  
}
如果要确保-->


很抱歉,我的格式一直不正确。:)

为什么要检查SKErrorUnknown?我还想在这种情况下采取行动吗?你看到我发布的链接了吗..有些情况下,用户会在iTunes弹出窗口中单击取消,,,如果我单击我不想购买…我应该得到弹出窗口吗..无法连接到iTunes?
[error code] == 0