0

我有一个实时应用程序的问题,其中不完整的购买被错误地处理。我正在尝试测试我的新代码以确保可以解决此问题,因此我下载了实时应用程序,导致问题,然后加载我的开发应用程序(或 Ad-Hoc 应用程序),希望 StoreKit Observer 能够捕获购买通知不完整。无论我如何执行此操作(开发或 Ad-Hoc),观察者都不会触发通知。

我的一般问题是:如何在 App Store 测试环境中模拟不完整和中断的购买?

我更具体的问题是:我可以模拟用户必须离开应用程序才能在应用商店确认他们当前的信用卡密码的具体问题吗?

4

2 回答 2

1

根据这个有用的页面

测试中断的事务

在您的交易队列观察者的 paymentQueue:updatedTransactions: 方法中设置一个断点,以便您可以控制它是否交付产品。然后在测试环境中像往常一样进行购买,并使用断点暂时忽略事务——例如,通过使用 LLDB 中的线程返回命令立即从方法返回。终止并重新启动您的应用程序。Store Kit 在启动后不久再次调用 paymentQueue:updatedTransactions: 方法;这一次,让你的应用正常响应。验证您的应用程序是否正确交付产品并完成交易。

希望这可以帮助某人。

于 2013-11-07T19:58:22.013 回答
0

对于您的一般问题:

SKPaymentTransaction提供了几种交易状态,例如SKPaymentTransactionStateFailed 根据文档,您可以查看该error属性以查看发生了什么。例如,您可以-(void)paymentQueue:(SKPaymentQueue *)updatedTransactions:(NSArray *)transactions像这样在回调中检查它

-(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions{
    for (SKPaymentTransaction * transaction in transactions) {
        switch (transaction.transactionState)
        {
            case SKPaymentTransactionStateFailed:
                ...
                break;
            default:
                break;
        }
    };
}

希望这可以帮助。

于 2013-11-07T15:16:56.053 回答