billing in saas applications on rails
DESCRIPTION
TRANSCRIPT
![Page 1: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/1.jpg)
21 сентября 2013 годаАлександров Игорь
Биллинг в SaaS-системах на Rails
http://www.jetrockets.ru
![Page 2: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/2.jpg)
![Page 3: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/3.jpg)
![Page 4: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/4.jpg)
![Page 5: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/5.jpg)
![Page 6: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/6.jpg)
![Page 7: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/7.jpg)
Как организовать биллинг для SaaS-приложения?
![Page 8: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/8.jpg)
Как организовать биллинг для SaaS-приложения?
• Арендовать биллинг
![Page 9: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/9.jpg)
Как организовать биллинг для SaaS-приложения?
• Арендовать биллинг
• Написать самим
![Page 10: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/10.jpg)
PCI Сompliance
![Page 11: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/11.jpg)
PCI Сompliance
https://www.pcisecuritystandards.org/Набор требований для организаций, сервиса и оборудования, которое работает с платёжными данными пользователей.
![Page 12: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/12.jpg)
PCI Сompliance
https://www.pcisecuritystandards.org/Набор требований для организаций, сервиса и оборудования, которое работает с платёжными данными пользователей.
3 стандарта:
• Data Security Standard (PCI DSS),
• Payment Application Data Security Standard (PA-DSS)
• PIN Transaction Security (PTS)
![Page 13: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/13.jpg)
PCI Сompliance
https://www.pcisecuritystandards.org/Набор требований для организаций, сервиса и оборудования, которое работает с платёжными данными пользователей.
3 стандарта:
• Data Security Standard (PCI DSS),
• Payment Application Data Security Standard (PA-DSS)
• PIN Transaction Security (PTS)
Scanning Vendors (> 130 компаний)• https://www.securitymetrics.com
![Page 14: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/14.jpg)
Аренда биллинга у другого SaaS-приложения
![Page 15: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/15.jpg)
Аренда биллинга у другого SaaS-приложения
![Page 16: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/16.jpg)
Аренда биллинга: плюсы
![Page 17: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/17.jpg)
Скорость внедрения
Аренда биллинга: плюсы
![Page 18: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/18.jpg)
Скорость внедрения
Наличие API и библиотек (Ruby)
Аренда биллинга: плюсы
![Page 19: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/19.jpg)
Скорость внедрения
Наличие API и библиотек (Ruby)
“Проверенная работоспособность”
Аренда биллинга: плюсы
![Page 20: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/20.jpg)
Скорость внедрения
Наличие API и библиотек (Ruby)
“Проверенная работоспособность”
Ослабленные требования PCI Compliance
Аренда биллинга: плюсы
![Page 21: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/21.jpg)
Аренда биллинга: минусы
![Page 22: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/22.jpg)
Сложность внесения изменений
Аренда биллинга: минусы
![Page 23: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/23.jpg)
Сложность внесения изменений
Зависимость от внешнего сервиса
Аренда биллинга: минусы
![Page 24: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/24.jpg)
Сложность внесения изменений
Зависимость от внешнего сервиса
Сложность в использовании нескольких вариантов
платежей
Аренда биллинга: минусы
![Page 25: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/25.jpg)
Сложность внесения изменений
Зависимость от внешнего сервиса
Сложность в использовании нескольких вариантов
платежей
Постоплатный биллинг
Аренда биллинга: минусы
![Page 26: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/26.jpg)
Разработка биллинга: плюсы
![Page 27: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/27.jpg)
Различные варианты оплаты
Разработка биллинга: плюсы
![Page 28: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/28.jpg)
Различные варианты оплаты
Любая логика работы подписки
Разработка биллинга: плюсы
![Page 29: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/29.jpg)
Различные варианты оплаты
Любая логика работы подписки
Централизация данных
Разработка биллинга: плюсы
![Page 30: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/30.jpg)
Различные варианты оплаты
Любая логика работы подписки
Централизация данных
Слабая зависимость от сторонних сервисов
Разработка биллинга: плюсы
![Page 31: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/31.jpg)
Разработка биллинга: минусы
![Page 32: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/32.jpg)
Страшно!
Разработка биллинга: минусы
![Page 33: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/33.jpg)
Страшно!
Заказчик боится
Разработка биллинга: минусы
![Page 34: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/34.jpg)
Страшно!
Заказчик боится
Долгая разработка и тестирование
Разработка биллинга: минусы
![Page 35: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/35.jpg)
Страшно!
Заказчик боится
Долгая разработка и тестирование
Полное соблюдение правил PCI Compliance
Разработка биллинга: минусы
![Page 36: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/36.jpg)
https://github.com/igor-alexandrov/spaceship
SpaceShip
![Page 37: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/37.jpg)
SpaceShip• Тарифный план
• Подписка
• Процесс биллинга
• Биллинговый интервал
• Инвойс
• Оплата и транзакции
• Хранение кредитных карт
![Page 38: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/38.jpg)
Тарифный планapp/models/billing/plan.rb
![Page 39: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/39.jpg)
Тарифный план
app/models/billing/plan.rb
![Page 40: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/40.jpg)
Тарифный план
• Стоимости услуг за единицу времени
app/models/billing/plan.rb
![Page 41: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/41.jpg)
Тарифный план
• Стоимости услуг за единицу времени– месячная стоимость
app/models/billing/plan.rb
![Page 42: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/42.jpg)
Тарифный план
• Стоимости услуг за единицу времени– месячная стоимость– годовая стоимость
app/models/billing/plan.rb
![Page 43: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/43.jpg)
Тарифный план
• Стоимости услуг за единицу времени– месячная стоимость– годовая стоимость– квартальная стоимость
app/models/billing/plan.rb
![Page 44: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/44.jpg)
Тарифный план
• Стоимости услуг за единицу времени– месячная стоимость– годовая стоимость– квартальная стоимость– …
app/models/billing/plan.rb
![Page 45: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/45.jpg)
Тарифный план
• Стоимости услуг за единицу времени– месячная стоимость– годовая стоимость– квартальная стоимость– …
• Набор ресурсов, который может быть доступен пользователю
app/models/billing/plan.rb
![Page 46: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/46.jpg)
Тарифный план
• Стоимости услуг за единицу времени– месячная стоимость– годовая стоимость– квартальная стоимость– …
• Набор ресурсов, который может быть доступен пользователю
• Длительность (наличие) триального периода
app/models/billing/plan.rb
![Page 47: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/47.jpg)
Подпискаapp/models/billing/subscriptions/base.rb
![Page 48: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/48.jpg)
Подпискаapp/models/billing/subscriptions/base.rb
![Page 49: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/49.jpg)
Подписка
• Пользователь
app/models/billing/subscriptions/base.rb
![Page 50: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/50.jpg)
Подписка
• Пользователь• Тарифный план
app/models/billing/subscriptions/base.rb
![Page 51: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/51.jpg)
Подписка
• Пользователь• Тарифный план• Биллинговый интервал
app/models/billing/subscriptions/base.rb
![Page 52: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/52.jpg)
Подписка
• Пользователь• Тарифный план• Биллинговый интервал
• Выбранные параметры
app/models/billing/subscriptions/base.rb
![Page 53: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/53.jpg)
Подписка
• Пользователь• Тарифный план• Биллинговый интервал
• Выбранные параметры– максимальное число пользователей, товаров, места на диске…
app/models/billing/subscriptions/base.rb
![Page 54: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/54.jpg)
Подписка
• Пользователь• Тарифный план• Биллинговый интервал
• Выбранные параметры– максимальное число пользователей, товаров, места на диске…
• Набор дополнительных сервисов (тарифицируются отдельно)
app/models/billing/subscriptions/base.rb
![Page 55: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/55.jpg)
Подписка
• Пользователь• Тарифный план• Биллинговый интервал
• Выбранные параметры– максимальное число пользователей, товаров, места на диске…
• Набор дополнительных сервисов (тарифицируются отдельно)– интеграция с внешним источником данных
app/models/billing/subscriptions/base.rb
![Page 56: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/56.jpg)
Подписка
• Пользователь• Тарифный план• Биллинговый интервал
• Выбранные параметры– максимальное число пользователей, товаров, места на диске…
• Набор дополнительных сервисов (тарифицируются отдельно)– интеграция с внешним источником данных– дополнителные услуги, входящие в более премиальные планы
app/models/billing/subscriptions/base.rb
![Page 57: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/57.jpg)
Подписка (стоимость)
app/models/billing/subscriptions/base.rb
![Page 58: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/58.jpg)
Сколько стоит минимальный биллинговый интервал (1 день)
Подписка (стоимость)
app/models/billing/subscriptions/base.rb
![Page 59: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/59.jpg)
Сколько стоит минимальный биллинговый интервал (1 день)
• сколько стоит полный интервал обслуживания пользователя
Подписка (стоимость)
app/models/billing/subscriptions/base.rb
![Page 60: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/60.jpg)
Сколько стоит минимальный биллинговый интервал (1 день)
• сколько стоит полный интервал обслуживания пользователя
• сколько средств уже потрачено
Подписка (стоимость)
app/models/billing/subscriptions/base.rb
![Page 61: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/61.jpg)
Сколько стоит минимальный биллинговый интервал (1 день)
• сколько стоит полный интервал обслуживания пользователя
• сколько средств уже потрачено
• сколько средств можно вернуть
Подписка (стоимость)
app/models/billing/subscriptions/base.rb
![Page 62: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/62.jpg)
Подписка (биллинговый интервал)app/models/billing/subscriptions/base.rb
![Page 63: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/63.jpg)
Подписка (биллинговый интервал)app/models/billing/subscriptions/base.rb
![Page 64: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/64.jpg)
Подписка (биллинговый интервал)app/models/billing/subscriptions/base.rb
![Page 65: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/65.jpg)
Подписка (биллинговый интервал)app/models/billing/subscriptions/base.rb
![Page 66: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/66.jpg)
Подписка (биллинговый интервал)app/models/billing/subscriptions/base.rb
![Page 67: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/67.jpg)
Подписка (процесс биллинга)app/models/billing/subscriptions/base.rb
![Page 68: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/68.jpg)
• Выставляется дата следующего биллинга
Подписка (процесс биллинга)app/models/billing/subscriptions/base.rb
![Page 69: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/69.jpg)
• Выставляется дата следующего биллинга
• сдвиг на 30, 365 дней и так далее.
Подписка (процесс биллинга)app/models/billing/subscriptions/base.rb
![Page 70: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/70.jpg)
• Выставляется дата следующего биллинга
• сдвиг на 30, 365 дней и так далее.
• Расчитывается стоимость полученного интервала;
Подписка (процесс биллинга)app/models/billing/subscriptions/base.rb
![Page 71: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/71.jpg)
• Выставляется дата следующего биллинга
• сдвиг на 30, 365 дней и так далее.
• Расчитывается стоимость полученного интервала;
• Создаётся инвойс
Подписка (процесс биллинга)app/models/billing/subscriptions/base.rb
![Page 72: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/72.jpg)
• Выставляется дата следующего биллинга
• сдвиг на 30, 365 дней и так далее.
• Расчитывается стоимость полученного интервала;
• Создаётся инвойс
• Оповещение пользователя (email, sms).
Подписка (процесс биллинга)app/models/billing/subscriptions/base.rb
![Page 73: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/73.jpg)
Инвойс (счёт)app/models/billing/invoice.rb
![Page 74: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/74.jpg)
Инвойс (счёт)
app/models/billing/invoice.rb
![Page 75: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/75.jpg)
Инвойс (счёт)
• дата создания (issue date)
app/models/billing/invoice.rb
![Page 76: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/76.jpg)
Инвойс (счёт)
• дата создания (issue date)• срок оплаты (due date)
app/models/billing/invoice.rb
![Page 77: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/77.jpg)
Инвойс (счёт)
• дата создания (issue date)• срок оплаты (due date)• общая сумма, которую должен заплатить клиент
app/models/billing/invoice.rb
![Page 78: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/78.jpg)
Инвойс (счёт)
• дата создания (issue date)• срок оплаты (due date)• общая сумма, которую должен заплатить клиент
• человеко-понятная информация:
app/models/billing/invoice.rb
![Page 79: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/79.jpg)
Инвойс (счёт)
• дата создания (issue date)• срок оплаты (due date)• общая сумма, которую должен заплатить клиент
• человеко-понятная информация:• описание услуг
app/models/billing/invoice.rb
![Page 80: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/80.jpg)
Инвойс (счёт)
• дата создания (issue date)• срок оплаты (due date)• общая сумма, которую должен заплатить клиент
• человеко-понятная информация:• описание услуг• стоимость
app/models/billing/invoice.rb
![Page 81: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/81.jpg)
Инвойс (счёт)
• дата создания (issue date)• срок оплаты (due date)• общая сумма, которую должен заплатить клиент
• человеко-понятная информация:• описание услуг• стоимость• скидки
app/models/billing/invoice.rb
![Page 82: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/82.jpg)
Инвойс (счёт)
• дата создания (issue date)• срок оплаты (due date)• общая сумма, которую должен заплатить клиент
• человеко-понятная информация:• описание услуг• стоимость• скидки• …
app/models/billing/invoice.rb
![Page 83: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/83.jpg)
Инвойс (счёт)
app/models/billing/invoice.rb
![Page 84: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/84.jpg)
• ничего не знает о том, в результате чего он был создан;
Инвойс (счёт)
app/models/billing/invoice.rb
![Page 85: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/85.jpg)
• ничего не знает о том, в результате чего он был создан;• знает о транзакциях, которые проводились с ним;
Инвойс (счёт)
app/models/billing/invoice.rb
![Page 86: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/86.jpg)
• ничего не знает о том, в результате чего он был создан;• знает о транзакциях, которые проводились с ним;
1. class Billing::Invoice < ActiveRecord::Base2. 3. belongs_to :account, :inverse_of => :billing_transactions4. has_many :transactions, :class_name => "Billing::Transaction"5. 6. end
Инвойс (счёт)
app/models/billing/invoice.rb
![Page 87: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/87.jpg)
• могут быть применены скидочные купоны;• основание для совершения действий над аккаунтом
пользователя:– перевод на более другой план при отсутвии оплаты;– блокировка функциональности;
Инвойс (счёт)
app/models/billing/invoice.rb
![Page 88: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/88.jpg)
Оплата
![Page 89: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/89.jpg)
Active Merchant
• code extraction из Shopify• > около 100 платёжных провайдеров• в production с 2006 года
• есть интеграция с Robokassa
http://activemerchant.org/
Оплата
![Page 90: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/90.jpg)
Оплата (мир)
![Page 91: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/91.jpg)
Оплата (мир)
![Page 92: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/92.jpg)
https://www.braintreepayments.com/
Оплата (мир)
![Page 93: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/93.jpg)
https://www.braintreepayments.com/
Оплата (мир)
![Page 94: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/94.jpg)
Оплата (Braintree)https://www.braintreepayments.com/
![Page 95: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/95.jpg)
• USA, Europe, Canada, Australia;
Оплата (Braintree)https://www.braintreepayments.com/
![Page 96: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/96.jpg)
• USA, Europe, Canada, Australia;• До сих пор нет в России;
Оплата (Braintree)https://www.braintreepayments.com/
![Page 97: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/97.jpg)
• USA, Europe, Canada, Australia;• До сих пор нет в России;• > 130 валют;
Оплата (Braintree)https://www.braintreepayments.com/
![Page 98: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/98.jpg)
• USA, Europe, Canada, Australia;• До сих пор нет в России;• > 130 валют;
• PCI Compliance за 15 минут;
Оплата (Braintree)https://www.braintreepayments.com/
![Page 99: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/99.jpg)
Безопасное хранение информации о кредитных картах
1. class Billing::Card2. ...3. result = Braintree::CreditCard.create({4. :customer_id => self.user.try(:braintree_customer_id),5. :number => self.number,6. :expiration_date => self.expiration_date.strftime('%m/%Y'),7. :cardholder_name => [self.first_name, self.last_name].compact.join(' ')8. })9. 10. if result.success?11. self.token = result.credit_card.token 12. else13. self.errors.add(:base, result.errors.first.message)14. return false15. end16.end
https://www.braintreepayments.com/
Оплата (Braintree)
![Page 100: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/100.jpg)
Оплата (Россия)
![Page 101: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/101.jpg)
Оплата (Россия)
![Page 102: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/102.jpg)
https://paysio.com/
Оплата (Россия)
![Page 103: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/103.jpg)
Транзакция
app/models/billing/transaction.rb
![Page 104: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/104.jpg)
Транзакция
• зачисление средств на внутренний счёт
app/models/billing/transaction.rb
![Page 105: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/105.jpg)
Транзакция
• зачисление средств на внутренний счёт• списание средств с внутреннего счёта
app/models/billing/transaction.rb
![Page 106: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/106.jpg)
Транзакция
• зачисление средств на внутренний счёт• списание средств с внутреннего счёта• оплата через Braintree
app/models/billing/transaction.rb
![Page 107: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/107.jpg)
Транзакция
• зачисление средств на внутренний счёт• списание средств с внутреннего счёта• оплата через Braintree
• оплата через PayPal (авторизация + списание средств)
app/models/billing/transaction.rb
![Page 108: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/108.jpg)
Транзакция
app/models/billing/transaction.rb
![Page 109: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/109.jpg)
Транзакция
• Хранит информацию о всех манипуляциях со средствами пользователя: удачных и неудачных.
app/models/billing/transaction.rb
![Page 110: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/110.jpg)
Транзакция
• Хранит информацию о всех манипуляциях со средствами пользователя: удачных и неудачных.
• В зависимости от типа может инициировать оплату с помощью выбранного провайдера платежей.
app/models/billing/transaction.rb
![Page 111: Billing In SaaS applications on Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546e688ab4af9fb4268b4625/html5/thumbnails/111.jpg)
Транзакция
• Хранит информацию о всех манипуляциях со средствами пользователя: удачных и неудачных.
• В зависимости от типа может инициировать оплату с помощью выбранного провайдера платежей.
• В некоторых случаях может быть отменена.
app/models/billing/transaction.rb