我正在完成iOS应用程序的工作,该应用程序允许用户从在线托管应用程序中在线托管的大型多媒体库中浏览,购买和下载项目.图书馆目前有数百种可购买的商品,未来可能会大大扩展.
首先,我打算为库中的每个项目创建一个insidivual应用内购买项目(在iTunes Connect上).但是,我认为创建所有这些数百个应用内购买项目会很麻烦.此外,我希望能够通过我的CMS对可购买项目进行添加和更改,而无需在iTunesConnect上进行更改.
相反,我现在让app用户使用rails app创建一个帐户.当他们去购买商品时,他们首先购买通用的应用内购买商品.该交易完成后,该应用程序将连接到我的rails应用程序,记录购买并下载购买的内容.
让我对这种方法感到紧张的一件事是,用户可能成功地通过Apple进行应用程序内购买,但之后无法成功连接到rails应用程序.在这种情况下,即使用户确实付款,也不会记录购买并且不会下载内容.此外,Apple的内置购买恢复方法不起作用,因为购买项目是通用的.只有我的rails应用程序才会记住用户购买了哪些商品.
所以,我将在整个过程中添加大量错误检查和状态恢复.如果它遇到麻烦,确保它可以恢复.
我只是想把它放在那里,以防任何人有意见或建议分享.
谢谢!
查理
UPDATE
现在已经很久了,但我最终没有使用通用的应用内购买.这似乎是一个太大的风险.毕竟,通过个人应用内购买,Apple会跟踪购买情况并提供恢复方式.因此,利用它而不是强迫自己维护自己的用户数据库和购买数据库是有道理的.
将应用程序购买项目中的所有内容添加到iTC中真是太痛苦了. iTC界面太可怕了.我遇到了很多问题.但最终他们都进入了那里,现在事情的发展或多或少都很顺利.
所以最后,我会说尽管创造所有这些购买都是一种痛苦,但这是值得的.或者说它应该是值得的.如果在iTC中创建购买记录似乎不值得您通过销售它所期望的麻烦,那么您的商业模式可能会遇到更大的问题!
最佳答案 从Apple返回成功的应用内消息后……
1.最好将ProductID存储在字典中,并在成功更新服务器后从字典中删除ProductID.
2.在交易完成之前发现任何事件.
3.更好地跟踪交易,即在服务器端存储交易信息(ProductID,用户,交易收件人).
3.可选择您可以从网站提供服务,因此如果用户在购买应用程序时丢失了钱,用户可以给您发邮件.