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