从登录 UIAlertView 取消时,应用内购买不发送 SKPaymentCancelled

Posted

技术标签:

【中文标题】从登录 UIAlertView 取消时,应用内购买不发送 SKPaymentCancelled【英文标题】:In-App Purchase doesn't send SKPaymentCancelled when cancelling from login UIAlertView 【发布时间】:2011-07-03 05:00:59 【问题描述】:

我正在编写一个使用应用内购买的应用程序。它目前能够检索产品 ID,我可以成功地测试应用内购买直到完成。

我遇到的问题是错误处理。我想要做的是在交易失败时显示一个 UIAlertView,只要它没有被 SKPaymentCancelled 失败,在这种情况下,它只会在购买前默认恢复到正常状态。问题是,如果我单击“立即购买”按钮,然后单击“确定”进行购买,商店会询问我的用户名和密码。如果我此时单击取消,则不会发送 SKPaymentCancelled。相反,它会显示我的 UIAlertView,这意味着它不会将此视为已取消的付款。我想知道我应该如何处理这种情况,因为我不希望在用户取消时弹出警报,即使在登录屏幕上也是如此。

谢谢。

【问题讨论】:

【参考方案1】:

您是否不小心尝试使用 LIVE iTunes 帐户而不是测试帐户?我刚刚在我当前的项目中使用沙盒进行了尝试,如果您错误地使用了 LIVE 帐户,那么当您取消时会收到 SKErrorUnknown。

同样,它可能是沙盒正在运行 - 我已经忘记了沙盒“临时”问题导致项目停机的时间有多少。

【讨论】:

我没有使用 LIVE iTunes 帐户。它绝对是测试用户,正如我在帖子中所说,我可以通过测试用户进行购买。我做了一些更多的测试,发现它在取消登录时设置了 SKErrorUnknown 类型。现在,我刚刚将我的代码设置为在收到 SKErrorUnknown 时不刷新 UIAlertView。如果您有任何其他建议,我很乐意听到。感谢您的意见。 今天早上我看到沙盒出现各种奇怪的错误,它工作了大约 5 分钟,现在我得到的只是错误 -1003。我会在 bugreport.apple.com 上提交一个错误,因为我的猜测是他们已经破坏了某些东西,并且可能已经知道也可能不知道,这取决于它是否也影响了任何实时服务。他们通常很擅长回应。 谢谢罗杰。我会这样做的。 尝试创建一个新的测试用户 - 刚刚为我清除了它。不知道老测试用户是不是看错了live store——它不喜欢那样。 我试过了。从登录屏幕退出时出现同样的错误。我已经向 Apple 提交了一个错误。

以上是关于从登录 UIAlertView 取消时,应用内购买不发送 SKPaymentCancelled的主要内容,如果未能解决你的问题,请参考以下文章

正在进行应用内购买时显示 UIAlertView

Android 应用内结算:退款的应用内购买未取消

IAP iOS UIAlertView 取消按钮

UIAlertView 输入 Apple ID 和密码 IAP

在 iOS 7 原生登录弹出窗口中处理取消的选择

由于应用内购买而被应用商店拒绝