2014-12-15 7 views
5

अक्षय सदस्यता रसीद की पुष्टि करते समय मैं नवीनतम रसीद की समाप्ति तिथि प्राप्त करने का प्रयास कर रहा हूं।आईओएस नवीकरणीय सदस्यता expires_date फ़ील्ड

सेब प्रलेखन रसीद खेतों पर "expires_date" क्षेत्र एक नंबर जो 1 जनवरी, 1970 के बाद से मिलीसेकेंड की संख्या है को शामिल करना चाहिए के अनुसार, 00:00:00 GMT। (https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html#//apple_ref/doc/uid/TP40010573-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" 
}] 

कौन सा क्षेत्र मैं सर्वोत्तम प्रथाओं के साथ समाप्त हो गई तिथि प्राप्त करने के लिए इस्तेमाल करना चाहिए?

+1

मैंने अभी ऐप्पल के साथ एक बग रिपोर्ट दायर की है। उत्पादन में उपयोग करके आप क्या खत्म कर चुके थे? – Moritz

उत्तर

1

आप पाया के रूप में, के लिए "expires_date" इस लिंक पर प्रलेखन ...

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

... राज्यों कुंजी नीचे दर्ज नहीं किया एप्पल द्वारा उपयोग के लिए आरक्षित हैं और ध्यान नहीं दिया जाना चाहिए आपके ऐप द्वारा हालांकि अब यह कहता है कि "expires_date" ASN.1 फील्ड वैल्यू IA5STRING, जिसे आरएफसी 3339 दिनांक के रूप में व्याख्या किया गया है।

ऐसा प्रतीत होता है आज (2015/12/04) के रूप में, एक साल में अपने प्रश्न के बाद, एप्पल अभी तक स्पष्ट और आधिकारिक बनाने के लिए है कि "expires_date_ms" क्षेत्र जो स्पष्ट रूप से मिलीसेकेंड का प्रतिनिधित्व किया है " expires_date "।

आप भी मिल जाएगा के रूप में, एक रसीद एक _ms संस्करण और तारीखों के _pst संस्करण में शामिल है। _pst "पीएसटी" या अमेरिका/लॉस_एंजेलस टाइमज़ोन के लिए स्पष्ट रूप से है।

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 अपने शब्दों या फ़ील्ड की सूची बदल जाता है, यह हालांकि शर्मनाक, _ms और _pst फ़ील्ड का उपयोग करने की सलाह नहीं दी है।

संबंधित मुद्दे

 संबंधित मुद्दे