Stripe

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

Для подключения платежной системы Stripe вам потребуется секретный API-ключ и ключ webhook.

Секретный API-ключ можно скопировать перейдя в раздел Developers -> API key и копируем Secret key.

Шаг 1. Переходим в раздел Developers -> API key:

Рис. 1. Как найти раздел api keys

Шаг 2. Находим и копируем Secret key:

Дальше нужно установить URL-адрес для колбэков. Это необходимо для того, чтобы бот получал уведомления об оплате.

Переходим в раздел Webhooks и добавляем адрес для вебхуков.

Откроется форма:

Шаг 1. Нажимаем на "+add destination".

Шаг 2. Выбираем events:

Шаг 3. Выбираем тип "Webhook endpoint":

Шаг 4. Ознакамливаемся с типом запроса и кликаем "Продолжить":

Шаг 5. Прописываем название и указываем URL endpoint:

URL указываем - https://chatter.salebot.pro/stripe_callback/result

Шаг 6. Будет создано два эндпоинта, можно посмотреть настройки перед добавлением:

Шаг 7. Далее нажмите кнопку "Add destinations". Тогда вебхуки будут сохранены.

Шаг 8. Нажмите кнопку "Done".

Сохраняем и попадаем на страницу с установленным вебхуком:

Шаг 9. Далее нажимаем на вебхук, в котором вы выбрали все ивенты:

Шаг 10. Находим Signig key и сохраняем его себе (в дальнейшем он понадобится для подключения к Salebot):

После получения ключей переходим к подключению в Salebot.

В salebot открываем раздел "Эквайринг", выбираем Stripe.

На странице подключения, нужно ввести полученные ключи:

Нажмите "Сохранить настройки".

Как подключить колбек о статусе транзакции

Для получения дополнительного колбека нам потребуется подключить вебхук дополнительно к имеющемуся.

URL указываем - https://chatter.salebot.pro/stripe_callback/<api_key>/charge_status

и выбираем события:

  • charge.failed

  • charge.pending

  • charge.succeeded

Полученный после сохранения вебхук добавляем в Salebot поле - Webhook key2:

stripe_invoice_id - идентификатор сделки, по которой не пришел колбек об успешной оплате сразу после платежа

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

Для использования налогов в платежах нужно сперва создать их в личном кабинете Stripe. Для этого введите в поисковой строке tax rates:

И нажмите "+ Add tax rates":

Далее указываем применяемую налоговую ставку:

В открывшемся меню выберите тип налога, регион, для которого он применяется, процентную ставку и признак - будет этот налог включен в сумму платежа Inclusive или будет добавлен сверх суммы - exclusive:

После создания налоговой ставки скопируйте его id в переменную stripe_tax_id до объявления суммы платежа.

Во избежание ошибок желательно после получения ссылки в переменную stripe_tax_id поместить пустую строку (""), так вы сможете применять налог только тогда, когда он нужен

Если все сделать правильно, то в случае с налоговой ставкой с параметром exclusive Вы увидите следующее

Пример платежа с налоговой ставкой типа exclusive

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

Для генерации ссылки на оплату вам необходимо установить значение переменной payment_sum (например 150 или 100.55 (через точку!)), сразу после этого появится переменная stripe_pay_url. Эту переменную можно вывести на экран ссылкой или разместить на кнопке с текстом "Оплатить".

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

https://checkout.stripe.com/pay/cs_test_a17mskKFFRwEuo3WgBSAUjfk7xaZZIrct9B3Ds2AdODVq1I8aRiqYEBdrU#fidkdWxOYHwnPyd1blpxYHZxWjA0TGFsVzFPVmpmMzJAbVYzUkp1Y0lLYDVgfzR2Q0NxcWZBNUNnTnRSVVRJSGFobEB1UExSczRMMTc8PWRLMGBddl8xalxyPDRoUGhnZm9xXXZANDZyaF0wNTVBVExsPHZyfycpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl

Также до установки значения переменной payment_sum, можно задать следующие необязательные переменные, для настройки платежа.

Параметры функции
Описание паараметра

currency

валюта заказа. Допустимые значения - https://stripe.com/docs/currencies

payment_description

описание заказа

stripe_tax_id

идентификатор налоговой ставки, настроенной в личном кабинете Stripe.

Как настроить, рассказали в параграфе "Как подключить налоги"

stripe_invoice_enable

признак необходимости сохранять инвойсы (счет-фактуры, чеки). Укажите любое значение, тогда все необходимое Вы найдете в личном кабинете Stripe

stripe_locale

установить язык страницы оплаты: en, ru, de. Все доступные: https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-locale Если не передано значение stripe_locale, то будет использован язык браузера клиента.

stripe_payment_method_type

метод оплаты, по умолчанию стоит оплата картой (card). Можно заменить на другие доступные для Stripe методы оплаты. Ниже указаны доступные методы.

Например, stripe_payment_method_type = "customer_balance"

stripe_additional_payment_method_type

добавить дополнительный метод оплаты. Ниже указаны доступные методыНапример, stripe_additional_payment_method_type = "sepa_debit"

coupon_id

идентификатор купона скидки

stripe_expired

время жизни ссылки на оплату. Указывается в секундах. Минимальное время 30 минут, максимальное - 24 часа. По умолчанию 24 часа

stripe_automatic_tax

включение автоматического расчета и сбора налогов при оплате. Для включения передать "1". Подробная информация об этой настройке в документации Stripe

Список значений для stripe_payment_method_type и stripe_additional_payment_method_type

card acss_debit affirm afterpay_clearpay alipay au_becs_debit bacs_debit bancontact blik boleto cashapp customer_balance eps fpx giropay grabpay ideal klarna konbini link oxxo p24 paynow paypal pix promptpay sepa_debit sofort us_bank_account wechat_pay zip

Подробнее про каждый из методов и для каких стран они доступны можно узнать в документации Stripe: посмотреть на сайте

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

Создадим ссылку на оплату в размере 1000 рублей (по умолчанию доллар)

Далее в нужном месте выводим переменную stripe_pay_url, в которой содержится ссылка в блоке либо в кнопке:

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

Тестирование в боте:

Пример 2. Добавляем ссылку на оплату в кнопку:

Пример 3. Добавляем ссылку в качестве вложения к сообщению:

Тестирование в боте:

При клике на кнопку или при переходе по ссылке, вашего плательщика переадресует на платежную страницу:

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

Если передадите параметр налоговой ставки (stripe_tax_id) в блоке:

То также будет отображена налоговая ставка в форме оплаты:

Пример кода для копирования

payment_description = 'Тестовая оплата в Страйп' currency = 'RUB' stripe_tax_id = 'скопируйте сюда ваш tax ID' payment_sum = 1000

Где найти tax ID:

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

Для рекуррентных платежей (подписки) нужно до объявления переменной payment_sum объявить переменную stripe_subscription и присвоить ей название подписки.

Также можно добавить следующие переменные: interval – продолжительность интервала подписки, в эту переменную нужно передать значение ‘day’ - для дней, ‘week’ - недель, ‘month’ - месяцев, ‘year’ - лет. Если переменная не объявлена, то по умолчанию будет передан параметр ‘month’.

interval_count – количество указанных интервалов, сколько дней, недель или месяцев будет в подписке за указанную сумму. По умолчанию будет передан параметр, равный единице (1);

stripe_payment_method_type - метод оплаты, по умолчанию стоит оплата картой (card). Можно заменить на другие доступные для Stripe методы оплаты. Ниже указаны доступные методы.

Например, stripe_payment_method_type = 'customer_balance'

stripe_additional_payment_method_type - добавить дополнительный метод оплаты. Ниже указаны доступные методы

Например, stripe_additional_payment_method_type = 'sepa_debit'

Список значений для stripe_payment_method_type и stripe_additional_payment_method_type:

card acss_debit affirm afterpay_clearpay alipay au_becs_debit bacs_debit bancontact blik boleto cashapp customer_balance eps fpx giropay grabpay ideal klarna konbini link oxxo p24 paynow paypal pix promptpay sepa_debit sofort us_bank_account wechat_pay zip

Подробнее про каждый из методов и для каких стран они доступны можно узнать в документации Stripe: посмотреть на сайте

В данном примере подписка с названием 'My_subscription' будет создана с ценой 90 USD за 3 месяца и повторный платеж будет с той же суммой по истечении этих 1 месяца:

Пример для копирования:

stripe_subscription = 'My_subscription' interval = 'month' interval_count = 3 payment_sum = 90

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

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

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

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

Для отмены подписки в калькуляторе используйте метод stripe_remove_subscription(stripe_subscription_id), где stripe_subscription_id – идентификатор, который был сохранен в переменных о сделке после оплаты.

Это позволит оставить оплаченную подписку активной до конца текущего оплаченного срока, но дальнейшие списания не произойдут, и по истечении срока подписка будет отменена:

answer = stripe_remove_subscription('#{stripe_subscription_id}')

stripe_remove_subscription - в случае успеха придет ответ с информацией до какого числа будет действовать отмененная подписка

В данном примере результат выполнения функции будет помещен в переменную answer и можно будет проверить результат выполнения.

Проверка статуса подписки

stripe_check_subscription(subscription_id, customer_id), где

stripe_subscription_id - идентификатор подписки stripe_customer_id - идентификатор клиента в Stripe (необязательный параметр)

Как создать купон и получить ID скидки

Для получения идентификатора скидки создайте купон в личном кабинете в разделе ”coupons”.

При нажатии кнопки “New” откроется страница, где нужно указать:

  1. Name — название скидки;

  2. ID — идентификатор, генерируется автоматически,

  3. Type — вид скидки: в процентах или фиксированная сумма

  4. Duration — длительность скидки (разовая или продолжительная, например, для подписок) и другие параметры.

Купон со скидкой появится в каталоге “Product catalogue“ в разделе “Coupons”, а ID скидки вы можете посмотреть, зайдя в меню купона:

Нажмите на купон, чтобы скопировать ID купона:

Как добавить скидку в заказ

  1. При генерации ссылки на оплату (работает как для подписок, так и для разовых платежей).

В калькуляторе блока до объявления переменной payment_sum задайте переменную coupon_id, передав в неё идентификатор скидки из личного кабинета stripe.

  1. В существующую подписку с помощью функции stripe_add_subscription_discount.

Задайте условия для срабатывания блока и в калькуляторе вызовите указанную функцию, передав в нее параметры stripe_subscription_id (id подписки) и coupon_id (id купона на скидку). Скидка будет применена для последующих платежей по подписке.

Пример кода для копирования

stripe_subscription = 'Подписка премиум' interval = 'month' payment_description = 'Тестовая оплата в Страйп' currency = 'USD' coupon_id = 'ID вашего купона' stripe_add_subscription_discount(stripe_subscription_id, coupon_id) stripe_tax_id = 'ID налога' payment_sum = 90

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

Подробнее о создании подписки расказали в разделе "Как настроить рекуррентные платежи"

Как удалить/изменить скидку для подписки

Прикрепленную к подписке скидку можно удалить или заменить другой скидкой.

Если вы хотите прекратить действие скидки, задайте условие для срабатывания блока и в калькуляторе вызовите функцию stripe_remove_subscription_discount, передав в неё параметр stripe_subscrition_id (id подписки).

При успешном выполнении операции функция вернёт сообщение, содержащее id подписки и дату отмены скидки.

Замена скидки, как и добавление новой, производится с помощью функции stripe_add_subscription_discount. Не забудьте передать в нее параметры stripe_subscription_id и coupon_id. Успешный запрос обновит прикрепленный к подписке купон и вернет сообщение с актуальными данными.

Как получить идентификатор скидки, рассказали в разделе "Как создать купон и получить ID скидки".

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

После успешной оплаты в бот придут колбэки, по которым вы сможете понять, что была успешная оплата. Эти колбеки в системе вы видите как сообщения от пользователя, чтобы их не мог отправить пользователь, они состоят из 20 первых символов секретного ключа и приписки success, например: sk_live_d35gky6d8ers_success

Эти колбеки НЕ ВИДИТ пользователь, они отображаются только оператору.

Тип сравнения должен быть "Полное совпадение"

Также после успешной оплаты переменная stripe_payment_completed устанавливается в True.

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

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

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

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

Далее провести настройку описанную в начале этой инструкции. Ввести тестовый секретный ключ и добавить адрес для вебхуков в тестовую среду.

Тестовый номер карты

4242 4242 4242 4242 дата любая в будущем CVC - любые три цифры

Если что-то не работает, сравните данные с данными на официальном сайте.

Last updated

Was this helpful?