2016-01-05 9 views
5

हम ऐप खरीद में हमारे आईट्यून्स को सत्यापित करने के लिए सर्वर साइड सत्यापन का उपयोग कर रहे हैं। जब एक लेनदेन SKPaymentTransactionObserver को भेजा जाता है, तो हम इसे सत्यापित करने के लिए appStoreReceiptURL से रसीद प्राप्त करते हैं।एकाधिक स्टोरकिट लेन-देन को सत्यापित करने के लिए एक एकल appStoreReceiptURL का उपयोग कैसे करें?

if let receiptPath = NSBundle.mainBundle().appStoreReceiptURL?.path where 
    NSFileManager.defaultManager().fileExistsAtPath(receiptPath), 
    let receiptData = NSData(contentsOfURL:NSBundle.mainBundle().appStoreReceiptURL!) { 
    return receiptData 
} 

लेकिन इस तरह जब हम खरीद पुनर्स्थापित कर रहे हैं के रूप में कुछ मामलों में, विधि करने के लिए कई लेन-देन प्राप्त:

public func paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) 

यह बल्कि प्रत्येक लेन-देन को सत्यापित करने के लिए एक ही रसीद डेटा का उपयोग करने अजीब लगता है। क्या एकल रसीद में प्रत्येक लेनदेन के बारे में डेटा होता है?

उत्तर

9

क्या एकल रसीद में प्रत्येक लेनदेन के बारे में डेटा होता है?

हां। appStoreReceiptURL से प्राप्त रसीद उपयोगकर्ता और ऐप के लिए सभी सतत लेनदेन के लिए एक ही रसीद है।

Docs on In-app purchase receipt

इन-एप्लिकेशन एक उपभोज्य उत्पाद के लिए खरीदारी की रसीद प्राप्ति में जोड़ा जाता है जब खरीद की गई है। यह रसीद में तब तक रखा जाता है जब तक कि आपका ऐप उस लेनदेन को समाप्त नहीं कर लेता है। उस बिंदु के बाद, अगली बार रसीद अपडेट होने पर रसीद से हटा दिया जाता है - उदाहरण के लिए, जब उपयोगकर्ता कोई अन्य खरीद करता है या यदि आपका ऐप रसीद को स्पष्ट रूप से रीफ्रेश करता है।

गैर-उपभोग योग्य उत्पाद, ऑटो-नवीकरणीय सदस्यता, गैर-नवीनीकरण सदस्यता, या मुफ्त सदस्यता के लिए इन-ऐप खरीद रसीद अनिश्चित काल तक रसीद में बनी हुई है।

आईई। सब्सक्रिप्शन नवीनीकरण और पुनर्स्थापित खरीदारियों सहित सभी इन-ऐप खरीद और खपत वाली खरीद को छोड़कर एक नया लेनदेन बनाते हैं और रसीद में संग्रहित होते हैं।

Docs on Working with Subscriptions:

के बाद एक अपनी सदस्यता को सफलतापूर्वक नए सिरे से किया जाता है, स्टोर किट लेनदेन कतार में नवीकरण के लिए एक सौदे कहते हैं। आपका ऐप लॉन्च पर लेनदेन कतार की जांच करता है और नवीनीकरण को किसी अन्य लेनदेन के समान ही संभालता है।

Docs on Restoring Purchased Products:

लेन-देन को पुनर्स्थापित किया जा हर लेन-देन पूरा उपयोगकर्ता बनाया के लिए एक नई लेन-देन पैदा करता है।

ध्यान दें कि original transaction id पुनर्स्थापित खरीदारियों और सदस्यता नवीकरण के लिए समान होगा।

रसीद अनिवार्य रूप से उस डिवाइस पर संग्रहीत फ़ाइल है जिसे ऐप अपडेट होने पर ऐप अपडेट होता है।

+0

संबंधित नोट पर, हम डिवाइस पर ऑटो-नवीकरणीय सदस्यता कैसे ट्रैक करते हैं? ऐसा है कि उपयोगकर्ता ने आईपैड पर सदस्यता खरीदी है, क्या उन्हें अपने आईफोन पर अपडेटेड लेनदेन मिलेगा? या उन्हें खरीद बहाल करना होगा? –

+0

आपको एक पुनर्स्थापना खरीद विकल्प (यह किसी भी तरह से सेब द्वारा एक आवश्यकता) की पेशकश करने की आवश्यकता होगी।एक बार नए डिवाइस पर ऐप को पुनर्स्थापित करने के बाद रसीद होगी। –

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