【问题标题】:Check In App Purchase with a web service使用 Web 服务签入应用程序购买
【发布时间】:2014-04-21 11:03:20
【问题描述】:

我需要设计一个使用应用内购买的应用。 在这个应用程序中,我必须使用 StoreKit(显然!),并且我想存储购买应用程序的人的列表并使用我自己的网络服务检查他们。这是因为一些越狱功能会欺骗应用商店

我所做的如下:

1.如果用户想使用特殊功能但尚未购买:

1.1 首先我检查用户默认设置并检查用户是否购买了该功能。

1.2 如果没有,我会带他/她的苹果专卖店并让他/她购买。

1.3 确认后,我将数据发送到我的网络服务并将其保存在用户默认值中。

2。如果用户想使用特殊功能并已购买:

2.1 首先检查用户默认值中是否存储了任何内容

2.2 如果什么都没买,请显示他/她的页面商店

2.3 从商店收到已经购买的消息后,我使用我的网络服务检查它

2.4 如果网络服务确认已购买消息,那么我让用户使用功能并将其保存在用户默认值中。

我在选择适用于所有 Apple 设备的唯一标识符时遇到问题。

【问题讨论】:

  • identifierForVendor 应该可以正常工作

标签: ios objective-c in-app-purchase app-store


【解决方案1】:

您不需要识别设备,您需要验证交易。用户应该能够跨重新安装和跨设备恢复购买。

In-App Purchase programming guide 状态 -

坚持使用您自己的服务器将收据的副本连同某种凭据或标识符一起发送到您的服务器,以便您 可以跟踪哪些收据属于特定用户。为了 例如,让用户通过电子邮件向您的服务器表明自己的身份,或者 用户名,加上密码。不要使用 identifierForVendor 属性 UIDevice——你不能用它来识别和恢复由 同一用户在不同的设备上,因为不同的设备有 此属性的不同值。

因此,一旦您有了收据,就可以将其发送到网络服务。您可以使用共享密钥或公钥/私钥对来签署收据,以便您的服务器可以验证它。

【讨论】:

  • 我还是不知道用什么作为唯一标识符?苹果的收据是唯一标识符吗?
  • 来自 iTunes 商店的收据包含交易的唯一标识符 - original_transaction_id - 请参阅 developer.apple.com/library/ios/releasenotes/General/…。如果您想进一步识别特定用户,则需要向他们询问电子邮件地址或用户名。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-04
  • 2013-02-04
  • 2011-09-06
相关资源
最近更新 更多