【问题标题】:Need to understand iOS InApp purchase receipt需要了解 iOS In App 购买收据
【发布时间】:2019-10-15 14:33:43
【问题描述】:

我正在深入研究 iOS 应用内购买验证(服务器端),我对苹果验证服务器返回的收据字段感到非常困惑。可用的文档here 不是很清楚(至少对我来说)

所以这是 Apple 验证服务器返回的真实(经过混淆的)应用内购买收据

{
  "receipt": {
    "receipt_type": "Production",
    "adam_id": XXXXXXX,
    "app_item_id": XXXXXXXXX,
    "bundle_id": "com.XXXXX.XXXXX",
    "application_version": "XXXXXXXXX",
    "download_id": XXXXXXXXXXXX,
    "version_external_identifier": XXXXXXXXXXX,
    "receipt_creation_date": "2019-10-15 14:01:41 Etc/GMT",
    "receipt_creation_date_ms": "1571148101000",
    "receipt_creation_date_pst": "2019-10-15 07:01:41 America/Los_Angeles",
    "request_date": "2019-10-15 14:04:20 Etc/GMT",
    "request_date_ms": "1571148260390",
    "request_date_pst": "2019-10-15 07:04:20 America/Los_Angeles",
    "original_purchase_date": "2018-11-27 18:28:48 Etc/GMT",
    "original_purchase_date_ms": "1543343328000",
    "original_purchase_date_pst": "2018-11-27 10:28:48 America/Los_Angeles",
    "original_application_version": "XXXXXXXXX",
    "in_app": [
      {
        "quantity": "1",
        "product_id": "com.XXXXXXXXXX.XXXXX.XXXXXX",
        "transaction_id": "XXXXXXXXXXX",
        "original_transaction_id": "XXXXXXXXXX",
        "purchase_date": "2019-10-15 14:01:41 Etc/GMT",
        "purchase_date_ms": "1571148101000",
        "purchase_date_pst": "2019-10-15 07:01:41 America/Los_Angeles",
        "original_purchase_date": "2019-10-15 14:01:41 Etc/GMT",
        "original_purchase_date_ms": "1571148101000",
        "original_purchase_date_pst": "2019-10-15 07:01:41 America/Los_Angeles",
        "is_trial_period": "false"
      }
    ]
  },
  "status": 0,
  "environment": "Production"
}

所以我的问题是:

  1. 以“original_purchase_date”开头的字段表示日期时间,但为什么它们在收据的两部分中具有不同的值?
  2. 在收据的in_app部分,以“purchase_date”开头的字段的值和以“original_purchase_date”开头的字段的值可以不同吗?如果是,在哪种情况下?
  3. “application_version”字段是否包含应用程序当前发布的构建版本的值,因为根据文档,“original_application_version”字段表示用户用于购买的应用程序的构建版本?李>

非常感谢您的帮助和回答。

【问题讨论】:

    标签: ios in-app-purchase receipt-validation


    【解决方案1】:

    R.E.B 埃尔南德斯!

    1. original_purchase_date里面in_app是应用内购买的时间,这个数组外面是应用第一次安装的日期。
    2. 如果您使用非消耗性和非续订订阅,则purchase_date 将与original_purchase_date 相同。但是,如果您使用自动更新订阅,那么您应该检查latest_receipt_info 数组而不是in_app。如果是订阅,original_purchase_date 将仅代表第一次交易的日期。
    3. 是的,application_version 是设备上应用程序的当前版本。 original_application_version 是用户最初购买的应用版本。

    这是文档link

    【讨论】:

    • 感谢您的回答!特别感谢该链接,我不知道我使用的是 iOS 文档的存档版本!
    猜你喜欢
    • 2011-12-10
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    相关资源
    最近更新 更多