2013-05-29 21 views
6

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

मैं सैंडबॉक्स मोड में परीक्षण उपयोगकर्ताओं के साथ खरीदारी का परीक्षण कर रहा हूं जहां भुगतान नहीं किया जाता है। उनमें से ज्यादातर सफल हैं और यह प्रवाह ठीक काम करता है। हालांकि, कभी-कभी, मेरी खरीदारी तुरंत Google द्वारा रद्द कर दी जाती है। मेरी Google Checkout खाते में आदेश इतिहास में, मैं रेखा को देखने के: "।। आपकी सुरक्षा के लिए, Google ने इस आदेश को रद्द कर लेन-देन कपटपूर्ण माना था"

यदि ऐसा होता है, तो भी मुझे लगता है कि मुझे खरीद डेटा में "purchaseState": 0 प्राप्त होता है, जो सफलता का संकेत देता है। साथ ही, इस उत्पाद का उपभोग करने की कोशिश भी सफलता में होती है (IInAppBillingService.consumePurchase(version, package, token) रिटर्न 0) को कॉल करना। बाद में मेरी सूची पूछताछ से पता चलता है कि मेरे पास कोई खरीदार नहीं है (और इसलिए कोई धनवापसी/रद्द नहीं) और मैं एक ही आइटम को फिर से खरीदने में सक्षम हूं। सामान्य, अनिश्चित स्थिति में यह वही व्यवहार है।

  1. क्या Google अक्सर परीक्षण सैंडबॉक्स के बाहर, उसी तरह ऑर्डर रद्द करता है?
  2. क्या आइटम सफलतापूर्वक खरीदे गए और उपभोग किए गए आइटम अभी भी डेवलपर के नियंत्रण के बाहर कारणों के लिए रद्द कर दिए गए हैं (यानी धनवापसी)?
  3. क्या उन उत्पादों के रद्दीकरण के बारे में जानना संभव है जो पहले से ही खा चुके हैं?

उत्तर

1

गूगल अक्सर परीक्षण sandbox के बाहर उसी तरह से आदेशों को रद्द करता है?

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

कर सकते हैं आइटम जो सफलतापूर्वक खरीदे गए थे और डेवलपर के नियंत्रण के बाहर के कारणों के लिए अभी भी भस्म रद्द (अर्थात पैसे वापस कर दी) हो सकता है?

यह एक मुश्किल सवाल है, क्योंकि जो भी रद्द हो जाता है वह एक आइटम नहीं है, बल्कि इस आइटम से जुड़े भुगतान लेनदेन है। सैद्धांतिक रूप से, समय पर बाद में एक लेनदेन रद्द भी किया जा सकता है, लेकिन इसके लिए एक अच्छा कारण होना चाहिए। चोरी किए गए क्रेडिट कार्ड के साथ वही उदाहरण यहां वैध हो सकता है। वास्तविक जीवन में मैंने इसे पहले कभी नहीं देखा है।

क्या पहले से ही उपभोग किए गए उत्पादों के लिए रद्दीकरण के बारे में जानना संभव है?

हालांकि मैंने कभी इसे स्वयं नहीं किया, मुझे विश्वास नहीं है कि उपभोग किए गए उत्पाद को रद्द किया जा सकता है। जैसा कि मैंने कहा, एक संबंधित भुगतान लेनदेन रद्द कर दिया जा सकता है, लेकिन उपभोग नहीं किया गया उत्पाद। ऐसा इसलिए है क्योंकि उपभोग किए गए उत्पाद को फिर से बेचा जा सकता है और भुगतान के लिए अभी तक कोई कनेक्शन नहीं है। यदि उत्पाद का उपभोग नहीं किया जाता है, तो रद्द किए गए राज्य में डाल दिया जाएगा, अगर इसे भुगतान भुगतान लेनदेन रद्द कर दिया जाता है।

उम्मीद है कि इससे मदद मिलती है।

+0

यदि आप अपने सर्वर पर खरीदी गई वस्तुओं का ट्रैक रखते हैं तो आदेश का भुगतान भुगतान लेनदेन की आईडी भी है। किसी भी प्रकार के सत्यापन को लागू करने के लिए यह आपके ऊपर निर्भर है, भले ही आइटम पहले ही खाया जा चुका है। – tomrozb

0

मैं एक ही तरह का आवेदन स्थापित कर रहा हूं।
उपयोगकर्ता कोई आइटम खरीद सकता है, इसे मेरे सर्वर पर ट्रैक किया जाएगा और अंततः उपभोग किया जाएगा, ताकि उपयोगकर्ता फिर से वही आइटम खरीद सके।

मैं खरीद के बारे में सभी सूचनाओं का ट्रैक रख रहा हूं, और मैंने पहले से ही उपभोग किए गए आदेश को रद्द करने का प्रयास किया है। मैं आपको पुष्टि कर सकता हूं कि आदेश की स्थिति बदलने जा रही है (10 मिनट या उससे कम के बाद, आपको रद्दीकरण के बारे में भी ईमेल प्राप्त होगा)।

अपने productId और purchaseToken साथ PurchaseAPI की इस यूआरएल कॉलिंग खरीद जानकारी वापस आ जाएगी:

https://www.googleapis.com/androidpublisher/v2/applications/<app.package.name>/purchases/products/<productId>/tokens/<purchaseToken>?access_token=<myToken> 

पहली बार जब आप एक इसी तरह की प्रतिक्रिया मिल जाएगा:

{ 
    "kind": "androidpublisher#productPurchase", 
    "purchaseTimeMillis": "1458047931024", 
    "purchaseState": 0, 
    "consumptionState": 1, 
    "developerPayload": "mypurchasetoken" 
} 

और रद्द करने के बाद purchaseState बदलने जा रहा है:

{ 
    "kind": "androidpublisher#productPurchase", 
    "purchaseTimeMillis": "1458047931024", 
    "purchaseState": 1, 
    "consumptionState": 1, 
    "developerPayload": "mypurchasetoken" 
} 

यह वही है प्राप्त करें कि मैं उत्पाद सत्यापन के लिए पहली बार करता हूं।
खरीदी गई वस्तुओं की स्थिति की आवधिक जांच स्थापित करना संभव है और, रद्दीकरण के मामले में, सर्वर पर खरीद अपडेट करें।