iphone - 应用内购买服务器模型

标签 iphone cocoa-touch in-app-purchase

我想为 iPad 应用程序启用应用内购买。我想卖的是mp3,我认为它应该是一种非消耗性产品类型。

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

我在谷歌上搜索的大多数文章主要涉及内置模型。

有人可以推荐一些关于在应用程序购买中实现服务器模型的好文章吗? 您能否从高层次上描述一下该过程以及一些该做和不该做的事情?

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

我认为事情会是这样的。

Display list of products to the user by first getting the ids from my server & then sending them to the app store.

I send the selected product ID to the app store & the store returns the product information.

When the user chooses to purchase the store returns a receipt to me which I then pass to my server.

I have to send the receipt back to apple for verification and then back to my server..... then my server passes on the content.

以上总结正确吗?我究竟如何将购买/收据与设备上的用户关联起来并跟踪谁购买了什么?

再次指出一篇像样的文章会很棒,也许可以描述如何最好地实现这一点。

谢谢

最佳答案

这是一个大问题!

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

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

时间线如下:

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

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

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

这有帮助吗?

关于iphone - 应用内购买服务器模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6063073/

相关文章:

iOS 应用内购买无后端

iphone - 如何比较两个NSMutableArray?

javascript - 使用 Titanium Mobile 编译应用程序后 JavaScript 代码会发生什么

iphone - 通过通知执行选择器OnMainThread

iphone - UILabel 不会自动缩小文本以适应标签大小

ios - 删除对象的 CoreDataGeneratedAccessors 似乎没有被删除

ios - iOS 中应用内购买的服务器端验证最佳实践

ios - Swift 应用内购买 : Constant prompt to sign in; incorrectly handling . finishTransaction?

iphone - 在 iOS 上创建发光的文字效果

ios - Xcode,在项目之间共享 h/m 文件?