【问题标题】:iPhone - How to recognize the iTunes user of my appiPhone - 如何识别我的应用程序的 iTunes 用户
【发布时间】:2010-10-11 11:58:55
【问题描述】:

有些应用程序似乎可以识别 iPhone 的 iTunes 用户。 我需要开发一个支持“订阅”类型的应用内购买的应用。 Apple 希望我的应用程序在每个用户的设备(iPhone、iPod、iPad)中授予订阅。 为此,我可以构建一个服务器端订阅系统,将订阅与我的服务器内刚刚创建的用户绑定。 为了做得更好,我想如果我的应用程序可以知道在 iPhone 上订阅我的服务的 iTunes 用户,它可以将其存储在我的服务器中。 如果用户也在 iPad 上下载应用程序,我的应用程序可以要求服务器了解当前 iPad 用户是否与在 iPhone 上订阅我的服务相同,如果是,也可以在 iPad 上授予服务。 那么,我的应用能否知道哪些 iTunes 用户正在订阅我的服务(通过应用内购买)?

提前致谢

【问题讨论】:

    标签: iphone itunes


    【解决方案1】:

    答案是: 我不能! 因此,在多台设备上管理订阅的唯一方法是构建一种“订阅注册”,让用户注册他/她的订阅,以便他/她可以从其他设备登录并恢复订阅。

    【讨论】:

    • 奥斯卡,你在这个主题上做了更多的工作吗?正如您在评论中的其他地方所述,订阅不会自动恢复。 Apple 的文档声明您必须提供自己的机制来“将这些交易恢复到用户的设备”。既然您不知道用户拥有哪些其他设备,这怎么可能呢?如果您在自己的系统上维护订阅帐户,但无法唯一识别用户及其设备,则没有什么可以阻止用户与其他任何人共享其凭据,从而允许未经授权的设备获得访问权限。
    • 嗨,Oscar,你是怎么解决这个问题的?您是否必须实施自己的用户管理系统才能跨多个设备恢复订阅? :( 我面临同样的问题,因为 Apple 不希望我使用自动续订订阅并将我重定向到“基本”订阅....:/
    【解决方案2】:

    SDK 协议似乎规定,如果您要求并要求用户向您发送其 iTunes 用户帐户 ID,您的应用将被拒绝。

    您必须想办法改用匿名交易 ID。

    【讨论】:

    • 如前所述,它需要“提供您自己的机制来将这些交易恢复到用户的设备上”。所以我可以建立一个用户/密码系统来绑定每笔交易,但这真的很难看!
    【解决方案3】:

    您不必为此知道 iTunes 帐户(事实上,我认为没有办法以有记录的方式找到)。

    在每台设备上,您都可以通过调用 IAP 服务来恢复以前的购买。这将返回使用当前 iTunes 帐户进行的先前购买的列表。您应该与您的应用服务器通信以获取基于这些恢复购买的内容。

    来自IAP Programming Guide

    要恢复交易,您的 应用程序调用支付队列的 restoreCompletedTransactions 方法。 对于每次购买的非消耗品, 之前完成,应用程序 存储生成新的还原 交易。还原事务 包括原件的副本 交易。你的申请 进程恢复事务通过 检索原始交易 并用它来解锁购买的 内容

    【讨论】:

    • 正如 IAP 编程指南所述,这仅适用于“非消耗性购买”。我需要管理“订阅购买”,所以我需要自己实现这个机制。
    • 订阅产品也是非消耗品。恢复购买也适用于这些
    • 你确定吗?从 IAP 编程指南中我读到:“Store Kit 不会自动恢复订阅和消耗品。要恢复这些产品,您必须在购买时将交易记录在您自己的服务器上,并提供您自己的机制来将这些交易恢复到用户的设备。”
    • Philippe,我尝试将订阅恢复到其他设备,但无法识别,因此您无法恢复订阅。
    • 恢复“正常/经典”订阅不起作用。但是,它适用于自动续订订阅。
    猜你喜欢
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多