1

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

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

    SKPayment *payment = [SKPayment paymentWithProductIdentifier:productId];

    [[SKPaymentQueue defaultQueue] addPayment: payment];

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

如果我尝试从“设置”->“商店”登录,它会询问我的信用信息,我确信这不是必需的。

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

谢谢...

4

4 回答 4

3

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

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

更新

这不再是真的了。据说它现在也可以与临时构建一起正常工作。

资料来源:最近使用临时构建测试应用内购买。

于 2009-09-26T06:05:11.583 回答
1

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

于 2009-09-05T19:32:25.437 回答
0

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

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response and check response.products. 

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

于 2010-01-23T07:22:26.290 回答
0
  1. 检查 canMakePayments
  2. 在模拟器中,StoreKit 只是没有响应:您应该在设备上进行测试
  3. 您必须至少将一名观察者添加到 SKPaymentQueue
  4. 尝试先询问产品列表(除了您已经知道 productId 的事实);听起来很傻,但 SK 框架远非完美。

此外,当将 {"receipt-data":...} 发送到验证服务器时,请在将收据插入 json 对象之前使用 Base64 对其进行编码。这在任何地方的官方文档中都没有提到:仅在几个博客上。

于 2009-09-01T22:08:04.977 回答