在App Purchasing服务器模型中

时间:2011-05-19 18:17:07

标签: iphone cocoa-touch in-app-purchase

我想在app中购买ipad应用程序。我想卖的是mp3,我认为它应该是非消费类产品。

阅读完苹果指南后,似乎达到此目的的最佳方法是不使用内置模型,因为每次我有新内容时都需要我重新提交捆绑的应用程序。这让我看到了服务器模型,它似乎具有更高的复杂性。

我写的大部分文章主要涉及内置模型。

有人可以在应用程序购买中推荐一些关于实现服务器模型的好文章吗? 你能不能用一些做什么和不该做的来描述高级别的讨论?

据我所知,到目前为止,我需要在Apple商店和我自己的服务器上注册我的产品ID,并且需要自己跟踪购买情况。

我认为这会有点像这样。

  

首先从我的服务器获取ID并向用户显示产品列表。然后将它们发送到应用程序商店。

     

我将所选的商品ID发送到应用商店&商店返回产品信息。

     

当用户选择购买商店时,我会将收据返回给我,然后将其传递给我的服务器。

     

我必须将收据发回苹果进行验证,然后返回我的服务器.....然后我的服务器传递内容。

以上摘要是否正确?我如何将购买/收据与设备上的用户关联起来并跟踪谁购买了什么?

再一次指向一篇体面的文章的指针会很棒,也可能是对如何最好地表达这一点的描述。

由于

1 个答案:

答案 0 :(得分:10)

这是一个很大的问题!

幸运的是,当用户购买非消费品应用内购买时,购买仍然与该用户的Apple ID相关联。您可以通过向Apple询问用户购买的产品标识符列表,轻松恢复应用中的内容。

我已经在rails上使用ruby设置了服务器内容交付系统。服务器上的每个产品都有一个ios_product_identifier属性,该属性对应于在iTunes connect上创建的应用内购买产品。

以下是时间表:

  • 用户在应用内进行应用内购买
  • 购买已在应用中确认
  • 该应用程序记录本地购买
  • 应用程序将购买的产品ID发送到我的服务器
  • 我的服务器对请求进行身份验证,接收产品ID,并使用匹配的内容进行响应

您的服务器无需跟踪谁购买了什么,因为Apple会这样做。您只需确保您的应用仅在购买产品时(或在之前购买后恢复)从服务器请求数据。

您可以在this documentation page底部阅读有关恢复产品的信息。您基本上会向Apple的StoreKit对象之一发送消息,它会重新演绎已购买的非消耗品的购买过程。

这有帮助吗?