App以非标准方式启动In App Purchase流程

时间:2012-10-10 17:17:31

标签: ios in-app-purchase

Apple拒绝了我的申请,理由如下: “app以非标准方式启动In App Purchase流程。

应用首先要求登录,这是错误的订单,而不是首先显示项目描述并在用户点击确定后要求登录。 “

我已经检查了我的代码,但它与我的其他应用程序相同,其中应用内购买正常。然后我更改了包ID和productID(从我的其他应用程序设置包ID),它运行正常!

我觉得这很奇怪。有人有这个问题吗?你能救我吗?

UPD:

在调试器中,我看到了这个错误:

“完成交易期间出现意外异常:无法完成购买交易”

此时代码发生在代码中:

    @try 
    {
        [[SKPaymentQueue defaultQueue] finishTransaction: transaction]; 
    }
    @catch (NSException *exception) 
    {
        NSLog(@"Unexpected exception during finish transaction: %@", exception);
    }

2 个答案:

答案 0 :(得分:7)

您的错误消息似乎表明您正在尝试完成状态为SKPaymentTransactionStatePurchasing的交易。

您应首先通过[transaction transactionState]检查交易状态,以确保交易是:

  

SKPaymentTransactionStateFailed

     

SKPaymentTransactionStatePurchased

     

SKPaymentTransactionStateRestored

有关进一步说明,请参阅Apple文档:

  

您的应用程序应从收到付款队列通知的交易观察员调用此方法。调用finishTransaction:对事务将其从队列中删除。您的应用程序应该在完成处理事务并解锁用户购买的功能后才调用finishTransaction:

     

调用finishTransaction:对SKPaymentTransactionStatePurchasing状态中的事务抛出异常。

答案 1 :(得分:0)

是的,我解决了这个问题。这很奇怪,但是在itunesconnect.apple.com重新创建我的游戏可以帮助我。