Некоторые из наших Android-приложений являются подписками, а некоторые нет, это разрешено?

Наше приложение для Android пытается получить цены на наши встроенные в Google Play продукты. Некоторые из наших продуктов в приложении являются подписками, а некоторые нет. При вызове биллинговой службы в приложении getSkuDetails метод, чтобы получить цены, мы можем пройти только в одном type Строка в качестве 3-го параметра.

Прямо сейчас эта строка установлена ​​на "inapp", но она не будет работать, если все наши продукты в приложении не относятся к этому типу. Это заставляет меня задуматься: есть ли у вас разные типы приложений в Android? Например, могут ли некоторые продукты быть подписками, а другие - расходными?

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

IInAppBillingService service = activity.getBillingService();

ArrayList<String> skuList = new ArrayList<String>();
skuList.add("in_app_subscr_1");
skuList.add("in_app_subscr_2");
skuList.add("in_app_non_subscr_1");

Bundle querySkus = new Bundle();
querySkus.putStringArrayList("ITEM_ID_LIST", skuList);
Bundle skuDetails = service.getSkuDetails(3, 
    activity.getPackageName(), "inapp", querySkus);

1 ответ

Решение

Я думаю, это должно быть разрешено. Попробуйте сохранить два разных skuList и передать его getSkuDetails с соответствующим типом продукта: inapp для продукта в приложении и subs для подписок.

Возможно, вам придется следовать отдельному рабочему процессу для продукта приложения и подписки. Например, чтобы получить информацию о покупках, совершенных пользователем из вашего приложения, позвоните в getPurchases метод с параметром типа продукта, установленным на "inapp"для продукта в приложении.

Bundle ownedItems = mService.getPurchases(3, getPackageName(), "inapp", null);

И для запроса активных подписок используйте getPurchases метод с параметром типа продукта, установленным на "subs".

Bundle activeSubs = mService.getPurchases(3, "com.example.myapp",
                   "subs", continueToken);
Другие вопросы по тегам