【问题标题】:iOS save in-app purchases on serveriOS 将应用内购买保存在服务器上
【发布时间】:2015-11-18 11:07:17
【问题描述】:

我的应用遇到了一个大问题:我必须进行应用内购买(非续订订阅),并且我希望用户在删除应用并在设备上重新安装时检索他的订阅。我没有这个应用程序的帐户系统,所以很难。我想知道我是否仍然可以使用将存储所有订阅的服务器,但我不知道如何为每个用户创建一个唯一的 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)

感谢您的回答

【问题讨论】:

  • 您是否使用 Web-Server 来获取用户的信息?
  • 不,我没有得到有关用户的信息。
  • 如果您使用非续订订阅,您确实需要一个用户帐户。如果您没有用户帐户,您就没有与订阅相关联的任何内容,那么如何在用户重新安装时识别您的用户?
  • 感谢您的回复,有没有办法让用户连接到他的 iCloud 帐户以保存订阅?

标签: ios swift in-app-purchase


【解决方案1】:

实际上可以从收据中获取用户 DSPersonID(与 iTunes 帐户关联的唯一 ID),这里有一篇不错的博客文章:https://magervalp.github.io/2013/03/19/poking-around-in-masreceipts.html

使用DSPersonID,您可以唯一标识 iTunes 用户。

警告这没有记录在案,它完全有可能在未来发生变化,使用它需要您自担风险。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-27
    • 2021-11-11
    相关资源
    最近更新 更多