Это подходящее место для уведомления об успешной покупке в приложении?

Я надеюсь, что кто-то может помочь мне. Мне нужно уведомить пользователя после того, как он успешно приобрел товар через службу выставления счетов в приложении. [...удален запутанный текст...]

ИЗМЕНИТЬ

Точнее. Из демонстрационного проекта Google я вижу, что они используют onRequestPurchaseResponse для перехвата RESULT_OK кода. Внутри этого метода я добавил Toast и инициировал тестовую покупку через элемент android.test.purchased. У меня появились окна Маркета и сообщение "Авторизация покупки". После завершения процесса появился мой Toast.

@Override
public void onRequestPurchaseResponse(BillingService.RequestPurchase request,
                             Consts.ResponseCode responseCode) {
    if (Consts.DEBUG) {
        Log.d(TAG, request.mProductId + ": " + responseCode);
    }
    if (responseCode == Consts.ResponseCode.RESULT_OK) {
        if (Consts.DEBUG) {
            Log.i(TAG, "purchase was successfully sent to server");
        }
        showToast("purchase was successfully sent to server");//<- MY TOAST!
        logProductActivity(request.mProductId, "sending purchase request");
    } else if (responseCode == Consts.ResponseCode.RESULT_USER_CANCELED) {
        if (Consts.DEBUG) {
            Log.i(TAG, "user canceled purchase");
        }
        logProductActivity(request.mProductId, "dismissed purchase dialog");
    } else {
        if (Consts.DEBUG) {
            Log.i(TAG, "purchase failed");
        }
        logProductActivity(request.mProductId, "request purchase returned " + responseCode);
    }
}

У меня вопрос, это правильное место для размещения сообщения об успешной покупке?


person sandalone    schedule 20.08.2011    source источник


Ответы (2)


Можно поместить туда сообщение, но это не место, где покупка будет завершена. Как видите в комментариях написано, что покупка успешно отправлена ​​на сервер. Это не значит, что покупка действительно состоялась. Это делается ДО того, как ваше приложение будет размещено в Google Play, чтобы дать пользователю возможность совершить покупку. Пользователь все еще может отказаться. Однако если пользователь нажимает кнопку «КУПИТЬ», приложение перезапускается и вызывается следующий код.

@Override
public void onPurchaseStateChange(PurchaseState purchaseState, String itemId, int quantity, long purchaseTime, String developerPayload) {

    if (purchaseState == PurchaseState.PURCHASED) {
        // PUT YOUR CONFIRMATION MESSAGE HERE
    }
}
person Marty Miller    schedule 17.05.2012

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

person sandalone    schedule 20.08.2011