2015-09-13 48 views
1

我在应用程序商店有一个应用程序,并确认我的应用程序内购买工作的最新正式版本。然而,我的一些应用用户很狡猾,他们有iOS的未发布版本。我的应用程序的应用程序内购买是否仍适用于Beta版iOS?因为至少有一个用户可能报告说他们的应用内购买没有被标记为正确购买。应用内购买是否适用于拥有iOS测试版的用户?

如果你想细节,没有什么太多的时候购买我的应用,标志着该项目被下载。它只是在文档目录中写入一个文件,并为它们提供无限次的播放。

UPDATE:

我已经在苹果开发者论坛上读到

的“存储套件流”,是在尝试的时候采取了过程 购买的“在应用程序内购买“项目,以便商店套件确定 用户的storekit帐户存在问题 - 例如对于 示例,信用卡信息已过期。当检测到此问题 时,用户可以选择将其带到App Store 应用以更新其帐户信息。过去,StoreKit会提醒用户,并要求他们在检测到问题时,修复App Store中的问题。与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]; 
    } 
} 
+1

除了9.1测试版中可能存在的错误,是的,IAP应该可以工作。也许你的代码做出了一些在iOS 9下失败的错误假设。在你的问题中显示你的相关代码,这样人们可以看到你是否做了不正确的事情。 – rmaddy

+0

好的,谢谢!我用一些可疑代码和更多信息更新了我的问题。 –

+0

另一方面,beta意味着beta,意思是“没有权利抱怨,如果东西不起作用”。 – gnasher729

回答

1

绝对必须在您将货物交付给用户时调用finishTransaction。行动的顺序是:苹果公司收取用户的钱。您交付货物。你调用finishTransaction。如果您没有交付货物,那很好,Apple会记住并再次询问您,直到您致电finishTransaction。如果您在未交付的情况下致电finishTransaction,则您正在欺骗客户。

如果与店与用户的交互,而无需用户交出钱揣进,你将永远不会被告知购买。

+0

我在这里阅读了StackOverflow以及其他一些应该在三个地方调用finishTransaction的地方:SKPaymentTransactionStatePurchased,SKPaymentTransactionStateRestored,SKPaymentTransactionStateFailed。它是否正确? http://stackoverflow.com/questions/4988663/skpaymentqueue-addtransactionobserver-asking-for-app-store-password-on-startup-a –

+0

因此,我可能会创建一个新的测试,以确保货物在调用之前已经交付finishTransaction。感谢您的建议! –

+0

这是最终的正确答案。由于我的检查方式,我的商店套件逻辑没有在iOS 9中返回准确的响应,并且我必须添加额外的逻辑以确保在完成交易之前购买和交付商品。谢谢! –