Salebot.pro
Search…
⌃K

Stripe

Как подключить

Для подключения платежной системы Stripe вам потребуется секретный API-ключ и ключ webhook.
Секретный API-ключ можно скопировать перейдя в раздел Developers -> API key и копируем Secret key.
Дальше нужно установить URL-адрес для колбеков. Это необходимо для того, чтобы бот получал уведомления об оплате.
Переходим в раздел Webhooks и добавляем адрес для вебхуков.
и выбираем событие:
  • checkout.session.completed
Сохраняем и попадаем на страницу с установленным вебхуком, копируем ключ (Signing secret) вебхука (в salebot поле - Webhook key):
после нажатия Reveal откроется ключ Webhook, который будет начинаться с whsec_...
После получения ключей переходим к настройкам в Salebot.
В salebot открываем раздел платежные системы, выбираем Stripe. На странице подключения, нужно ввести полученные данные.

Как получить ссылку на оплату

Для генерации ссылки на оплату, вам необходимо установить значение переменной payment_sum (например 150 или 100.55 (через точку!)), сразу после этого появится переменная stripe_pay_url. Эту переменную можно вывести на экран ссылкой или разместить на кнопке с текстом "Оплатить".
Ссылка имеет вид:
https://checkout.stripe.com/pay/cs_test_a17mskKFFRwEuo3WgBSAUjfk7xaZZIrct9B3Ds2AdODVq1I8aRiqYEBdrU#fidkdWxOYHwnPyd1blpxYHZxWjA0TGFsVzFPVmpmMzJAbVYzUkp1Y0lLYDVgfzR2Q0NxcWZBNUNnTnRSVVRJSGFobEB1UExSczRMMTc8PWRLMGBddl8xalxyPDRoUGhnZm9xXXZANDZyaF0wNTVBVExsPHZyfycpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl
По умолчанию установлен USD (доллар), если нужна другая валюта нужно установить значение переменной currency
Также до установки значения переменной payment_sum, можно задать следующие необязательные переменные, для настройки платежа.
currency - валюта заказа. Допустимые значения - https://stripe.com/docs/currencies
payment_description – описание заказа

Пример формирования ссылки на оплату

Создадим ссылку на оплату в размере 2 евро (по умолчанию доллар)
Обратите внимание: - Сначала указываете необязательные параметры first_name, payment_description и т.д. - И последней присваиваем значение переменной payment_sum
Обратите внимание, вначале задаем дополнительные переменные для настроек, затем payment_sum. Переменные можно задать и ранее в цепочке, а не в одном блоке, это пример.
Далее в нужном месте выводим переменную stripe_pay_url, в которой содержится ссылка в блоке либо в кнопке
Пример платежной страницы

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

После успешной оплаты в бот придут колбеки, по которым вы сможете понять что была успешная оплата. Эти колбеки в системе вы видите как сообщения от пользователя, чтобы их не мог отправить пользователь, они состоят из 20 первых символов секретного ключа и приписки success, например: sk_live_d35gky6d8ers_success
Эти колбеки НЕ ВИДИТ пользователь, они отображаются только оператору.
Тип сравнения должен быть "Полное совпадение"
Также после успешной оплаты переменная stripe_payment_completed устанавливается в True.
Например, можно сделать обработку успешной оплаты блоком с условием и вывести соответствующее сообщение пользователю:
После завершения оплаты клиенту добавится переменная stripe_callback_data, содержащая данные ответа платежной системы по совершенной операции. Из полученного словаря можно извлечь необходимые данные при помощи метода get.
Для совершения повторного платежа обязательно необходимо обнулить payment_sum, ранее сформированную ссылку и уже после переназначить переменную payment_sum для получения свежей ссылки. Можно указать предыдущее значение.

Как настроить рекурентные платежи

Для рекуррентных платежей (подписки) нужно до объявления переменной payment_sum объявить переменную stripe_subscription и присвоить ей название подписки. Также можно добавить следующие переменные: interval – продолжительность интервала подписки, в эту переменную нужно передать значение ‘day’ - для дней, ‘week’ - недель, ‘month’ - месяцев, ‘year’ - лет. Если переменная не объявлена, то по умолчанию будет передан параметр ‘month’; interval_count – количество указанных интервалов, сколько дней, недель или месяцев будет в подписке за указанную сумму. По умолчанию будет передан параметр, равный единице (1);
Важно! Продолжительность подписки не может быть более 1 года (для параметра ‘year’), более 12 месяцев (для параметра ‘month’), более 52 недель (для параметра ‘week’).
В данном примере подписка с названием 'My_subscription' будет создана с ценой 90 USD за 3 месяца и повторный платеж будет с той же суммой по истечении этих 3 месяцев:
stripe_subscription = 'My_subscription' interval = 'month' interval_count = 3 payment_sum = 90
После оплаты в переменных сделки появится переменная stripe_subscription_id, которая потребуется для настройки отмены подписки.

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

Для возврата к обычным платежам присвойте переменной subscription пустую строку stripe_subscription = ''. В таком случае переменные interval и interval_count не повлияют на создание ссылки

Настройки для отмены подписки

Для отмены подписки в калькуляторе используйте метод stripe_remove_subscription(stripe_subscription_id), где stripe_subscription_id – идентификатор, который был сохранен в переменных о сделке после оплаты Это позволит оставить оплаченную подписку активной до конца текущего оплаченного срока, но дальнейшие списания не произойдут и по истечении срока подписка будет отменена:
answer = stripe_remove_subscription('#{stripe_subscription_id}')
В данном примере результат выполнения функции будет помещен в переменную answer и можно будет проверить результат выполнения. Если в переменной данные по текущей подписке, то все получилось, иначе в ней будет информация об ошибке.

Как тестировать платежи

Для тестирования интеграции можете использовать секретный ключ из тестовой среды. Для этого в личном кабинете stripe меню справа, нужно переключиться в тестовую среду.
Далее провести настройку описанную в начале этой инструкции. Ввести тестовый секретный ключ и добавить адрес для вебхуков в тестовую среду.
Тестовый номер карты
4242 4242 4242 4242 дата любая в будущем CVC - любые три цифры
Если что-то не работает, сравните данные с данными на официальном сайте: https://stripe.com/docs/testing#regulatory-cards