ios - 应用内购买是否适用于拥有 iOS 测试版的用户?

标签 ios iphone beta in-app

我在应用商店中有一个应用,并且已确认我的应用内购买适用于最新的官方版本。然而,我的一些应用程序用户很狡猾,他们使用的是未发布的 iOS 版本。我的应用程序的应用程序内购买是否仍适用于 Beta iOS 版本?因为至少有一个或两个用户报告说他们的应用内购买没有被正确标记为已购买。

如果您想了解具体情况,当我的应用程序将商品标记为已购买时,不会下载太多内容。它只是在 docs 目录中写入一个文件,并让他们无限播放。

更新:

我在 Apple 开发者论坛上看到

The “store kit flow”, is a process taken at the time of an attempt to purchase an "in app purchase" item such that the store kit determines that there is a problem with the user’s storekit account - for example, when the credit card information has expired. When this issue is detected, the user is given the option to be taken to the App Store app to update their account information. It used to be that the StoreKit would alert the user and ask them to fix the issue in the App Store app, when the issue was detected. Beginning with iOS 7, this check won’t bother the user until an actual charge is attempted - either when an app is requested for download or when a user attempts an in app purchase.

因此,我认为我的代码可能提前完成了交易。这是我认为是我的相关代码,并标记了我的怀疑。有人可以仔细检查或澄清吗?

- (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];
    }
}

最佳答案

您绝对必须仅在将 cargo 交付给用户后调用 finishTransaction。 Action 顺序是:苹果拿走用户的钱。您发货。你调用 finishTransaction。如果你不发货,没关系,Apple 会记住并再次询问你,直到你调用 finishTransaction。如果你在没有交付的情况下调用 finishTransaction,你就是在欺骗客户。

如果用户与商店的互动在用户没有交钱的情况下结束,您将永远不会被告知购买的消息。

关于ios - 应用内购买是否适用于拥有 iOS 测试版的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32555503/

相关文章:

reactjs - 如果需要 beta beta 功能,则将 Beta 版本的 Material-UI 用于包含大量内容的长期 React Web 应用程序

iphone - 表格单元格 - 如何在用户导航回 View 时关闭单元格的选定状态?

ios - 多重纹理的最有效方法-iOS,OpenGL ES2,优化

ios - 从 nsdictionary 获取一个值

iphone - 使用导航后退按钮按 iOS Swift 时显示 Admob 插页式广告

ios - 分发 iOS 测试版应用程序的最简单方法

ios - 是否可以在 TestFlight 中同时激活内部和外部构建?

iphone - 增加 tabBarItem 图像大小

iphone - 数据排序

ios - 关于哪些信息可以存储在 Info.plist 中的一些示例?