|
2 / 2 / 1
Регистрация: 13.12.2015
Сообщений: 72
|
|
Приложение, которое продаётся по подписке19.06.2017, 10:42. Показов 2393. Ответов 4
Всем здравствуйте.
Разрабатываем приложение, которое будет продаваться по подписке. Есть ряд вопросов не по коду, а для понимания системы "подводных камней" подобных приложений. Вот они: 1. Верно ли что такие приложения должны обладать постоянно обновляющимся (и сохраняющимся) контентом? Т.е. тут простейший пример - подписка на журналы. Можно покупать по отдельности. А можно оплатить месяц подписки и читать всё, что выпустилось за этот месяц. В случае с приложением: оплатил месяц - пользуйся всем, что есть в течение месяца. Следовательно, если такого контента нет, то бессмысленно продавать так приложение. Всё верно? 2. Верно ли то, что такие приложения должны быть всё-таки заточены под использование с постоянно включённым Интернетом? (или по крайней мере очень часто включаемым). Если нет, то как тогда правильно определять, что подписка истекла? (базу данных в таком случае можно легко обмануть, вроде бы) 3. Каким образом осуществляется проверка того, что подписка уже оплачена. Т.е., к примеру, пользователь уже оплатил, прошло даже пара дней оплаченной подписки, но ему пришлось удалить приложение. Он его опять установил, как осуществляется проверка, что подписка есть? Только ведь с включённым Интернетом, верно? А каким образом можно выполнить эту проверку до запуска приложения? Или в таких случаях требуется выполнять что-то вроде авторизации? Или сделать BroadcastReceiver, слушающий включённый Интернет (пока устанавливается приложение всё равно ведь Интернет включён)? Или BroadcastReceiver не будет работать без первого запуска приложения? 4. Во время тестирования подписки функция getPurchases(...) всегда возвращает число купленных подписок. При чём, если есть три варианта и на все получилось подписаться, то всегда возвращается 3 элемента внутри списка купленных товаров. Вопрос - так должно быть во время тестирования? Имеется в виду, что подписка ведь всегда однодневная, следовательно, должна через 24 часа истечь (если она была отменена). Но у нас почему-то всегда возвращается список выполненных подписок независимо от того продлевались они или нет. Даже с выключенным Интернетом. Это корректное поведение? Или виной всему то, что данное тестирование выполняется не для .apk, установленного из магазина, а для .apk, который создаётся во время debug (при этом debug-версия отличается от версии в магазине)? 5. Если пользователь хочет подписаться на другой вариант подписки, то ему сначала требуется вручную отменить уже выполненную подписку, верно? И в таком случае нужно как-то самому проверять, что оплаченный вариант подписки сохраняется до истечения своего срока или это уже реализовано в Google Play (не видели свойства длительности подписки)? 6. Если пользователь подписался на месяц, а потом отменил и подписался на полгода, следовательно, у него будет 7 месяцев подписки? Пожалуйста, внесите ясность в указанные вопросы.
0
|
|
| 19.06.2017, 10:42 | |
|
Ответы с готовыми решениями:
4
Узнать приложение которое запустило моё приложение Создайте приложение, которое печатает Приложение, которое не видно в TaskBar |
|
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
|
|
| 19.06.2017, 12:20 | |
|
1. Если пользователь купил месячную, и при этом ничего не было выпущено - естественно что у него будут претензии к авторам. Поэтому сделайте 3 месяца минимальную.
2. Нет, факт покупок хранит установленное приложение GooglePlay. В момент покупки вы обращаетесь к этому приложению и возвращает ответ о фактах покупок это приложение. И хранит данные тоже оно. Но в любом случае всегда можно ваше приложение расковырять и в тот момент, когда оно получает данные о покупках вставить, вставить свой код и собрать приложение заново. Естественно для личного пользования или выложить в неофициальных магазинах (торрентах, файлообменниках). Вопрос безопасности приложения - большой вопрос. 3. Факт покупки не хранится в приложении, если вы купили(подписку), удалили апп, установили заново, то факт покупки вернется в приложение (если конечно у разраба мало-мальски прямые руки). Если есть покупки, то желательна авторизация в приложении. Потому что покупка идет от имени того акка, который активен в приложении GP. И если кто-то выйдет из этого акка, а потом войдет под другим и зайдет в ваше приложение, то 2 варианта: если вы храните у себя в приложении данные о покупке, то он увидит контент; если постоянно обращаетесь к GP, то он не увидит контент, т.к. был он куплен с другого акка. И чтоб избежать разночтений, то авторизация с помощью Google аккаунта весьма желательна. 4. Подписки продлеваются автоматически, если их не отменить. Это поведение корректно, если акки тестировщиков добавлены как акки тестировщиков лицензий. 5, 6. Даже если отписался, до конца сроки подписки она будет активной. Если он подпишется на другую, они наложатся друга на друга, суммироваться не будут. Вам это нужно предусмотреть в приложении (не позволять подписываться на такой же тип подписки, если один уже активен) и по истечении выкинуть свой Notification, чтоб человек не забыл подписаться на другую подписку. И при заходе в приложение тоже как нибудь напомнить. Советы в принципе: 1. Перечитать заново Google Play In-app Billing, большинство ответом там. 2. Если есть сервер, всю логику подписок вынести туда. И там проверять наличие у пользователя подписки, доступные ему журналы, товары и т.д. И если подписка истекла, то при заходе в приложение с включенным инетом у него просто отрубается доступ к чем-то платному. Опять же это все зависит от необходимости и размера бюджета.
0
|
|
|
2 / 2 / 1
Регистрация: 13.12.2015
Сообщений: 72
|
|
| 19.06.2017, 12:38 [ТС] | |
|
demixdn, благодарю Вас за ответы. Но всё-таки не до конца всё понятно из Ваших рассуждений и некоторые ответы сформулированы не по моему вопросу. Хочу уточнить:
1. Вопрос заключается в том, что если в приложении нет какого-то обновляемого контента вообще (только функции приложения, которые вряд ли будут обновляться чаще пары раз в год), то и по подписке что-то делать бессмысленно, верно? 2. Вопрос был совершенно не про безопасность. Вопрос был в том, что должны ли приложения с подписками быть заточены под использование с постоянно включённым (или часто включАЕМЫМ) Интернетом? 3. Т.е. факт покупки при первом запуске всё равно нужно проверять с включённым Интернетом, правильно? По-другому ведь не проверить. 4. То, что подписки автоматически продлеваются и это корректно - не в этом вопрос. Почему возвращается список подписок, если они были отменены и истёк один день при тестировании? 6. Я спросил, будут ли суммированы подписки за месяц и за полгода? Т.е., если была отменена подписка на месяц, но она ещё не истекла, то при выполнении подписки на полгода она (ПОДПИСКА НА ПОЛГОДА) станет активной только после истечения срока подписки на месяц? Про рекомендации: 1. Не очень всё легко понять и запомнить из английской документации со специфичными терминами и без кода. 2. Сервера нет.
0
|
|
|
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
|
|
| 19.06.2017, 14:10 | |
Сообщение было отмечено Bro_2 как решение
Решение
1. Да, верно.
2. Не обязательно. 3. Да, при первом запуске нужно проверить. 4. В доках сказано, что нужно вызвать cancel() и после этого она будет еще валидной на протяжении срока подписки. А вот про валидность срока подписки непонятно, на какой именно период (или реальный, или тестовый 1 день). Я когда тестировал, уже точно не скажу. 6. Перечитал. Не будут. Оказывается таки можно апнуть свою подписку. Те деньги, что остались от старой подписки перейдут на оплату новой. И когда они закончатся, со счета клиента снимется вся стоимость новой подписки на следующий период. Здесь более точное описание
1
|
|
|
2 / 2 / 1
Регистрация: 13.12.2015
Сообщений: 72
|
|
| 19.06.2017, 14:28 [ТС] | |
|
demixdn, благодарю за объяснения. Очень Вам признательны.
0
|
|
| 19.06.2017, 14:28 | |
|
Помогаю со студенческими работами здесь
5
Приложение которое вычисляет по формуле
Приложение, которое работает с bmp Файлом Создать приложение, которое нельзя закрыть Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
ПЛИС
zxcha1ka_ 27.01.2026
AHDL
Разработать программы для синтеза следующих устройств:
1. Параллельного регистра
4-х разрядного с синхронной загрузкой и асинхронным сбросом (обнулением);
Пoмoгитe пoжaлyйстa
|
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|