我已经在设备设置中退出了商店。
我只在我的应用程序中输入了用户凭据。
我已经设置了一个全新的(实际上大约4次)测试用户。
为什么这条消息一直弹出?
这是否与iOS 5、自动应用程序同步或iCloud有关?
我已经在设备设置中退出了商店。
我只在我的应用程序中输入了用户凭据。
我已经设置了一个全新的(实际上大约4次)测试用户。
为什么这条消息一直弹出?
这是否与iOS 5、自动应用程序同步或iCloud有关?
我已经在处理这个问题一个星期了,试图使用美国/加拿大的账户但一直没有成功。最终我找到了这篇帖子并且它有效: http://iphonedevsdk.com/forum/iphone-sdk-development/63008-in-app-purchase-test-account-verification-required-cant-get-passed.html 你需要一个测试账号,该账号从未与信用卡相关联,从未通过设备登录iTunes Store或App Store,如果你登录iTunes或同意任何App Store相关内容,那么测试账户将会失效并再也不能使用。
因此,为了测试你的应用内购买应用程序,你需要使用一个没有信用卡的新账户。退出商店,并且只在你正在测试的应用程序中使用你的新账户。
更新:在2013年9月iTunes进行长时间系统维护后,只有美国的测试账户可以进行测试购买。
我自己也曾经遇到过这个问题,最终我找到了一个可行的解决办法...
希望这可以解决你的问题...
除了以上的答案,还需要注意以下几点:
1)从设备中卸载您的应用程序。
2)在iTunes Connect上创建一个新的测试帐户并验证其电子邮件地址。永远不要为此测试帐户添加任何支付信息,不管是在线、在iTunes上还是在您的设备上。这样做可能会使您的测试帐户无效(并触发“验证付款信息”的恶性循环)。也永远不要在沙盒之外使用此测试帐户。
3)从您的设备上注销App Store。不要通过“设置”>“iTunes&App Store”在您的设备上重新登录App Store。稍后您的应用将要求您输入登录凭据(请参见5-6点)
4)重新安装您的应用程序。
5)尝试进行应用内购买。现在应提示您输入用户名和密码(因为您已从App Store注销)
6)输入您的用户名和密码:您不应该看到可怕的“需要验证:在您购买之前,您必须验证您的付款信息”消息,购买应该成功。
您需要做的是:
从交易的transactionReceipt属性中检索收据数据并使用base64编码对其进行编码。创建像这样的json:
{
"receipt-data" : "(receipt in base 64 encoding)"
}
向生产验证URL发出帖子:
https://buy.itunes.apple.com/verifyReceipt
对于沙盒环境:
https://sandbox.itunes.apple.com/verifyReceipt
响应如下:
{
"status" : 0,
"receipt" : { ... }
}
如果状态键的值为0
,则这是一个有效的收据。
如果值不是0
,则此收据无效。
Swift 3
在你的项目中任意位置插入以下临时代码:
for transaction: AnyObject in SKPaymentQueue.default().transactions {
guard let currentTransaction: SKPaymentTransaction = transaction as? SKPaymentTransaction else {return}
SKPaymentQueue.default().finishTransaction(transaction as! SKPaymentTransaction)
}
这将清除支付队列。如果可以的话,请确保运行它比viewDidLoad晚得多。我设置了一个按钮来触发它。运行了几次后,就删除了代码。再也没有令人烦恼的验证弹窗了。
创建一个加拿大测试用户可以解决这个问题。
如果您在购买第四个IAP项目时遇到问题。
看起来,每个测试帐户不能购买超过一个应用程序的3个项目。您可以从itunesconnect.apple.com->管理用户->测试用户创建一个新的测试帐户来测试您的第四个IAP项目。
我在编程中遇到了同样的问题,花费了数小时才发现iTunes Connect测试账户的国家/地区和您的设备/模拟器必须相同。
请验证一下,因为这解决了我的问题。
为美国注册一个新的测试用户。您可以使用任何电子邮件地址。
在设置下注销。 删除应用程序。 通过xCode再次启动它, 在应用程序中使用您的新用户登录。
可能会显示您不在美国并打开浏览器,请关闭浏览器并重新启动。
现在应该可以正常工作了。