Биллинг в выпуске приложения - PullRequest
0 голосов
/ 18 мая 2011

Я занимаюсь разработкой модуля биллинга в приложении.Но все еще возникают некоторые проблемы.

1) Я внедрил библиотеку проверки лицензии (LVL).Все сделано как образец приложения и успешно протестировано.Но я получил сообщение об ошибке: «Разрешение CHECK_LICENSE не разрешено для бесплатного приложения».когда загрузить приложение на рынок.Я думал, что мне нужно реализовать LVL, потому что это связано с проблемой безопасности биллинга в приложении.Но кажется, что LVL только для платного приложения.Мое приложение бесплатное и включает биллинг в модуль приложения.Когда оно будет доступно для бесплатного приложения?

2) Я реализовал модуль billing-in-app, как показано ниже, когда платеж будет успешно обработан (вызовет метод купилInApp ()):

private class MyAppPurchaseObserver extends PurchaseObserver {

   public MyAppPurchaseObserver(Handler handler) {
        super(MyAppPurchaseObserver.this, handler);
    }

    @Override
    public void onBillingSupported(boolean supported) {
        //Doing something
    }

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

        if(purchaseState == PurchaseState.PURCHASED) {
            purchasedInApp();
        }
    }

    @Override
    public void onRequestPurchaseResponse(RequestPurchase request,
            ResponseCode responseCode) {

        if (responseCode == ResponseCode.RESULT_OK) {
           //OK
        } else if (responseCode == ResponseCode.RESULT_USER_CANCELED) {
           //Canceled
        } else if(responseCode == ResponseCode.RESULT_BILLING_UNAVAILABLE ||
            responseCode == ResponseCode.RESULT_ITEM_UNAVAILABLE ||
            responseCode == ResponseCode.RESULT_SERVICE_UNAVAILABLE ||
            responseCode == ResponseCode.RESULT_DEVELOPER_ERROR) {
            //Error
        } else {
            //Fail
        }
    }

    @Override
    public void onRestoreTransactionsResponse(RestoreTransactions request,
            ResponseCode responseCode) {
        if (responseCode == ResponseCode.RESULT_OK) {
            //OK
        } else {
            //Error
        }
    }
}

Выше реализованные методы вызываются в основном потоке?Или это отдельная нить?

Заранее спасибо.

1 Ответ

0 голосов
/ 18 мая 2011

Насколько я знаю, LVL и биллинг в приложении не зависят друг от друга. Единственное, что они разделяют, - это то, что они используют ваш открытый ключ для проверки. Для биллинга в приложении ваше приложение должно быть собрано с разрешением com.android.vending.BILLING.

Запросы на выставление счета отправляются асинхронно в другое приложение на телефоне (Android Market или MyApps, в зависимости от телефона). Я не верю, что методы выдачи запросов блокируются, поэтому можно запускать их в потоке пользовательского интерфейса или в фоновом потоке. Я не знаю, есть ли ответные обратные вызовы в потоке пользовательского интерфейса, но я сомневаюсь в этом (поскольку они не для LVL).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...