iOS可续订到期日期字段
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS可续订到期日期字段相关的知识,希望对你有一定的参考价值。
在验证可续订收据时,我试图获取最新收据的到期日期。
根据苹果关于收据字段的文档,"expires_date "字段应该包含一个数字,这个数字是自1970年1月1日格林尼治标准时间00:00:00以来的毫秒数。https:/developer.apple.comlibraryiosreleasenotesGeneralValidateAppStoreReceiptChaptersReceiptFields.html#/apple_refdocuidTP40010573-CH106-SW1。)
然而,当我从 "expires_date "字段中获取该字段时,我收到的是一个带有格式化日期的字符串。有另一个字段叫做 "expires_date_ms",似乎提供了正确的数据。苹果公司声明:"下面没有记录的键是苹果公司保留使用的,必须被你的应用程序忽略。"
这是我的收据的一个例子。
"quantity":"1",
"product_id":"com.testapp.test",
"transaction_id":"1000000135676121",
"original_transaction_id":"1000000135134855",
"purchase_date":"2014-12-15 06:53:54 Etc/GMT",
"purchase_date_ms":"1418626434059",
"purchase_date_pst":"2014-12-14 22:53:54 America/Los_Angeles",
"original_purchase_date":"2014-12-15 06:51:12 Etc/GMT",
"original_purchase_date_ms":"1418626272000",
"original_purchase_date_pst":"2014-12-14 22:51:12 America/Los_Angeles",
"expires_date":"2014-12-15 06:56:10 Etc/GMT",
"expires_date_ms":"1418626570000",
"expires_date_pst":"2014-12-14 22:56:10 America/Los_Angeles",
"web_order_line_item_id":"1000000028947356",
"is_trial_period":"false"
]
我应该用哪个字段来获取过期日期与最佳实践?
正如你所发现的,文档中的"过期日期"在这个链接...
...国家 下面没有记录的键是保留给苹果使用的,你的应用程序必须忽略。 然而,现在它确实说"过期日期"是一个 ASN.1 字段值 IA5STRING,解释为 RFC 3339 日期。.
看来,截至今天(2015-12-04),在你的问题提出一年后,苹果公司还没有澄清,并将官方的"。过期日期_ms"字段,该字段显然有 毫秒 代表"过期日期".
你还会发现,一张收据上有一个。MS 版本和 _pst 枣的版本。 该 _pst 显然是 "PST "或AmericaLos_Angeles时区。
receipt":"receipt_type":"ProductionSandbox", "adam_id":0, "app_item_id":0, "bundle_id":"com.my.cool.app", "application_version":"1.0.3", "download_id":0, "version_external_identifier":0, "receipt_creation_date":"2015-12-04 03:48:00 Etc/GMT", "receipt_creation_date_ms":"1449200880000", "receipt_creation_date_pst":"2015-12-03 19:48:00 America/Los_Angeles", "request_date":"2015-12-04 03:53:45 Etc/GMT", "request_date_ms":"1449201225187", "request_date_pst":"2015-12-03 19:53:45 America/Los_Angeles", "original_purchase_date":"2013-08-01 07:00:00 Etc/GMT", "original_purchase_date_ms":"1375340400000", "original_purchase_date_pst":"2013-08-01 00:00:00 America/Los_Angeles", "original_application_version":"1.0",
"in_app":[
"quantity":"1", "product_id":"com.my.cool.app.inapppurchase1", "transaction_id":"1000000000000589", "original_transaction_id":"1000000000000589", "purchase_date":"2015-12-03 08:09:32 Etc/GMT", "purchase_date_ms":"1449130172000", "purchase_date_pst":"2015-12-03 00:09:32 America/Los_Angeles", "original_purchase_date":"2015-12-03 08:09:34 Etc/GMT", "original_purchase_date_ms":"1449130174000", "original_purchase_date_pst":"2015-12-03 00:09:34 America/Los_Angeles", "expires_date":"2015-12-03 08:14:32 Etc/GMT", "expires_date_ms":"1449130472000", "expires_date_pst":"2015-12-03 00:14:32 America/Los_Angeles", "web_order_line_item_id":"1000000031087708", "is_trial_period":"false",
"latest_receipt_info":[
"quantity":"1", "product_id":"com.my.cool.app.inapppurchase1", "transaction_id":"1000000000000589", "original_transaction_id":"1000000000000589", "purchase_date":"2015-12-03 08:09:32 Etc/GMT", "purchase_date_ms":"1449130172000", "purchase_date_pst":"2015-12-03 00:09:32 America/Los_Angeles", "original_purchase_date":"2015-12-03 08:09:34 Etc/GMT", "original_purchase_date_ms":"1449130174000", "original_purchase_date_pst":"2015-12-03 00:09:34 America/Los_Angeles", "expires_date":"2015-12-03 08:14:32 Etc/GMT", "expires_date_ms":"1449130472000", "expires_date_pst":"2015-12-03 00:14:32 America/Los_Angeles", "web_order_line_item_id":"1000000031087708", "is_trial_period":"false",
"latest_receipt":"MIItbAYJKoZIhvcNAQcCoIItXTCCLV...truncated...nA=="
不过,在ios releasenotes改变其措辞或字段列表之前,无论多么无耻,都不建议使用 "PST "或 "AmericaLos_Angeles "时区。MS 和 _pst 领域:
以上是关于iOS可续订到期日期字段的主要内容,如果未能解决你的问题,请参考以下文章