Надо ещё сделать подписки которые платят подписчикам... :)
Типа продажа рекламных объявлений ;)
Всем привет, в этой статье мы обсудим, как правильно рассчитывать позитив/негатив при смене платной подписки. Начнем с самого начала.
Что такое платная подписка? Это сервис автоматических платежей на блокчейне по модели подписки. Модель задается 3 переменными:
Думаю, чаще будет использоваться одноуровневая 30-дневная подписка за определенное количество токенов. Это может быть как VIP подписка для дополнительных возможностей сервиса, так и доступ к закрытым разделам/данным. В теории это также может быть платная подписка на расширение API запросов или хостинга файлов :)
Итак, аккаунт в блокчейне публикует условия платной подписки.
Другой аккаунт (подписчик на платный сервис/услугу) подтверждает условия подписки в операции, соглашаясь на них и указывая хочет ли он автоматически ее подтверждать через параметр auto_renewal.
Если смотреть на эту механику "просто" то при окончании подписки все сводится к проверке параметра auto_renewal и если он включен, то проверка баланса и автоматическая оплата подписки. Но есть и сложности. А что, если модель подписки изменилась?
Представим, что каждый параметр модели платной подписки создатель решил изменить.
Старые договоренности (соглашения) по платным подпискам не должны пострадать. Поэтому все существующие подписки продолжают работать до завершения периода. Возникает 2 возможных ситуации:
Рассмотрим оба случая:
Если пользователь заранее решает согласиться с условиями и выбрать другую модель подписки, то фактически это значит прерывание действия текущей подписки и созданией новой. В этом случае нужно рассчитать остаток от старой подписки, цену новой подписки и принять решение.
Тут может быть два случая. Первый случай — остаток от старой подписки МЕНЬШЕ, чем суммарная плата за новую модель подписки. Он решается тем, что от новой суммарной платы вычитается остаток от старой подписки.
Второй случай наступает тогда, когда остаток от старой подписки БОЛЬШЕ, чем суммарная плата за новую модель подписки. Такое может возникнуть, когда пользователь понижает уровень подписки в начале действия старой, или когда плата за подписку стала меньше. В таком случае тоже есть решение. Рассчитывается коэффициент: остаток делится на новую сумму. Например, получилось 1.8. Он умножается на новый период в секундах и записывается заместо него. Для примера, подписка была на 30 дней, соотношение остатка к сумме новой модели подписки 1.8, тогда при согласии пользователя перейти на новую модель подписка будет продлена и будет действовать не 30 дней, а 54 дня.
Уже оплаченную платную подписку нельзя отменить вручную. Ее можно остановить только переключением автоматического продления (параметр auto_renewal). Или она автоматически будет остановлена по следующим причинам.
Все это надо запрограммировать и сделать правильно. А также сделать новый плагин с API для обращений к новым сущностям (модель платной подписки, платная подписка).
В скором времени я намерен представить сообществу VIZ.World код, претендент для проведения 5 хардфорка в мейннете VIZ. Именно в нем будет реализована возможность для процессинга платных подписок через блокчейн VIZ.
Надо ещё сделать подписки которые платят подписчикам... :)
Типа продажа рекламных объявлений ;)
надо сделать ещё подписки, которые платят подписчикам, типа продажа рекламных объявлений :)
надо сделать ещё подписки, которые платят подписчикам, типа продажа рекламных объявлений :)
надо сделать ещё подписки, которые платят подписчикам, типа продажа рекламных объявлений :)
Интересно... Со всем согласен.
@on1x, а будет ли способ у пользователя посмотреть список подписок? Например, с его баланса снимаются токены, но он забыл, за что. Такое часто бывает в реальной жизни. Например, с подписками на мобильные сервисы.