无法在下次启动时成功完成In App购买交易

时间:2011-04-30 05:52:32

标签: iphone ios4 in-app-purchase

对于由于中断(来电等)导致的未完成交易,我在重新启动应用程序时收到更新,因为我正在向支付队列添加观察者。但是,我如何知道哪些是通过线路发送的交易。我试过这个

    for (SKPaymentTransaction *transaction in transactions)
    {
        switch (transaction.transactionState)
        {               
            case SKPaymentTransactionStatePurchasing:               
                //Show a loading View   
                NSLog(@"Purchase Ongoing");

            break;

            case SKPaymentTransactionStatePurchased:
                [self completeTransaction:transaction];
                break;
}

}

    -(void) completeTransaction:(SKPaymentTransaction *) transaction
    {

    NSString *productIdentifier = transaction.originalTransaction.payment.productIdentifier;
    NSLog (productIdentifier);  

    //this line doesn't log anything. I run it in debug mode and I see productIdentifier as InvalidCFString (0x0). I guess it's nill.

    }

这是因为在我的应用被杀之前我无法正常完成交易。在查杀之后,我确实收到了来自Apple的In-App购买成功的消息。只是在我的应用被杀之前我无法完成交易。该交易当时正在进行中。在应用程序被杀之前,试图强制完成事务会导致应用程序崩溃,因为我还没有收到SKPaymentTransactionStatePurchased通知,因此无法完成正在进行的事务。

现在,当我重新启动时,我得到了一些响应,但我无法读取它并解锁我必须使用的功能,因为金额已经记入用户的itunes帐户。如何解决这个问题?

提前致谢。

0 个答案:

没有答案