Created
November 13, 2016 16:25
-
-
Save StaverDmitry/c560cf3517cf7ee9dd0dc06a4211b6c9 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
rake braintree_subscriptions:update | |
~ Проверит отмененные и оконченные подписки в брейнтри и уберет их(*cancel) у юзера. | |
~ Проверяет на случай, когда в БД нет подписки, которая создалась в Брейнтри. | |
Скидочные купоны | |
~ Создаются или через админку или rake таской для оконченных Free подписок. | |
~ Поведение рассылки по дням можно изменить в таске braintree_subscriptions:send_discount_emails | |
~ Купон создастся в базе, но его нужно активировать по ссылке( метод coupon.link ) или из админки. | |
~ Купонов может быть несколько на одного юзера, но после активации одного, остальные удаляются. | |
~ После покупки с активированным купоном, создается подписка по скидочной цене, а купон удаляется. | |
Free Plan | |
~ Создается с помощью rake db:seed | |
~ По умолчанию триал 7 дней, меняется в админке. | |
Cancel | |
~ Остановить подписку в брейнтри | |
~ Если пришел успешный результат ==========> удаляем из бд | |
~ Подписка уже отменена(BraintreeException) ==========> удаляем из бд | |
~ Подписка Expired ==========> удаляем из бд | |
~ Подписки не существует(BraintreeException) ==========> удаляем из бд | |
~ Создается expired Free подписка | |
Add_Subscription | |
~ Создается новая подписка на брейнтри | |
~ Если пришел успешный результат на новую подписку, удаляем старую *Cancel* | |
****************************************************************** | |
*************************** USER CASES *************************** | |
1. Первый раз зашел в сервис ----> Создается бесплатная подписка. | |
2. Купил новый план ----> *Add_subscription* | |
3. Удаление подписки через admin ----> Стандартное удаление отключено, удаление только через кнопку *Cancel* в разделе "Edit" | |
4. Создание подписки через брейнтри ----> Отлавливается вебхук => *add_subscription* | |
5. Удаление подписки через брейнтри ----> Отлавливается вебхук => *Cancel* | |
6. Создание бесплатного плана ----> Нажать Edit на текущую подписку юзера, выставить нужный план и не убирать галочку "Force free subsription" | |
~ Это нужно потому, что в брейнтри нет асболютно бесплатной подписки, а такие нужны в сервисе на всякий случай. | |
~ "force free == true" заставляет rake task игнорить эту подписку, когда он синхронизирует подписки брейнтри и changeagain | |
~ У юзера должен быть Free план, чтобы создать "Force free" подписку, иначе надо удалить *Cancel* текущую платную. | |
~ у force_free подписки можно менять тарифные планы | |
7. Создалось несколько подписок в брейнтри ----> rake task проверит наличие нескольких подписок у платных юзеров и оставит приоритетную | |
8. Подписка есть в базе, но нет в брейнтри ----> rake task заканселит эту подписку *Cancel* | |
9. Free plan expired ----> Каждый день для юзера создается скидочный купон, | |
~ Купоны создаются таской braintree_subscriptions:create_discounts, там же можно поменять поведение по дням | |
~ Ссылка на активацию присылается юзеру на email | |
Braintree иногда возвращает ошибку при создании подписки "Invalid payment nonce". | |
Происходит если юзер открыл дашборд в еще одной табе и попробовал оплатить с прошлой табы. | |
Прошлый payment nonce експайрится в брейнтри и платеж не проходит, | |
Юзера редиректнет в дашборд с notice: "There was an error with your subscription. Please try again". | |
Еще, вероятно, payment_nonce сам экспайрится по времени | |
Ошибка логается |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment