ऑटो-अक्षय iOS 7 शैली लेनदेन के लिए नवीनतम रसीद प्राप्त करने के लिए in_app या latest_receipt_info का उपयोग करें?




in-app-purchase server-side (4)

Babken Vardanyan ने कई उत्तर सूत्र में उल्लेख किया है कि latest_receipt_info कभी-कभी गायब होता है। एक दिलचस्प बात जो मैंने इस थ्रेड में रसीदों में देखी है https://forums.developer.apple.com/thread/92200 में नवीनतम_रेसीप्ट_इनफो बनाम इन_प्प में अंतर था। जब एक अंतर करते हुए मैंने देखा कि श्रृंखला में पहली रसीद गायब थी (is_trial_period = true सहित)। यह एक इन-ऐप रसीद के बराबर उत्पन्न नहीं करता था।

जैसा कि प्रलेखन में जुड़ा हुआ है: https://developer.apple.com/library/archive/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html#//apple_ref/doc/uid/TP40010573-CH104-SW4 -ref/doc/uid/TP40010573-CH104-SW4 कहते हैं कि latest_ceppipt.in का उपयोग करें "iOS 7 स्टाइल ऐप प्राप्तियों के लिए, इस कुंजी का मूल्य एक सरणी है जिसमें सभी इन-ऐप खरीदारी लेनदेन होते हैं।"

सदस्यता के संबंध में, आपको in_app का उपयोग नहीं करना चाहिए और केवल latest_receipt_info का उपयोग करना चाहिए।

https://www.revenuecat.com/2018/09/24/apple-subscription-notifications-are-almost-useless ने कैंसिलेशन_डेट जैसे किनारे के मामलों को कवर किया, जहां यह एक ग्राहक सेवा है जिसे रद्द किया गया है जैसे इस ऐप्पल डेवलपर फ़ोरम थ्रेड में देखा गया है: https://forums.developer.apple.com/thread/96670

मैं यह सत्यापित करने की कोशिश कर रहा हूं कि एक ऑटो-रिन्यूएशन इन ऐप खरीदारी की समय सीमा समाप्त नहीं हुई है (डिवाइस पर नहीं)।

मैं Apple के ग्रैंड यूनिफाइड रसीद (iOS 7 स्टाइल ट्रांजेक्शन) का उपयोग कर रहा हूं। Apple द्वारा दी गई प्रतिक्रिया में प्राप्तियों की एक सरणी के साथ in_app और latest_receipt_info तत्व शामिल हैं। in_app JSON तत्व में latest_receipt_info तुलना में कम रसीदें हैं। मैं दोनों तत्वों से अपेक्षा कर रहा था कि वे एक ही संख्या या प्राप्तियों को समाहित करें।

इसके अलावा, मैं उम्मीद कर रहा था कि in_app तत्व में सभी रसीदें होंगी। हालाँकि, ऐसा प्रतीत होता है कि latest_receipt_info वास्तव में सभी रसीदें होती हैं। लगता है कि Apple प्रलेखन नवीनतम रसीद खोजने के लिए in_app का उपयोग करने का सुझाव देता है।

मुझे latest_receipt_info देखकर हैरानी latest_receipt_info क्योंकि ऐप्पल के डॉक्यूमेंटेशन में कहा गया है कि यह तत्व "केवल ऑटो-रिन्यूएबल सब्सक्रिप्शन के लिए iOS 6 स्टाइल ट्रांजेक्शन रसीदों के लिए लौटा है।" (iOS 7+ नहीं)।

ऑटो-नवीकरणीय iOS 7 शैली लेनदेन के लिए नवीनतम रसीद खोजने के लिए मुझे कौन सा JSON तत्व चाहिए: in_app या latest_receipt_info ?


बस यह स्पष्ट करना चाहता था कि केवल latest_receipt_info फ़ील्ड नवीनतम नवीनीकृत रसीद लौटा रहा है। यह इस बात पर आधारित है कि हम वास्तव में Apple से क्या प्राप्त कर रहे हैं।

प्रासंगिक दस्तावेज यहां पृष्ठ 21 पर है।

हालाँकि यह बताता है कि latest_receipt और latest_receipt_info फ़ील्ड "केवल iOS 6 स्टाइल ट्रांजेक्शन प्राप्तियों के लिए ऑटो-रिन्यूएबल सब्सक्रिप्शन के लिए लौटे हैं", हमने पाया है कि वे हमारे iOS 7 प्राप्तियों में वापस आ रहे हैं। receipt ऑब्जेक्ट के भीतर in_app फ़ील्ड भी लगभग समान डेटा के साथ वापस आ जाती है, लेकिन इसमें नवीनतम रसीद जानकारी शामिल नहीं होती है, जो कि आपके द्वारा स्वतः नवीनीकरण के मामले में परवाह की जाती है।


रसीद फ़ील्ड (Apple डॉक्स)

ऊपर दिए गए प्रलेखन से in_app का उपयोग करना बहुत स्पष्ट हो in_app । कृपया नोट करें कि "नीचे दर्ज़ नहीं कीज़ को Apple द्वारा उपयोग के लिए आरक्षित किया गया है और प्रलेखन में आपके ऐप द्वारा अनदेखा किया जाना चाहिए"। इसलिए भले ही डीकोड की गई रसीद में latest_receipt_info , हमें इसे अनदेखा करना चाहिए।

लेकिन मैं मानता हूं, प्रलेखन में बहुत कमी है और यह मुझे परेशान करता है। मुझे बताएं कि उत्पादन में iOS 7 शैली रसीद सत्यापन का उपयोग करके आपका अनुभव कैसा था।


This बारे में सबसे हालिया और सबसे स्पष्ट चर्चा है। उम्मीद है की यह मदद करेगा।