如何使用不可更新的应用程序内购买来支持多种设备?

我正在构build一个iOS应用程序,其中将包含一个具有不续订订阅的IAP。 苹果公司在IAP的概述中提供了这个块头:

您需要向用户拥有的所有设备提供不续订订阅。 非续订订阅不会通过Store Kit自动同步到所有设备; 你必须自己实施这个基础设施。 例如,大多数订阅由外部服务器提供; 您的服务器将需要实现一种机制来识别用户,并将订购购买与购买它们的用户相关联。

我想遵循这个规则:我希望我的用户能够利用他们在其他设备上的一个设备上购买的订阅。 那么我怎样才能在他们的iPhone和iPad上识别同一个用户呢? 我知道你不能使用Apple ID,也不能依赖注册方法。

我刚才发现这个问题 , 那里给出的答案似乎不可行。 必须有别人所做的更优雅的事情。

我有一个Gavin McKenzie给我的build议,这听起来像是我听到的最好的赌注:

购买订阅后,请向用户提供“短代码”。 该代码也将存储在服务器上,并绑定到该用户的帐户。 当他们击中其他设备上的恢复时,请从原始设备和帐户请求短代码,从而将这些设备捆绑在一起。

Gavin进一步build议在类似于蓝牙的“配对”方法中使用这种方法:恢复时,在设备A上启动配对,产生短码并将其推送到服务器。 设备B可以使用该代码。 五分钟后,或配对屏幕被解除时,代码被删除。

我不知道如果你想要恢复到同一个设备,比如在删除电话和恢复之后,这种情况会怎样。 但这感觉像一个好的开始。

如果您可以放弃对iOS 5.0以下版本的支持,则可以使用iCloud在用户设备上同步键值对。

看到这个:

http://iphonedevsdk.com/forum/business-legal-app-store/88698-floored-by-new-rejection.html

显然你可以在购买之前要求用户名/密码。 这是唯一有道理的方法。 一个代码可以被成千上万的人共享,这是不好的。

看看Frac.as。 它做了上面提到的“短代码”配对的一个变种,但有一些内置的智能防止滥用。 这是一个SaaS API,有一个慷慨的免费层。