【发布时间】:2015-12-09 21:44:33
【问题描述】:
我在应用商店中有一个应用,并已确认我的应用内购买适用于最新的官方版本。然而,我的一些应用程序用户很狡猾,他们拥有未发布的 iOS 版本。我的应用的应用内购买是否仍适用于 iOS 测试版?因为至少有一个或两个用户报告他们的应用内购买未正确标记为已购买。
如果您需要详细信息,当我的应用将商品标记为已购买时,不会下载任何内容。它只是在 docs 目录中写入一个文件,并为它们提供无限播放。
更新:
我在 Apple 开发者论坛中看到
“存储工具包流程”是在尝试 购买“应用内购买”项目,以便商店工具包确定 用户的 storekit 帐户有问题 - 对于 例如,当信用卡信息过期时。当这个问题 检测到,用户可以选择被带到 App Store 应用程序来更新他们的帐户信息。它曾经是 StoreKit 会提醒用户并要求他们修复应用程序中的问题 商店应用程序,当检测到问题时。从 iOS 7 开始,这 在尝试实际收费之前,检查不会打扰用户 - 请求下载应用程序或用户尝试下载应用程序时 应用内购买。
因此,我认为我的代码可能提前完成了事务。这是我认为是我的相关代码,并标记了我的怀疑。有人可以仔细检查或澄清吗?
- (void)failedTransaction:(SKPaymentTransaction *)transaction //Working
{
//NSLog(@"failedTransaction.");
if (transaction.error.code != SKErrorPaymentCancelled)
{
// error!
NSLog(@"Transaction error: %@", transaction.error.localizedDescription);
[self finishTransaction:transaction wasSuccessful:NO]; //TODO: Remove this, it may be causing the bug with transaction errors in Multi Path Audio 1.1.4
}
else
{
//NSLog(@"failedTransaction, user just cancelled.");
// this is fine, the user just cancelled
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
}
}
【问题讨论】:
-
除了 9.1 beta 中可能存在的错误,是的,IAP 应该可以工作。也许您的代码做出了一些在 iOS 9 下失败的错误假设。在您的问题中显示您的相关代码,以便人们可以看到您是否做错了什么。
-
好的,谢谢!我用一些可疑代码和更多信息更新了我的问题。
-
另一方面,beta 表示 beta,意思是“如果东西不起作用,就没有权利抱怨”。