Как настроить интеграцию с SaleBot
SaleBot — конструктор для автоматизации продаж, работы с клиентами, онлайн-записи, рассылок и других бизнес-процессов.
При совместном использовании сервиса с платёжной системой GetPlatinum настройте интеграцию через API для автоматической передачи статуса оплаты заказа.
Настройка интеграции
Шаг 1. Получение ключа API в GetPlatinum
Чтобы настроить интеграцию с SaleBot, необходимо предварительно получить ваш API-ключ GetPlatinum. Для этого:
В личном кабинете GetPlatinum перейдите в раздел «Настройки — Организации».
Напротив вашей организации нажмите значок шестерёнки.
- В поле «API-ключ» скопируйте его значение при помощи специальной кнопки.
Скачать подробную документацию по API GetPlatinum можно по кнопке ниже.
Шаг 2. Добавление API GetPlatinum в SaleBot
- Зарегистрируйтесь/авторизуйтесь в сервисе SaleBot и перейдите в меню «Проекты».
- Нажмите кнопку «Создать проект», укажите его название и другие параметры при необходимости.
- В левом боковом меню перейдите в раздел «Настройки — Константы» и нажмите значок карандаша для добавления нового параметра.
- В открывшемся окне нажмите «Добавить переменную».
- В поле слева введите параметр
gplToken, в поле справа — API-ключ запросов к GetPlatinum, который вы скопировали ранее. Сохраните настройки.
Шаг 3. Создание API-ключа для callbacks в SaleBot
- В сервисе SaleBot войдите в раздел «Настройки — Интеграции» и нажмите кнопку «Добавить API-ключ».
- Сгенерируйте по кнопке API-ключ, активируйте селектор доступа «Разрешение на изменение/удаление информации о клиентах» и нажмите «Готово».
Готово! Базовые настройки API-ключей для передачи данных между GetPlatinum и SaleBot завершены.
Настройки автоматизации в SaleBot
В данном разделе рассмотрим параметры настройки базовых блоков в проекте SaleBot, которые необходимы для создания автоматизации между двумя сервисами.
Добавление блоков происходит в меню «Конструктор».
Передача данных о заказе из SaleBot в GetPlatinum
Блок 1. Инициализация платежа
Для передачи данных о заказе (наименование, стоимость, валюта и др.) из SaleBot в GetPlatinum используйте блок «Стартовое условие».
Настройте параметры блока:
Укажите «Условие» — ключевое слово или фразу, по которой пользователь будет запускать цепочку событий. Например, для бота можно указать
/start.
- Добавьте «API-запрос».
Выберите тип запроса «POST-json»:
В поле «URL запроса» укажите API-URL от GetPlatinum для инициализации платежа в формате
https://ИМЯ_АККАУНТА.getplatinum.ru/api/public/pay/init-payment-url, где «ИМЯ_АККАУНТА» — название вашего аккаунта GetPlatinum (отображается в адресной строке браузера и в правом верхнем углу в личном кабинете GetPlatinum).
В поле «Сохраняемые значения» укажите, какие значения необходимо сохранить из JSON-ответа. Например:
formUrl -> initFormUrl;
errorCode -> initErrorCode;
В поле «Заголовок запроса» укажите
{ "Authorization": "Bearer #{gplToken}" }.
В поле «JSON параметры» пропишите параметры передаваемых данных о заказе (валюта, стоимость, наименование и т. д.). Например:
{"dealId": "#{order_id}","currency": "RUB","amount": 1000,"positions": [{"prefix": 12,"name": "Курс обучения","price": 1000,"quantity": 1,"vat": "none"}],"clientParams": {"clientId": "#{client_id}","phone": "#{phone}","email": "#{email}","name": "#{full_name}"},"notificationUrl": "https://chatter.salebot.pro/api/API_KEY/callback","successUrl": "https://getplatinum.ru/payment/success","failUrl": "https://getplatinum.ru/payment/failed","customParams": {}}, где «currency» — это валюта заказа, «amount» и «price» — стоимость, «name» — наименование, «vat» — НДС вашей организации в GetPlatinum.
Подробное описание параметров инициализации заказа можно получить в API-документации GetPlatinum по кнопке ниже.
Обратите внимание: в параметре «notificationUrl» необходимо указать ссылку в формате https://chatter.salebot.pro/api/API_KEY/callback , где «API_KEY» — это API-ключ для callbacks в SaleBot, созданный на Шаге 3 предыдущего раздела.
Чтобы зафиксировать ID сделки для дальнейшего использования, добавьте «Калькулятор» со следующими параметрами:
order_id = get_order_id()client_id = get_client_id_by_platform_id(client_type, platform_id)
Блок 2. Кнопка оплаты
Для перехода к оплате заказа в том сервисе, с которым вы используете автоматизацию с помощью SaleBot (например, Telegram-бот, Max, e-mail, ВКонтакте и др.), необходимо настроить кнопку оплаты. Для этого добавьте блок «Состояние диалога» и при необходимости на вкладке «Сообщение» введите сопутствующий кнопке текст, например «Перейти к оплате».
Далее добавьте саму кнопку на одноимённой вкладке.
В открывшемся окне настройте параметры:
Введите текст, который будет отображаться на кнопке, например «Оплатить».
В поле «URL» пропишите URL формы, полученный из API:
#{initFormUrl}.При необходимости настройте другие параметры и нажмите «Добавить».
- В параметрах кнопки выберите тип «Кнопки в тексте».
Пример отображения кнопки в Telegram:
Для работы блоков добавьте связь между ними, как описано в подразделе ниже.
Готово! В результате вышеописанных настроек из сервиса SaleBot будет отправлен URL-запрос с данными о заказе в платёжный сервис GetPlatinum. При нажатии кнопки оплаты пользователь будет переадресован на страницу авторизации, а затем на страницу оплаты заказа.
Для обработки данных платежа следует также настроить автоматизацию для успешной и НЕуспешной оплаты.
Обработка успешного платежа
Блок 3. Инициация успешного платежа
Для передачи данных о поступлении оплаты заказа из GetPlatinum в SaleBot используйте блок «Стартовое условие» со следующими параметрами:
В поле «Условие» укажите сообщение, которое будет являться сигналом в callback от GetPlatinum —
paymentStatusSuccess.В расширенных настройках активируйте селектор «Срабатывать только на Callback».
Блок 4. Сообщение об успешной оплате
Для сообщения пользователю о том, что его оплата прошла успешно, используйте блок «Закрыть сделку», в котором на вкладке «Сообщения» добавьте текст сообщения для пользователя, например «Поступила оплата заказа».
Далее добавьте действие на одноимённой вкладке.
В параметрах действия выберите:
В поле «Действия» — «Завершить сделку»;
В появившемся поле «Метод завершения сделки» — «Сделка успешная».
Для работы блоков добавьте связь между ними, как описано в подразделе ниже.
Готово! В результате вышеописанных настроек при поступлении оплаты заказа в GetPlatinum данные об успешном платеже будут переданы в SaleBot, а пользователь получит соответствующее сообщение.
Обработка НЕуспешного платежа
Блок 5. Инициация НЕуспешного платежа
Для передачи данных об ошибке платежа из GetPlatinum в SaleBot используйте блок «Стартовое условие» со следующими параметрами:
В поле «Условие» укажите сообщение, которое будет являться сигналом в callback от GetPlatinum —
paymentStatusFail.В расширенных настройках активируйте селектор «Срабатывать только на Callback».
Блок 6. Сообщение о НЕуспешной оплате
Для сообщения пользователю о том, что его оплата не прошла, используйте блок «Закрыть сделку», в котором на вкладке «Сообщения» добавьте текст сообщения для пользователя, например «Заказ не был оплачен».
Далее добавьте настройки, соответствующие вашему алгоритму при ошибке оплаты (отправка сообщения, создание нового заказа и т. п.). В статье рассмотрим пример с завершением сделки. Для этого добавьте действие на одноимённой вкладке.
В параметрах действия задайте следующие настройки:
В поле «Действия» — «Завершить сделку»;
В появившемся поле «Метод завершения сделки» — «Сделка провалена».
Для работы блоков добавьте связь между ними, как описано в подразделе ниже.
Готово! В результате вышеописанных настроек при ошибке оплаты заказа в GetPlatinum данные о НЕуспешном платеже будут переданы в SaleBot, а пользователь получит соответствующее сообщение.
Связь между блоками
Для соединения блоков нажмите на один из них и проведите стрелку от появившегося на нём белого узелка ко второму блоку. Далее нажмите значок шестерёнки, чтобы настроить параметры связи:
В поле «Задержка перед ответом» установите нулевое значение.
Опционально: для соединения Блока 1 и Блока 2 можно добавить проверку возврата ошибки от GetPlatinum. Для этого разверните расширенные настройки и в поле «Переменная» укажите значение initErrorCode == 0 .
Финальная схема отправки данных по заказу из SaleBot в GetPlatinum и обработки платежа в описанном в статье примере будет выглядеть следующим образом: