2017-02-18 4 views
5

एक बार मैं ग्राहक से एक रसीद मिल और सेब सर्वर द्वारा इसे सत्यापित करने में, तो मैं नई खरीद (यह एक स्वत: सदस्यता खरीदारी है) इस रसीद में के लेनदेन आईडी मिला है। कुछ दिनों के बाद, मैं एक ही ग्राहकसे एक नया रसीद मिल और उसे सत्यापित करने में, अजीब बातें होती हैं: कि वर्ष खरीद परिवर्तन के लेनदेन आईडी।एप्पल इन-ऐप एक खरीद परिवर्तन की खरीद TRANSACTION_ID कभी कभी

मैं नए प्राप्ति में डेटा के साथ पुरानी रसीद में यह खरीद के डेटा की तुलना, केवल एक चीज परिवर्तन TRANSACTION_ID क्षेत्र है, original_transaction_id, PURCHASE_DATE, expires_date, web_order_line_item_id और अन्य क्षेत्रों बिल्कुल वैसा ही कर रहे हैं।

से मैं डेटाबेस की जाँच, मैंने पाया बारे में 1% लेन-देन के रिकॉर्ड एक ही स्थिति है। और एक विशेषता है, उनकी अधिकांश लेनदेन आईडी 1-2 द्वारा बढ़ी या घट गई थी।

मुझे लगता है कि करने के लिए लेन-देन आईडी एक खरीद के पहचानकर्ता है इस्तेमाल किया। क्या कोई भी एक ही समस्या को पूरा करता है या कारण जानता है?

+0

मुझे अब एक ही समस्या का सामना करना पड़ रहा है और मुझे यह जानने में दिलचस्पी है कि आपने समस्या का समाधान कैसे किया? – Sriram

+0

चूंकि मैं अभी लेनदेन_आईडी या web_order_line_item_id पर भरोसा नहीं कर सकता, इसलिए मैं नई खरीद के रूप में नई लेनदेन_आईडी और नई web_order_line_item_id के साथ खरीदारी पर विचार करता हूं। –

उत्तर

3

हां हम यह भी देखते हैं। हम इसे 'पुनर्स्थापित खरीद' बटन क्लिक द्वारा ट्रिगर देखते हैं।

अपने 'पुनर्स्थापित खरीद' बटन restoreCompletedTransactions API का उपयोग करता है तो यह आपका लेनदेन आईडी बदलने के लिए कारण होगा। हमने पुष्टि की है कि यह ऐप्पल डेवलपर समर्थन के साथ है।

जाहिर है आप SKReceiptRefreshRequest बजाय कॉल कर सकते हैं जो सिर्फ बजाय लेनदेन के सभी पुनः की नवीनतम रसीद प्राप्त होंगे। यह मेरी समझ है कि इससे लेनदेन आईडी बदलना नहीं पड़ेगा।

हमने देखा है कि, web_order_line_item_id मान restoreCompletedTransactions पर कॉल में परिवर्तित नहीं होते हैं।

web_order_line_item_id क्षेत्र के संबंध में, मूल्य हर बाद होने वाला नवीनीकरण पर बदल जाएगा: लेकिन हम केवल जब हम पुष्टि के लिए कहा एक अस्पष्ट, सबसे अच्छे रूप, से एप्पल डेवलपर समर्थन प्रतिक्रिया मिली है।

आप के रूप में आप नए मूल्य की दुकान के लिए जारी इस का उपयोग कर सकते हैं, जब तक नवीकरण सदस्यता की घटनाओं में आते हैं।

हम इस लेने का मतलब यह है कि web_order_line_item_id प्रति नवीकरण खरीद अद्वितीय है।

Rosa Gutierrez - The recurring nightmare. Implementing cross platform in-app subscription purchases

: जो न तो पुष्टि की और न ही इनकार करते हैं कि यह इसके अतिरिक्त restoreCompletedTransactions

के लिए कॉल भर में निरंतर बनी हुई है, मैं इस सम्मेलन पर एप्पल/गूगल/अमेज़न रिकॉर्डिंग बिलिंग बहुत उपयोगी आवर्ती (हालांकि, नहीं इस विशेष मामले के लिए) में पाया गया

+0

उत्तर के लिए धन्यवाद। आखिरकार, क्या आपने web_order_line_item_id का उपयोग करके प्रत्येक लेनदेन के लिए विशिष्टता प्राप्त की? – Sriram

+0

@ श्रीराम मैं अभी भी 100% सुनिश्चित नहीं हूं कि 'web_order_line_item_id' वैश्विक रूप से अद्वितीय है। हमने अपने रिकॉर्ड डी-डुप्ड का उपयोग करने के लिए स्विच किया और इसके बजाय 'SKReceiptRefreshRequest' का उपयोग करना शुरू कर दिया। – plainjimbo

+1

अभी हमने अपने ऐप में पुनर्स्थापना खरीद सुविधा का परीक्षण किया है, जबकि यह अपेक्षित काम करता है, इसने रसीद में किसी लेनदेन पहचानकर्ता को नहीं बदला है। – Sriram

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