Android - Как реализовать бесплатный пробный период, не заставляя пользователя платить вперед

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

Я хочу предложить пробный период, когда пользователь может использовать все функции. Мне не нравится, как это делает Google в системе покупок приложений. Он заставляет пользователя платить за подписку и дает возможность отменить ее до окончания пробного периода.

Я хочу предложить пробную версию, не заставляя пользователя платить за нее заранее. Возможно ли это с помощью API Google или мне нужно использовать для этого свой собственный сервер?


person Anonymous    schedule 26.03.2017    source источник
comment
С пользователя фактически не взимается плата за пробную версию, он просто разрешает будущие платежи.   -  person X3Btel    schedule 26.03.2017
comment
да я знаю... но я не хочу этого. Я считаю, что это плохой маркетинговый ход. Пользователь должен увидеть диалоговое окно оплаты после окончания пробного периода.   -  person Anonymous    schedule 27.03.2017
comment
Это стандарт в Android, и он лучше работает для разработчиков. В любом случае, я не думаю, что Google API работает так, как вы хотите. Вы можете использовать временную метку в SharedPreference (поддающемся взлому) или на своем собственном сервере, как вы предложили.   -  person X3Btel    schedule 27.03.2017


Ответы (1)


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

Чтобы использовать его, просто

Добавьте библиотеку в build.gradle главного модуля.

dependencies {
  compile 'io.trialy.library:trialy:1.0.2'
}

Инициализируйте библиотеку в методе onCreate() основного действия

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //Initialize the library and check the current trial status on every launch
    Trialy mTrialy = new Trialy(mContext, "YOUR_TRIALY_APP_KEY");
    mTrialy.checkTrial(TRIALY_SKU, mTrialyCallback);
}

Добавьте обработчик обратного вызова:

private TrialyCallback mTrialyCallback = new TrialyCallback() {
    @Override
    public void onResult(int status, long timeRemaining, String sku) {
        switch (status){
            case STATUS_TRIAL_JUST_STARTED:
                //The trial has just started - enable the premium features for the user
                 break;
            case STATUS_TRIAL_RUNNING:
                //The trial is currently running - enable the premium features for the user
                break;
            case STATUS_TRIAL_JUST_ENDED:
                //The trial has just ended - block access to the premium features
                break;
            case STATUS_TRIAL_NOT_YET_STARTED:
                //The user hasn't requested a trial yet - no need to do anything
                break;
            case STATUS_TRIAL_OVER:
                //The trial is over
                break;
        }
        Log.i("TRIALY", "Trialy response: " + Trialy.getStatusMessage(status));
    }

};

Чтобы начать пробную версию, позвоните по номеру mTrialy.startTrial("YOUR_TRIAL_SKU", mTrialyCallback);. Ваш ключ приложения и номер SKU для пробной версии можно найти в панели инструментов разработчика Trialy.

person Nick    schedule 20.04.2017