我已经为应用内购买的沙盒测试创建了一个测试帐户。我正在按照这些步骤进行测试
开始下载产品的过程
SKPayment * payment = [SKPayment paymentWithProductIdentifier:productId];
[[SKPaymentQueue defaultQueue] addPayment:payment];
现在理想情况下我应该被要求输入用户名/密码。但我没有提示任何事情,交易失败(显然是因为我没有登录)
如果我尝试从“设置” - >“商店”进行登录,则会询问我确信不需要的信用信息。
有人可以帮我解决这个问题。
...谢谢
答案 0 :(得分:3)
确定。这太蠢了!但希望有人能从我的错误中吸取教训:) 我正在使用adhoc分发配置文件测试应用内购买。根据Apple工程师的说法,一旦您这样做,测试帐户就会“停止”成为测试帐户。
应用内购买只能通过在调试模式下通过XCode启动应用来测试!
<强>更新强>
这不再是真的。据说它现在也适用于adhoc构建。
来源:最近使用adhoc版本测试应用内购买。
答案 1 :(得分:1)
确保您在配置文件中启用了应用内购买
答案 2 :(得分:0)
此外,在向验证服务器发送{“receipt-data”:...}时,请在将收据插入json对象之前使用Base64对收据进行编码。在任何地方的官方文档中都没有提到这一点:仅在几个博客上。
答案 3 :(得分:0)
我遇到了同样的问题。正如Oleg所建议的那样,问题是productID无效。在
设置一个断点- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response and check response.products.
您可能会发现productID不在response.products中。发生这种情况时,交易将在用户取消购买时继续进行,因此永远不会提示登录。