适用于iPhone App的应用内购买服务器

时间:2010-07-17 23:01:05

标签: iphone web-services in-app-purchase

我的公司正在寻求为iPhone应用程序实施大规模的应用内购买模式。 我们最大的问题是我们不想使用像Urban Airship这样的服务,因为它不能很好地与我们的商业模式和应用程序本身的性质相结合。

所以现在我们正在设置自己的服务器来处理应用内购买通信以及提供购买的内容。我们没有解锁应用程序中已存在的内容,并且将下载相对较大的附加内容。

是否有任何好的资源可以了解有关服务器端组件的更多信息。我对StoreKit的工作方式非常熟悉,但服务器端的通信对我来说是一个谜。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:4)

我通过为可购买的内容进行简单的plist + zip文件下载来实现这一点。 plist有一份产品清单。每个版本的应用都有一个plist文件,因为在我的情况下,根据用户的版本,内容有时会有差异。

此方案还支持单个内容项的版本控制,因为有时您想要更改商店中的某个项目。

我不遵循Apple的购买然后下载指南。我做下载 - 购买 - 解锁。我对购买内容的人太紧张了,然后不得不等待它下载。 (我的内容文件非常大。)

以下是它的工作原理:

  1. 应用程序自行下载.plist。 (MyApp_2.1.plist)
  2. 打开.plist,检查它具有的每个内容项的版本。假设该应用程序当前具有内容A的版本1和内容B的版本5.上面的plist文件告诉它当前店面应该具有A的版本1,B的版本6和C的版本7.因此该应用程序下载B和C的内容。
  3. 内容存储在zip文件中。就我而言,这些是具有XML文件,音频和图形内容的游戏关卡。还有一个包含该游戏级别元数据的.plist,其中包括版本号和该项目的AppStore ID。该应用程序解压缩内容,然后将其作为锁定项目显示在店面中。如果用户已经购买了它,那么他们会自动获得更新的内容。如果他们购买它,那么我当时解锁内容。
  4. 这很简单,可以使用任何CMS(甚至是基于纯文件的Web服务器)完成,并支持跨应用程序的多个版本的多个版本的内容。

    如果你想看到用户界面,我为此做的应用就是一款名为Lexitect的游戏,你可以从UI的角度看看它是如何组合在一起的。 (它是免费的)