我正在制作一个应用程序,其中有书籍和书籍有音频和视频服务。
客户想要在应用程序的购买。
下面是In将如何工作。
如果用户想购买这本书,用户将购买这本书,一旦交易完成,自动压缩文件将被下载(从我的服务器,我正在添加图像,视频,音频为书)。
一旦我有了拉链,一旦下载完成,我就不加拉链了。
对我来说,问题是如何识别用户在购买之前是否购买了这本书。
今天,用户A支付了图书B的费用。我如何才能获得用户A购买了书籍的信息?
如果我可以有用户注册系统,我可以通过我的系统的用户I来识别用户。
有些人说,将图书id保存在NSUserDefaults中,但我担心如果我删除应用程序并重新安装,我应该免费下载图书B。
我只想知道,我如何跟踪哪个用户下载了哪本书。
我正在为iOS 6和7开发应用程序--都是
发布于 2014-03-29 11:51:44
编辑:
您的应用程序通过调用restoreCompletedTransactions方法SKPaymentQueue来启动进程。这将向App发送一个请求,以恢复应用程序完成的所有事务。如果应用程序为其支付请求的applicationUsername属性设置了一个值(如“检测不规则活动”中所述),则在还原事务时使用restoreCompletedTransactionsWithApplicationUsername:方法提供相同的信息。App为以前完成的每个事务生成一个新事务。还原的事务具有对原始事务的引用: SKPaymentTransaction实例具有originalTransaction属性,收据中的条目具有原始事务标识符字段。您的事务队列观察者被调用时状态为SKPaymentTransactionStateRestored,用于每个恢复的事务,如“等待restored处理事务”中所描述的那样。此时您所采取的操作取决于应用程序的设计。
。
NSMutableArray *productIDsToRestore = <# From the user #>;
SKPaymentTransaction *transaction = <# Current transaction #>;
if ([productIDsToRestore containsObject:transaction.transactionIdentifier]) {
// Re-download the Apple-hosted content, then finish the transaction
// and remove the product identifier from the array of product IDs.
} else {
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
}https://stackoverflow.com/questions/22730534
复制相似问题