# Stripe

* [Как подключить ](#how-to-connect)
* [Как получить ссылку на оплату ](#how-to-get-a-link-to-payment)
* [Как обработать результат ](#how-to-process-the-result)
* [Как протестировать платежи](#how-to-test-payments)

## Как подключить&#x20;

Чтобы подключить платёжную систему Stripe, вам нужен секретный API-ключ и ключ webhook.&#x20;

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

![](/files/d5d82ea7489ef5a410ad3ecc155e8267f01238ff)

Далее нужно указать URL для Callbacks. Это необходимо, чтобы бот получал уведомления об оплате.&#x20;

Перейдите в раздел Webhooks и добавьте адрес для webhooks.

![](/files/743691f57ca1566546841d210f616fdf46fddf5d)

укажите URL: <https://chatter.salebot.pro/stripe_callback/result>

и выберите событие:

`checkout.session.completed`

![](/files/be99ecd68b7688a38438b7747e9a5d48dff9d53f)

Сохраните и перейдите на страницу с установленным webhook, скопируйте ключ webhook (Signing secret) (в поле salebot — Webhook key):

\
после нажатия Reveal key откроется Webhook, который будет начинаться с whsec\_...&#x20;

![](/files/ae0cc61bff3f5e11b03230884c8c0c8c25da9e60)

После получения ключей переходим к настройкам в Salebot.&#x20;

В salebot откройте раздел платёжных систем, выберите Stripe. На странице подключения нужно ввести полученные данные.

&#x20;                                        ![](/files/8bc227cdcaf8de5fea3aca3cc0cb3a1bc861ef4e)

![](/files/32e7077144f8580553518cfd22957b7bfea9fb8f)

## Как получить ссылку на оплату&#x20;

Чтобы сгенерировать ссылку на оплату, нужно установить значение переменной payment\_sum (например, 150 или 100.55 (через точку!)), после чего появится переменная stripe\_pay\_url. Эту переменную можно вывести ссылкой или разместить на кнопке с текстом "Pay".&#x20;

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

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

{% hint style="warning" %}
По умолчанию установлен USD (доллар), если вам нужна другая валюта, нужно указать значение переменной currency
{% endhint %}

Также перед установкой значения payment\_sum можно указать следующие необязательные переменные для настройки платежа.&#x20;

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

payment\_description - описание заказа

### Пример ссылки на оплату&#x20;

Создать ссылку на оплату EUR 2 (по умолчанию доллар)

&#x20;                                                ![](/files/cfde2e02ac82d66be3d105e5f1495d2b4bb76b39)

{% hint style="info" %}
Обратите внимание:

* Сначала укажите необязательные параметры first\_name, payment\_description и т. д.
* И последним присвойте значение переменной payment\_sum
  {% endhint %}

Обратите внимание, сначала мы задаём дополнительные переменные для настроек, затем payment\_sum. Вы можете определять переменные раньше в цепочке, а не в одном блоке, это пример.

Далее в нужном месте мы выведем переменную stripe\_pay\_url, которая содержит ссылку, в блоке или на кнопке

&#x20;                                     &#x20;

![](/files/5f30fb9e8b00b3b0988fdac510ca8f50f1a593c2)

Страница с примером оплаты

&#x20;     &#x20;

![](/files/bcc4bb0e2a24a9b291e7bdc05fefce5932acb9e9)

## Как обработать результат&#x20;

После успешной оплаты в бот придут callbacks, по которым можно понять, что оплата прошла успешно. Эти callbacks в системе вы видите как сообщения от пользователя, поэтому они не могут быть отправлены пользователем; они состоят из первых 20 символов секретного ключа и account success, например: sk\_live\_d35gky6d8ers\_success&#x20;

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

Тип сравнения должен быть "Full match"&#x20;

Также после успешной оплаты переменной stripe\_payment\_completed присваивается значение True.&#x20;

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

![](/files/ebad2b9be01e8bf4ffa4921cf56c71aa664d4342)

После завершения оплаты клиенту будет добавлена переменная stripe\_callback\_data, содержащая данные ответа платёжной системы по завершённой транзакции. Необходимые данные можно извлечь из словаря с помощью метода get.

{% hint style="warning" %}
Чтобы выполнить повторную оплату, нужно сбросить payment\_sum, ранее сгенерированную ссылку, а после сброса переменной payment\_sum получить новую ссылку. Можно указать предыдущее значение.
{% endhint %}

## Как протестировать платежи&#x20;

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

![](/files/e860e91ca96bb74321b2010489336f8d75444dc3)

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

Номер тестовой карты&#x20;

4242 4242 4242 4242&#x20;

любая будущая дата&#x20;

CVC — любые три цифры&#x20;

Если что-то не работает, сравните данные с данными на официальном сайте: https\:/stripe.com/docs/testing#regulatory-cards


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/ru/integrations/payment/stripe.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
