ios - 有没有什么方法可以在没有应用程序登录的情况下跟踪应用程序购买中的用户

标签 ios iphone in-app-purchase

我正在创建一个使用应用内购买 的应用,我想在我的服务器上跟踪用户购买,这样用户就不必重新下载相同的购买。但是我的客户希望在没有应用程序中的登录模块的情况下做到这一点。
我并不是说没有 iTune/app-store 登录就可以购买。我的意思是我不想让用户在应用程序中登录。
iTune/app-store 是否为我们提供了一些特殊的用户相关的唯一标识符,以了解这是之前下载此购买的同一用户。

示例

假设如果用户从 iPhone 下载了英语语言包,并且当他尝试从具有相同 Apple id 的 iPad 下载相同的语言包时,我们的服务器可以知道这是同一个用户并向他提供他之前的所有购买(是在 iPhone 上下载的英语语言包,并且已经使用应用内购买完成付款)在 iPad 上也是如此。

这就是我认为我可以做到这一点的方式(但只有苹果为用户提供一些唯一的 ID 时这个逻辑才会成功)
因此,如果苹果在我的应用程序购买时提供了一些唯一标识符,那么当用户在 iPhone 上下载英语语言包时以及当他尝试在 iPad 上下载相同的语言包时,我会将其存储在我的服务器上,而不是苹果再次向我提供他的唯一标识符和我将在我的服务器上比较这个 id 并知道我必须让用户下载这个语言包

那么 apple 是否为用户提供 UniqueID 或者我们可以找到用户的 Apple Id(不是密码)?

最佳答案

您要查找的是“restore purchases” ' StoreKit 中的功能。 请注意,并非所有应用内购买都可以通过这种方式恢复。 但我认为在您的情况下 - 购买永久功能 - 您可以使用 iOS 7 new SKReceiptRefreshRequest类。

如果您必须支持旧版本的 iOS,请使用 [SKPaymentQueue restoreCompletedTransactions]( SKPaymentQueue API reference )。

编辑:收据中出现的“购买”取决于产品类型,see tables at bottom of this page

关于ios - 有没有什么方法可以在没有应用程序登录的情况下跟踪应用程序购买中的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20288069/

相关文章:

ios - Storyboard对于访问云的应用程序来说是个好主意吗?

c# - C++ 类型转换为组件 - 保留字符串属性

javascript - iOS App URL Scheme 启动应用或打开应用商店

Android 无法绑定(bind)到服务(在 App-Billing 中)

android - "You already own this item"Google play inapp错误

ios - 取消 Apple 自动续订订阅

ios - 创建用于读取 QR 码的相机叠加层

ios - UITextView 观察文字变化

ios - 如何在 swift 中为标签栏角标(Badge)计数设置动画

iphone - 为什么 AVCaptureVideoOrientation 横向模式会导致静止图像颠倒?