यह पहली बार है जब मैं एंड्रॉइड ऐप में इन-ऐप बिलिंग लागू कर रहा हूं और मैंने सीधे कोड को guideline से लिया और सबकुछ ठीक से भूल गया, मैंने धनवापसी के बारे में सोचा। उदाहरण ऐप पहले ही लागू कर चुका है, लेकिन एक अजीब तरीके से! वापसी खरीद के रूप में एप्लिकेशन पर प्राप्त होता है, लेकिन वापसी के राज्य के साथ जो पूरी तरह समझा जा सकता है लेकिन मूल स्रोत इस तरह दिखता है:एंड्रॉइड इन-ऐप बिलिंग रिफंड
// Count the number of times the product was purchased
while (cursor.moveToNext()) {
int stateIndex = cursor.getInt(2);
PurchaseState state = PurchaseState.valueOf(stateIndex);
// Note that a refunded purchase is treated as a purchase. Such
// a friendly refund policy is nice for the user.
if (state == PurchaseState.PURCHASED || state == PurchaseState.REFUNDED) {
quantity += 1;
}
}
// Update the "purchased items" table
updatePurchasedItem(productId, quantity);
इसकी जोड़ने आइटम भले ही वह वापस कर दिया गया और मुझे नहीं पता कि ऐसा क्यों है मिल गया? क्या धनवापसी की गई वस्तु में विशेष आईडी है या मुझे क्या याद आ रही है? मैंने अभी तक परीक्षण उत्पादों के साथ यह कोशिश की है इसलिए मुझे कोई जानकारी नहीं मिली।
updatePurchasedItem विधि मेज से प्रविष्टि को हटा अगर मात्रा 0 जो पूरी तरह सही लगता है, इसलिए मैं इस
while (cursor.moveToNext()) {
int stateIndex = cursor.getInt(2);
PurchaseState state = PurchaseState.valueOf(stateIndex);
// Note that a refunded purchase is treated as a purchase. Such
// a friendly refund policy is nice for the user.
if(Consts.DEBUG)
Log.v(TAG, state == PurchaseState.PURCHASED ? "purchase" : "refund");
if (state == PurchaseState.PURCHASED) {
quantity += 1;
} else if(state == PurchaseState.REFUNDED) {
quantity = 0;
}
}
// Update the "purchased items" table
updatePurchasedItem(productId, quantity);
करने के लिए अपने कोड बदल लेकिन मुझे शक है वहाँ उदाहरण अनुप्रयोग में गलत कोड तो मैं पूरी तरह से अनिश्चित हूं होगा अगर मैं इसे सही कर रहा हूँ!
मुझे इसे कैसे संभालना चाहिए? कृपया मेरी मदद करें!
यह सिर्फ एक बग हो सकता है। क्या मात्रा परिवर्तक किसी आइटम प्रकार की कुल खरीद को मापता है, या केवल सभी खरीदारियां ('धनवापसी' प्रकार सहित)? अगर यह एक बग था, तो मुझे आश्चर्य नहीं होगा, क्योंकि एंड्रॉइड डेवलपर साइट पर मौजूद सब्सक्रिप्शन उदाहरण ट्विक के बिना काम नहीं करता है। – BDFun
मात्रा उस समय खरीदी गई वस्तुओं की मात्रा के लिए है (मुझे लगता है कि एक बार में एक से अधिक आइटम खरीदने के लिए भी संभव नहीं है), और किसी कारण से आइटम को वापस करने पर भी मात्रा बढ़ाना। अद्यतन खरीदा गया इटिम प्रवेश को हटा देता है अगर उसे 0 की मात्रा के साथ उत्पाद प्राप्त होता है, जिसे मुझे पता है कि रिफंड इंगित किया जाता है क्योंकि यह कहीं भी राज्य डेटा का उपयोग नहीं करता है। आप यहां उदाहरण देख सकते हैं http://developer.android.com/guide/google/play/billing/billing_integrate.html#billing-download – Ruuhkis