Как настроить PayPal

Для работы с PayPal нужно получить два ключа: client_id и secret.

Переходим на страницу:

https://developer.paypal.com/developer/applications/

И выбираем из списка или создаем новое приложение:

Вверху меняем переключатель в режим Live и выбираем нужное приложение. Открывается страница с настройками, где находятся нужные нам данные:

Копируем данные и вставляем в соответствующие поля в настройках Salebot: перейдите в раздел «Эквайринг» и найдите сервис PayPal:

Далее нажмите «Подключить» и заполните поля ранее полученными секретным ключом и Client ID:

Далее нажмите «Сохранить настройки». На этом подключение окончено.

Как создать ссылку на оплату

С помощью переменной payment_sum

Для генерации ссылки на оплату вам необходимо установить значение переменной payment_sum, и сразу после этого появится переменная paypal_pay_url.

Параметр Описание параметра Примечание
payment_title Необязательная переменная. Это название товара. Если не указать, заполняется текстом: «Оплата счета order_id» (order_id — идентификатор заказа в Salebot).
payment_description Описание товара, необязательное поле.
company_name Название вашей компании, отображается в самом верху платежной страницы.

Кроме этого, до указания payment_sum можно задать, на каком языке будет платежная страница.

Для этого нужно задать переменную locale. По умолчанию стоит русский язык (ru-RU).

Возможные варианты:

da-DK
he-IL
id-ID
ja-JP
no-NO
pt-BR
ru-RU
sv-SE
th-TH
zh-CN
zh-HK
zh-TW

и другие. Набор доступных языков меняется, ориентируйтесь на первоисточник.

Также можно указать валюту, в которой производится прием оплаты. Для этого указываем переменную currency.

По умолчанию установлен рубль (RUB). Для доллара задайте ее значение USD:

currency = "USD"

Возможные варианты валют можно узнать по ссылке.

Третий дополнительный параметр — company_name. Это название вашей компании, которое отображается в самом верху платежной страницы.

Переменную paypal_pay_url можно вывести на экран ссылкой или разместить на кнопке с текстом «Оплатить».

Ссылка имеет вид:

https://www.paypal.com/checkoutnow?token=07N53571YM296381N

Пример реализации.

Задаем сумму платежа и название компании:

Обратите внимание: переменной payment_sum присваивается значение последней, после необязательных переменных payment_title, company_name и т. д.

Далее указываем переменную #{paypal_pay_url} во втором блоке «Состояние».

  1. Переменную можно указать в поле сообщения:

  2. Переменную можно указать в поле URL в настройках вложения:

  3. Переменную можно указать в поле URL в настройках кнопки:

При открытии ссылки на оплату:

С помощью функции калькулятора paypal_payment_url

Создайте блок конструктора воронок и в калькуляторе вызовите функцию paypal_payment_url, передав в неё необходимые параметры:

Параметр Описание параметра
payment_sum Обязательный параметр — сумма платежа.
currency Валюта платежа, по умолчанию RUB. Полный список доступен по ссылке.
payment_title Заголовок платежа до 127 символов. Если не указать, заполняется текстом: «Оплата счета payment_id», где payment_id — идентификатор заказа в Salebot.
payment_description Краткое описание платежа до 127 символов.
company_name Необязательный параметр, название организации или компании.
locale Язык страницы оплаты, указывается в виде en-US, fr-XC и т. д. По умолчанию — ru-Ru. Полный список доступен по ссылке.

При выполнении условия блока клиент получит ссылку для оплаты, а также будет создана переменная клиента paypal_payment_completed со значением False.

url = paypal_payment_url(2500, "RUB", "Оплата счета payment_id", "описание платежа", "название организации", "ru-Ru")

Как создать реккурентный платеж

Для создания и получения ссылки на оплату реккурентными платежами требуется создание плана подписки в личном кабинете.

Выбираем уже созданное предложение:

Либо в поисковой строке вводим название предложения и нажимаем «Создать»:

Выбираем тип автосписания «Фиксированный»:

Создаём подписку:

Выбираем валюту подписки и условия списания:

Важно!

В Salebot по умолчанию валюта в евро, если списание в долларах или в другой валюте, то при создании подписки указываем другую валюту и в Salebot аналогичную валюту из подписки PayPal.

Далее активируем подписку:

После создания будет доступен его идентификатор, который в дальнейшем будем использовать для создания подписки и получения ссылки на оплату.

Ссылка на оплату генерируется и возвращается функцией:

paypal_subscription_url(plan_id, shipping_currency, shipping_payment_sum, start_time)
Параметр Описание
plan_id идентификатор плана подписки
shipping_currency если оплата указанного плана в долларах, то можно ничего не передавать, иначе передаем код валюты, который указали в плане. Здесь передается валюта, в которой оплачивается доставка (даже для нулевой стоимости). По умолчанию — USD.
shipping_payment_sum необязательный параметр, стоимость доставки. По умолчанию — нулевая стоимость.
start_time необязательный параметр, дата и время начала действия подписки. Если не передать ничего, то дата начала подписки равна дате оплаты. Форматы: %d.%m.%Y или %d.%m.%Y %H:%M.

При создании ссылки также появится переменная paypal_subscription_id, в которой будет идентификатор подписки.

При оплате придет коллбэк, который аналогичен оплате обычного платежа.

Получение информации о подписке

Функция:

paypal_subscription_data(paypal_subscription_id)
Параметр Описание
paypal_subscription_id идентификатор подписки

Результат исполнения функции — массив со всей информацией о подписке, включая число оплат, число неудачных попыток списания, статус и прочее.

Как отменить подписку

Функция:

paypal_remove_subscription(paypal_subscription_id)

поможет отменить подписку на ваши услуги клиентами.

Параметры:

Параметр Описание
paypal_subscription_id ID подписки, который сохраняется в переменную клиента при оформлении подписки

Как обработать результат

После успешной оплаты в бот придут коллбеки, по которым вы сможете понять, что была успешная оплата.

В системе вы видите коллбеки как сообщения от пользователя, но сам пользователь их НЕ ВИДИТ: они отображаются только оператору.

Чтобы обработать коллбек в блоке и отправить пользователю сообщение о статусе оплаты, используйте тип сравнения «Полное совпадение».

Коллбеки приходят с задержкой, поэтому после вывода ссылки на оплату пользователю рекомендуется отправить сообщение, например:

«После оплаты дождитесь сообщения об успешном завершении оплаты».

Для прямой оплаты

Коллбек об успешной оплате состоит из 10 первых символов секрета и подписи со статусом.

Например:

EHsWHYOoWV_success

Пример 1: реакция на успешный платеж с помощью блока «Стартовое условие».

Пример 2: реакция на успешный платеж с помощью блока «Стартовое условие».

Если вы не хотите выбивать клиента из основной схемы чат-бота, воспользуйтесь блоком «Не состояние с условием» — в этот блок нельзя перейти, поэтому клиента после оплаты не выбьет из основной воронки, и при этом он получит уведомление об успешной оплате.

Если вам нужно продолжить воронку с реакции на успешную оплату, используйте блок «Стартовое условие», тогда клиент из блока оплаты перейдет в блок «Стартовое условие», с которого вы можете продолжить воронку.

Подробнее о блоках с условием рассказали в одноименной статье.

При успешной оплате переменная paypal_payment_completed устанавливается в значение True.

После завершения оплаты клиенту добавится переменная paypal_callback_data, содержащая актуальные данные платежной системы о статусе операции.

Извлечь необходимые данные из полученного словаря можно при помощи метода get.

Для совершения повторного платежа обязательно необходимо обнулить переменную payment_sum, переменную с ранее сформированной ссылкой и уже после этого переназначить переменную payment_sum или вызвать функцию для получения свежей ссылки.

Для оплат по подписке

Функция настройки коллбеков для операций, связанных с подписками, добавлена 09.01.2024.

Для корректной работы коллбеков данной категории вам необходимо отключить и снова подключить интеграцию платежной системы PayPal в вашем проекте.

При совершении платежа по подписке в бот придет одно из следующих сообщений:

  • об активации подписки. Например:
    subscription_I-PTV5H4MRC1H3_activated
    
  • об успешном последующем платеже по подписке. Например:
    subscription_I-PTV5H4MRC1H3_paid
    
  • или об ошибке оплаты подписки. Например:
    subscription_I-PTV5H4MRC1H3_not_paid
    

В указанных примерах I-PTV5H4MRC1H3 — это ID подписки клиента, доступ к которому можно получить с помощью переменной paypal_subscription_id.

Коллбек добавит клиенту переменную paypal_subscription_callback_data, содержащую актуальные данные платежной системы о статусе операции.

Извлечь необходимые данные из полученного словаря можно при помощи метода get.

Пример 1: реакция на активацию подписки с помощью блока «Стартовое условие».

Пример 2: реакция на активацию подписки с помощью блока «Не состояние с условием».