Страница и виджет активации
Оплату принимаете вы, активацию целиком ведём мы. От вас — отдать клиенту ссылку из заказа или поставить на сайт виджет: клиент сам присылает данные, а мы проверяем их, включаем подписку и ведём его до «Подписка включена».
Как это выглядит
Это живой пример — тот же виджет, что увидит ваш клиент. Вставьте любой ID вида
9959bd2c-8b17-4d16-b9c4-19d972827140 и нажмите «Активировать». Сверху — где открыт виджет и
оформление: наше по умолчанию или ваш лейбл.
Всё на нас — от вас только ссылка
- Объясняем клиенту, что прислать, и даём кнопку прямо на нужную страницу сервиса
- Проверяем данные до отправки: неполный ID, ID команды вместо личного, не та страница
- Включаем подписку и показываем статус до «Подписка включена»
- Спрашиваем клиента сами, если сервис просит проверку личности или решение «включить сейчас»
- Отвечаем клиенту по активации — поддержка Astrum Shop
- Принять оплату и создать заказ —
POST /v1/orders - Отдать клиенту ссылку из заказа или поставить виджет
- Отвечать по оплате и возврату
Хранить данные клиентов не нужно: ID, токены и session key идут к нам напрямую, мимо вашего сервера.
Подключение
- Создайте заказ — как обычно. В ответе — ссылка на страницу активации этого заказа,
activation.page_url. У способов без активации (key,account) и у «нового аккаунта» ссылки нет:null. - Отдайте ссылку клиенту кнопкой «Включить подписку», сообщением в боте, письмом. Страница живёт на отдельном адресе для клиентов — https://activate.astrum.shop, витрина магазина там не открывается — и работает на компьютере и на телефоне.
- Или поставьте виджет у себя две строки на странице «Спасибо за заказ»: скрипт — один
раз на странице, элемент — там, где нужен виджет, в
url—page_urlиз заказа. Адрес сайта сначала добавьте в кабинете: «Интеграция → Страница активации» — на других сайтах виджет не откроется.
<script src="https://activate.astrum.shop/activation.js" async></script>
<astrum-activation url="https://activate.astrum.shop/#t=k7Qm2xR9…"></astrum-activation>
Высоту виджет подбирает сам и подстраивается под колонку от 320 px.
Статус у себя на странице — событие status на элементе (event.detail.status):
waiting → processing → completed; не вышло — failed. На сервер — как сейчас: order.updated на каждый шаг, в том
числе когда данные прислал клиент со страницы.
Если у сайта свой заголовок Content-Security-Policy, разрешите в нём
https://activate.astrum.shop — в script-src для скрипта и в frame-src для окна виджета.
В песочнице
Ссылка есть и у тестового заказа: она ведёт на демо-страницу, где активацию можно пройти без оплаты и без настоящего аккаунта клиента.
Что видит клиент
Тексты — наши, на «вы» и без технических слов. Если нужен ответ клиента, страница спросит его сама.
Данные получили; обычно это пара минут, статус обновится сам.
Сервис просит подтвердить личность на аккаунте: кнопка ведёт на страницу сервиса.
Можно дождаться её окончания или включить сразу: дни текущей сгорят.
И кнопка «Вернуться в магазин», если вы указали адрес в кабинете.
Оформление
По умолчанию на странице и в виджете — Astrum Shop: наш дизайн и наше имя. По договорённости — ваш лейбл. Оформление включаем мы: напишите в поддержку, договоримся.
Наш дизайн и наше имя — у всех.
Ваши логотип и имя, внизу — «Работает на Astrum Shop».
Ваши имя, логотип, цвет и тема; нашего имени на странице нет.
Отдельный адрес страницы под ваш домен не нужен: чтобы клиент не уходил с вашего сайта, поставьте виджет — он открывается прямо у вас на странице, в том же оформлении.
Безопасность
Ссылка — ключ к одному заказу
Она открывает активацию только своего заказа — ни баланса, ни других заказов, ни товара по
ней не видно. Ключ стоит после #: браузер не отправляет его на сервер, в логи и Referer он
не попадает. Отдавайте ссылку только покупателю.
Если форма у вас своя
Всё по-прежнему: данные клиента отправляйте через POST /v1/orders/ —
раздел «Активация». Страница и API — одна активация: попытки у них общие, и что клиент
прислал на странице, вы увидите в заказе.
