【问题标题】:iPhone - cannot test in-app purchasesiPhone - 无法测试应用内购买
【发布时间】:2009-08-29 05:13:41
【问题描述】:

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

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

    SKPayment *payment = [SKPayment paymentWithProductIdentifier:productId];

    [[SKPaymentQueue defaultQueue] addPayment: payment];

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

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

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

谢谢...

【问题讨论】:

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


    【解决方案1】:

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

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

    更新

    这不再是真的了。它现在应该也适用于临时构建。

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

    【讨论】:

    • 奇怪,我很确定我们成功地测试了使用临时构建的应用内购买。
    • 这是 Apple 技术支持人员告诉我的。
    • 我已经测试了从 ad-hoc 发行版和未连接到 xcode 的调试版本购买应用程序。
    • 你也可以在Release模式下测试。我已经做过很多次了。
    • 即使我在 Ad-Hoc 发行版的应用程序购买中进行了测试......也没有遇到这种问题......
    【解决方案2】:

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

    【讨论】:

    • 应用内购买已开启。确认一下,您的意思是我的应用程序 ID 不应该有 *?它不是。我对添加到 iTunes Connect 的产品使用相同的应用程序 ID。
    【解决方案3】:
    1. 检查 canMakePayments
    2. 在模拟器中,StoreKit 只是没有响应:您应该在设备上进行测试
    3. 您必须将至少一名观察者添加到 SKPaymentQueue
    4. 尝试先询问产品列表(除了您已经知道productId的事实);听起来很傻,但 SK 框架远非完美。

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

    【讨论】:

    • 1.谢谢。将尝试 2. 在设备上进行测试,但我没有收到 uname/pwd 的提示 3. 已经有观察员了。这就是失败的交易信息出现的地方 4. 仅在开始时获取产品列表。问题是我没有看到要求 uname/pwd 的警报!
    【解决方案4】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-02-08
      • 2012-01-21
      • 2013-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多