iPhone - 无法测试应用内购买

时间:2009-08-29 05:13:42

标签: iphone iphone-sdk-3.0 in-app-purchase

我已经为应用内购买的沙盒测试创建了一个测试帐户。我正在按照这些步骤进行测试

  1. 退出任何现有帐户
  2. 打开应用并开始获取可用产品列表
  3. 开始下载产品的过程

    SKPayment * payment = [SKPayment paymentWithProductIdentifier:productId];

    [[SKPaymentQueue defaultQueue] addPayment:payment];

  4. 现在理想情况下我应该被要求输入用户名/密码。但我没有提示任何事情,交易失败(显然是因为我没有登录)

    如果我尝试从“设置” - >“商店”进行登录,则会询问我确信不需要的信用信息。

    有人可以帮我解决这个问题。

    ...谢谢

4 个答案:

答案 0 :(得分:3)

确定。这太蠢了!但希望有人能从我的错误中吸取教训:) 我正在使用adhoc分发配置文件测试应用内购买。根据Apple工程师的说法,一旦您这样做,测试帐户就会“停止”成为测试帐户。

应用内购买只能通过在调试模式下通过XCode启动应用来测试!

<强>更新

这不再是真的。据说它现在也适用于adhoc构建。

来源:最近使用adhoc版本测试应用内购买。

答案 1 :(得分:1)

确保您在配置文件中启用了应用内购买

答案 2 :(得分:0)

  1. 检查canMakePayments
  2. 在模拟器中,StoreKit只是没有响应:您应该在设备上进行测试
  3. 您必须至少有一名观察员添加到SKPaymentQueue
  4. 首先尝试询问产品清单(除了您已经知道productId的事实);听起来很傻,但SK框架远非完美。
  5. 此外,在向验证服务器发送{“receipt-data”:...}时,请在将收据插入json对象之前使用Base64对收据进行编码。在任何地方的官方文档中都没有提到这一点:仅在几个博客上。

答案 3 :(得分:0)

我遇到了同样的问题。正如Oleg所建议的那样,问题是productID无效。在

设置一个断点
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response and check response.products. 

您可能会发现productID不在response.products中。发生这种情况时,交易将在用户取消购买时继续进行,因此永远不会提示登录。