1

我正在尝试使用应用内购买来测试我的应用程序。我创建了功能、测试用户、从 iPhone 上的 iTunes 注销并使用了开发人员证书。在调试模式下从 XCode 加载应用程序。

当我点击“购买”按钮时,我通过了所有互联网可用性检查,canMakePayments 并致电

SKPayment *payment = [SKPayment paymentWithProductIdentifier:featureId];
[[SKPaymentQueue defaultQueue] addPayment:payment];

但我看到的只是一个待定视图,几分钟后它失败了

- (void) failedTransaction: (SKPaymentTransaction *)transaction
{   
    if (transaction.error.code != SKErrorPaymentCancelled)      
    {       
        NSLog(@"failedTransaction");
    }   
    [[MKStoreManager sharedManager] paymentCanceled];
    [[SKPaymentQueue defaultQueue] finishTransaction: transaction]; 
}

请建议我应该朝哪个方向找出问题以及我应该检查什么。

PS检查了所有有关SO的相关问题,但都没有运气。

4

1 回答 1

0

在这里你有一些想法:

  1. 在允许用户进行购买之前加载产品。您需要做的第一件事是 SKProductsRequest 并确保可以购买您提供的产品。

  2. 区分错误,检查 SKError.h 以查看商店可以返回的不同类型的错误。这样,您将对正在发生的事情有更清晰的了解

  3. 一些错误,如 -1003,没有记录在案,它们在沙盒环境中似乎是奇怪的情况。

  4. 对于这些错误,请确保您:

    • 使用正确的测试用户。
    • 已在 iTunes 连接中正确配置产品。
    • 从商店注销并全新安装应用程序。仅在购买确认弹出窗口中要求您登录时才登录。
    • 如果失败,请重置网络设置,全新安装应用程序并再次测试。
    • 如果失败,请重置所有设置,全新安装应用程序并再次测试。
    • 如果失败,请重置您的设备,全新安装应用程序并再次测试。

最后,看看这些页面:

http://troybrant.net/blog/2010/01/invalid-product-ids/

http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/

于 2011-07-20T02:57:47.550 回答