Android в -возврат средств за приложение

Это первый раз, когда я внедряю в -биллинг приложения в приложении для Android, и я взял большую часть кода прямо из руководства , и все совершенно забылось, пока я не подумал о возмещении. В примере приложения уже реализован возврат средств, но как-то странно! Возврат получен в приложении как покупка, но с состоянием возврата, что вполне понятно, но первоисточник выглядит так:

        // 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);

но я сомневаюсь, что в примере приложения будет неправильный код, поэтому я совершенно не уверен, что делаю это правильно!

Как мне справиться с этим? Помогите пожалуйста мне!

7
задан Ruuhkis 11 July 2012 в 12:11
поделиться