2011-06-02 60 views
1

我想在我的服务器中记录购买历史记录。(iphone)inApp购买何时在自己的服务器上登录购买历史记录?

问题是,
直到购买完成我无法登录了。(因为购买可能会失败)
但是,如果我购买的完成后,记录它,用户可以停止应用程序和应用程序可能无法发送购买历史消息到服务器。

我原本以为用户验证收据时(当我的服务器从苹果服务器得到收据验证时)“记录购买历史”。
但用户可能会多次通过收据验证阶段而未实际完成购买? (我不知道这件事)

有推荐的方式来存储应用程序内购买历史服务器模型?

+0

如果你是阻止当用户在应用程序内购买正使UI,一种解决方案是购买后成功完成,然后才使得UI更新您的服务器(通过用活动指标去除一些覆盖图)。 – 2011-06-02 09:01:52

回答

0
  1. 购买完成后,您可以使用NSUserDefaults临时保留购买日志,然后将其同步到服务器。
  2. 您可以阻止用户界面,直到购买完成并将购买日志推送到服务器。
+0

主页按钮退出应用程序的情况如何? – eugene 2011-06-02 09:27:43

+0

如果您使用选项1并且用户退出应用程序,您的日志仍将保留在NSUserDefaults中。它不受终止应用程序的影响。 – 2011-06-02 09:30:45

+0

这是一个简单的教程,介绍如何使用NSUserDefaults保存/检索数据:http://www.icodeblog.com/2008/10/03/iphone-programming-tutorial-savingretrieving-data-using-nsuserdefaults/ – 2011-06-02 09:31:24

0

购买交易完成

之前如果aplication变为无效,您应该注册到自己的服务器,“交易”试了采购过程,当应用程序被激活

对于您必须使用SKPaymentTransaction :

[[SKPaymentQueue defaultQueue] addPayment:payment];

保存到自己的服务器,如果全成

SKPaymentTransaction *transaction = <# The current payment #>; 
SKPaymentQueue *queue = [SKPaymentQueue defaultQueue]; 

[defaultQueue finishTransaction:transaction;] 

如果不是

[defaultQueue restoreCompletedTransactionsWithApplicationUsername