2009-08-29 120 views
1

我已经为应用内购买的沙盒测试创建了测试帐户。我下面这些步骤测试iPhone - 无法测试应用内购买

  1. 已注销的任何现有的账户
  2. 打开应用程序,并开始获得的可用
  3. 启动过程中的产品列表下载产品

    SKPayment *付款= [ SKPayment paymentWithProductIdentifier:productId];

    [[SKPaymentQueue defaultQueue] addPayment:payment];

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

如果我尝试从设置 - >商店登录,它会要求我的信用信息,我敢肯定没有必要。

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

谢谢...

回答

0
  1. 检查canMakePayments
  2. 在模拟器StoreKit只是不回答:你应该测试设备
  3. 您必须至少一名观察员加入SKPaymentQueue
  4. 尝试先询问产品清单(除了您已知道产品ID之外);这听起来很愚蠢,但SK框架并不完美。

另外,在向验证服务器发送{“receipt-data”:...}时,请先用Base64对收据进行编码,然后再将其插入到json对象中。这在任何地方的官方文档中都没有提及:只在几个博客上提及。

+0

1.谢谢。将尝试 2.在设备上进行测试,并且我不会提示uname/pwd 3.已经有观察者了。即失败的交易信息出现的地方 4.仅在开始时获取产品列表。 问题是我没有看到要求uname/pwd的提醒! – lostInTransit 2009-09-02 05:00:06

1

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

+0

应用内购买已开启。要确认,你的意思是我的应用程序ID不应该有*?它不是。而且我使用相同的应用程序ID为我已添加到iTunes连接的产品。 – lostInTransit 2009-09-06 13:26:56

3

好的。这很愚蠢!但希望有人可以从我的错误中学习:) 我正在测试应用程序内购买与adhoc分布配置文件。根据Apple工程师的说法,只要您这样做,测试帐户就会“停止”成为测试帐户。

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

更新

这是不正确的了。它现在可以和adhoc构建一起工作。

来源:使用adhoc构建最近的应用内购买测试。

+0

奇怪的是,我非常肯定我们通过临时构建成功地测试了应用内购买。 – eelco 2009-10-13 05:49:08

+0

这是Apple技术支持人员告诉我的。 – lostInTransit 2009-10-13 07:21:01

+0

我已经从临时发行的应用程序购买和未连接到xcode的调试版本进行测试。 – 2009-11-12 09:26:38

0

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

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

您可能会发现productID没有响应。产品。发生这种情况时,交易将作为用户购买取消进行,因此,绝不会提示登录。