我的应用程序遇到了一个大问题:我必须进行应用程序内购买(非续订订阅),并且我希望用户在删除应用程序并在设备上重新安装时检索他的订阅。我没有这个应用程序的帐户系统,所以很难。我想知道我是否仍然可以使用存储所有订阅的服务器,但我不知道如何为每个用户创建一个唯一的 ID,并在删除应用程序时检索它。我使用应用程序商店收据(包含所有购买)进行搜索,但是当我编写此代码来获取它时,它返回 nil :
let receiptUrl = NSBundle.mainBundle().appStoreReceiptURL
var receipt: NSData
do {
receipt = try NSData(contentsOfURL: receiptUrl!, options: NSDataReadingOptions())
} catch _ {
receipt = NSData()
}
let receiptdata: NSString = receipt.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
print(receiptdata)
感谢您的回答
最佳答案
实际上可以从收据中获取用户 DSPersonID
(与 iTunes 帐户关联的唯一 ID),这里有一篇关于它的不错的博客文章:https://magervalp.github.io/2013/03/19/poking-around-in-masreceipts.html .
通过 DSPersonID
,您可以唯一地识别 iTunes 用户。
警告这没有记录,并且将来完全有可能发生变化,使用它的风险由您自行承担。
关于iOS 在服务器上保存应用内购买,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33778428/