2014-12-15 17 views
5

Yenilenebilir bir abonelik makbuzunu doğrularken en son makbuzun son kullanma tarihini almaya çalışıyorum.iOS yenilenebilir abonelik expires_date alanı

"expires_date" alanı milisaniye sayısı 1 Ocak 1970 yılından bu yana bir sayı içermelidir makbuz alanları elma belgelerine göre, 00:00:00 GMT. (https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html#//apple_ref/doc/uid/TP40010573-CH106-SW1)

Ben getirme Ancak alan, "expires_date" alanından biçimlendirilmiş bir tarih içeren bir dize alıyorum. Doğru verileri sağladığını gösteren "expires_date_ms" adlı başka bir alan var. Apple, "aşağıda belgelenmemiş olan anahtarlar Apple tarafından kullanım için ayrılmıştır ve uygulamanız tarafından yok sayılmalıdır." Burada

benim alındığı bir örnektir:

i en iyi uygulamalarla süresi dolmuş tarih almak için kullanması gereken alan
{"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" 
}] 

?

+1

Bu konuda Apple'la bir hata raporu gönderdim. Üretimde neyi kullandın? – Moritz

cevap

1

Bulduğunuz gibi, bu bağlantıyı "expires_date" için dokümantasyon ...

https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html#//apple_ref/doc/uid/TP40010573-CH106-SW1

... Tuşlar aşağıda belgelenen Apple tarafından kullanılmak için ayrılmıştır ve göz ardı edilmelidir değil devletler senin app tarafından. Ancak şimdi " expires_date" bir ASN.1 Alan Değeri IA5STRING, bir RFC 3339 date olarak yorumlandığını söylüyor.

günümüze (2015/12/04) itibariyle, bir sene sorudan sonra Apple netleştirmek ve resmi yapmak için henüz görünür "expires_date_ms" açıkça temsil milisaniye vardır alanı " expires_date ".

da göreceğiniz üzere bir makbuz bir _MS sürümü ve tarihlerin _pst sürümünü içeriyor. _pst açıkça "PST" veya Amerika/Los_Angeles zaman dilimi içindir. ios SürümNotlar onun ifadeleri ve alanların listesini değişene kadar

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=="} 

Yine de, _MS ve _pst alanları kullanılması önerilmez, ancak yüz kızartıcı olduğunu.

İlgili konular