# Stripe

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

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

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

Шаг 1. Перейдите в раздел Developers -> API key:

<figure><img src="/files/c8c91cd02528885f6583317f03b97e3cc8d0e256" alt="" width="563"><figcaption><p>Рис.1 Как найти раздел API</p></figcaption></figure>

Шаг 2. Найдите и скопируйте Secret key:

<figure><img src="/files/931ee20d94f79040f694b3fbd1bc018dcdc6e7a5" alt=""><figcaption></figcaption></figure>

Далее вам нужно задать URL для callback-ов. Это необходимо для того, чтобы бот получал уведомления об оплате.

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

<figure><img src="/files/db930104996b523900d6b1a1a9d7b95579688f77" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/c80f7418582bcaacba8ad20995641852a90bda42" alt=""><figcaption></figcaption></figure>

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

Шаг 2. Выберите события:

<figure><img src="/files/60f327a720f8ca904ada42d6e5928e2fce255684" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/1a5097a467af724e11d89284bfcfed164f520a0d" alt=""><figcaption></figcaption></figure>

Шаг 4. Ознакомьтесь с типом запроса и нажмите "Continue":

<figure><img src="/files/a8b8bd4351d95b9207cb988981c1bdebc5051f5d" alt=""><figcaption></figcaption></figure>

Шаг 5. Укажите название и endpoint URL:

<figure><img src="/files/0bee699e82432e45504013b3d150034c44520241" alt=""><figcaption></figcaption></figure>

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

Шаг 6. Будут созданы два endpoint-а, перед добавлением можно посмотреть настройки:&#x20;

<figure><img src="/files/aff5788d326f397d23c3008368fbf04013e3e91d" alt="" width="563"><figcaption></figcaption></figure>

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

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

<figure><img src="/files/55f8c321ef66056eb8c838fb0b47f116509e07b7" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/55673dd460bb5c5e689615a53492da0655082c77" alt=""><figcaption></figcaption></figure>

Шаг 9. Далее нажмите на webhook, где вы выбрали все события:

<figure><img src="/files/52462a7d26baf24b8c714abaa06d1933a96293c7" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/bd6b54f8c6b2445c44a83fe04c09e05853632756" alt=""><figcaption></figcaption></figure>

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

В Mavibot откройте раздел "Acquiring" и выберите Stripe.

<figure><img src="/files/e749048ce6d9a09a754ae914379e9b1e17548d69" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/8184ba25dbf0165e7d8678204c9874fc9cccb379" alt=""><figcaption></figcaption></figure>

Нажмите "Save Settings".

{% hint style="success" %}
Готово!&#x20;

На этом подключение платежной системы завершено!
{% endhint %}

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

Чтобы получить дополнительный callback, нам нужно подключить webhook в **дополнение к уже существующему.**

Укажите URL - [https://chatter.salebot.pro/stripe\_callback/\<api\_key>/charge\_status](https://chatter.salebot.pro/stripe_callback/<api_key>/charge_status)

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

* `charge.failed`
* `charge.pending`
* `charge.succeeded`

<figure><img src="/files/4b5c9ad0136c71764d200a6901c181dcc2943346" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="success" %}
**Подробнее о каждом типе webhook:**

1. **charge.succeeded** - содержит информацию об успешном завершении транзакции (аналог callback об успешной оплате)
2. **charge.pending** - "транзакция в процессе", ее завершение может занять до 7 дней.\
   Webhook будет выглядеть как {первые 10 символов}{тип webhook}\
   *Например*: *sk\_test\_45LDPJLKT95d\_charge.pending*&#x20;
3. **charge.failed** *-* "транзакция не удалась."\
   Webhook будет выглядеть как {первые 10 символов}{тип webhook}\
   Например: *sk\_test\_45LDPJLKT95d\_charge.failed*
   {% endhint %}

Добавляем webhook, полученный после сохранения, в поле Mavibot - Webhook key2:

<figure><img src="/files/d88de2474e5c4c5b6f4387c6fb47eed80123d665" alt="" width="563"><figcaption></figcaption></figure>

**stripe\_invoice\_id** - ID транзакции, по которой callback об успешной оплате не был получен сразу после оплаты.

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

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

<figure><img src="/files/52707c114d5ca301352dfed91bf37b5babf203eb" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/3931ef3a158880303e800f47f693338770ffc628" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/cab3b133e2f89fcf291c1e0ca9cdbc3f26afac5f" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/5034655f33a250c5f7431a166cac46a0142a6633" alt=""><figcaption></figcaption></figure>

После создания налоговой ставки скопируйте ее ID в **stripe\_tax\_id** переменную перед установкой суммы оплаты.

<figure><img src="/files/14a61d187da7bfb3560b45c81fa04aff3071a7b1" alt=""><figcaption></figcaption></figure>

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

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

<figure><img src="/files/868c535a39b585f2f45f6a58fbc88281ea2831c2" alt=""><figcaption><p>Пример оплаты с налоговой ставкой exclusive</p></figcaption></figure>

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

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

Ссылка выглядит так:

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

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

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

<table><thead><tr><th width="255">Параметры функции</th><th>Описание параметров</th></tr></thead><tbody><tr><td><strong>currency</strong></td><td>это валюта заказа. Допустимые значения -<a href="https://stripe.com/docs/currencies">https://stripe.com/docs/currencies</a></td></tr><tr><td><strong>payment_description</strong></td><td>описание заказа</td></tr><tr><td> <strong>stripe_tax_id</strong></td><td>Это ID налоговой ставки, настроенной в личном кабинете Stripe.<br>Как ее настроить, описано в разделе "Как подключить налоги" ссылка "<a href="#kak-podklyuchit-nalogi">Как подключить налоги</a>"</td></tr><tr><td><strong>stripe_invoice_enable</strong> </td><td>Этот параметр указывает на необходимость сохранять инвойсы (счета, чеки). Введите любое значение — все необходимые документы затем будут доступны в вашем личном кабинете Stripe.</td></tr><tr><td><strong>stripe_locale</strong></td><td>задает язык платежной ссылки: en, ru, de. Все доступные языки здесь: <a href="https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-locale ">https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-locale </a><br>Если <strong>stripe_local</strong> если значение не указано, по умолчанию будет использоваться язык браузера клиента.</td></tr><tr><td><strong>stripe_payment_method_type</strong></td><td><p>это способ оплаты, по умолчанию оплата картой. Можно заменить на другие доступные для Stripe способы оплаты. Доступные методы перечислены ниже</p><p>client_id = 1202020202 <code>stripe_payment_method_type = "customer_balance"</code></p></td></tr><tr><td><strong>stripe_additional_payment_method_type</strong> </td><td>нужно, чтобы добавить дополнительный способ оплаты. Доступные методы перечислены ниже, например, <code>stripe_additional_payment_method_type  = "sepa_debit"</code></td></tr><tr><td><strong>coupon_id</strong></td><td>ID скидочного купона</td></tr><tr><td>stripe_expired </td><td>это срок жизни платежной ссылки. Указывается в секундах. Минимальное время — 30 минут, максимальное — 24 часа. По умолчанию — 24 часа</td></tr><tr><td>stripe_automatic_tax</td><td>включение автоматического расчета и взимания налогов во время оплаты. Чтобы включить, передайте "1". Подробную информацию об этой настройке можно найти в документации Stripe. ссылка <a href="https://docs.stripe.com/tax/set-up">в документации Stripe </a></td></tr></tbody></table>

{% hint style="warning" %}
Внимание! Если используете обе  ***stripe\_payment\_method\_type** и  **stripe\_additional\_payment\_method\_type*** переменны&#x435;***, то значения в них ОБЯЗАТЕЛЬНО должны быть РАЗНЫМИ!***
{% endhint %}

<details>

<summary><em><mark style="color:зелёный;"><strong>Список значений для</strong></mark><strong>  </strong><strong>stripe_payment_method_type</strong> и <strong>stripe_additional_payment_method_type</strong></em></summary>

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

</details>

Подробнее о каждом из методов и о том, для каких стран они доступны, можно узнать в документации Stripe: [посмотреть на сайте ](https://stripe.com/docs/api/payment_methods/object#payment_method_object-type)

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

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

<figure><img src="/files/f9dc5ed2c8c84ec30e47e320c1aebf617763b05b" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
**Обратите внимание:** \
\- Сначала указываете необязательные параметры  **first\_name, payment\_description** и т.д.\
\- И последней присваиваем значение переменной **payment\_sum**

Переменные можно задать и ранее в цепочке, а не в одном блоке, это пример.
{% endhint %}

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

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

<figure><img src="/files/318fcf31c324333de8bbd6c6e89e47df32b37188" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/4faca1a753a29cd2b9510b8c37d217664e1bda18" alt="" width="563"><figcaption></figcaption></figure>

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

<figure><img src="/files/914a2f6589a2e56beafa00ef98d456d10c4fdd31" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/17d931d11f9bb39a744c47d385ec519a2861e062" alt="" width="563"><figcaption></figcaption></figure>

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

<figure><img src="/files/d696063ad9eaa2605e95d0f89aa6c0a7051e8f32" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/5c19819e3e42eca0a75f309e3be16777a15d4623" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="success" %}
Допустимы все три варианта для направления ссылки на оплату в боте.&#x20;
{% endhint %}

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

<figure><img src="/files/7af9d7582f356a6f123abf9a030d35cf9d876844" alt=""><figcaption></figcaption></figure>

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

Если передадите параметр налоговой ставки (**stripe\_tax\_id)** в блоке:&#x20;

<figure><img src="/files/ec173e845f72f2c9ba345ed7f932ee7534644f5b" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/ed71949fb8c83800fd489caf7e446ca9649a96bb" alt=""><figcaption></figcaption></figure>

<details>

<summary>Пример кода для копирования</summary>

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

Где найти tax ID:

<figure><img src="/files/ab507cc98ef356f0ea4c24e0a735c3f51025476b" alt=""><figcaption></figcaption></figure>

</details>

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

Для рекуррентных платежей (подписок) нужно до объявления переменной **payment\_sum** объявить переменную **stripe\_subscription** и присвоить ей название подписки.&#x20;

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

{% hint style="warning" %}
**Важно!** Продолжительность одного цикла подписки не может быть более 1 года (для параметра ‘year’), более 12 месяцев (для параметра ‘month’), более 52 недель (для параметра ‘week’).
{% endhint %}

<figure><img src="/files/e3ebbe5013119456ef27379a9367fbd26a078f49" alt=""><figcaption></figcaption></figure>

**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'`

{% hint style="warning" %}
Важно! Если используете обе переменные ***stripe\_payment\_method\_type** и  **stripe\_additional\_payment\_method\_type, то значения в них ОБЯЗАТЕЛЬНО должны быть РАЗНЫМИ!***
{% endhint %}

<details>

<summary><em><mark style="color:зелёный;"><strong>Список значений для</strong></mark><strong>  </strong><strong>stripe_payment_method_type</strong> и  <strong>stripe_additional_payment_method_type:</strong></em></summary>

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

</details>

{% hint style="info" %}
Подробнее о каждом из методов и о том, для каких стран они доступны, см. в документации Stripe: см. сайт ссылка [посмотреть на сайте ](https://stripe.com/docs/api/payment_methods/object#payment_method_object-type)
{% endhint %}

{% hint style="warning" %}
**Внимание!** Продолжительность подписки не может превышать 1 год (для параметра ‘year’), более 12 месяцев (для параметра ‘month’), более 52 недель (для параметра ‘week’).
{% endhint %}

В этом примере будет создана подписка с названием 'My\_subscription' стоимостью 90 USD на 3 месяца, и повторный платеж будет выполнен на ту же сумму через 1 месяц:

<figure><img src="/files/21270d671352a1d5b7d282ad248da0946d027da3" alt=""><figcaption></figcaption></figure>

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

`stripe_subscription = 'My_subscription'` \
`interval = 'month'` \
`interval_count = 3` \
`payment_sum = 90`&#x20;

После оплаты у клиента появятся **stripe\_subscription\_id** переменные в данных сделки, которые понадобятся для настройки отмены подписки, и **stripe\_customer\_id**, который позже можно использовать для проверки статуса подписки.

{% hint style="warning" %}
Уведомление (callback) приходит только при первом повторяющемся платеже!

ПОВТОРНЫХ callback-ов НЕ БУДЕТ. Управление осуществляется через функцию и stripe\_customer\_id. [через функцию](#proverka-statusa-podpiski) ссылка
{% endhint %}

<figure><img src="/files/192b96fdb394bff8b12108a9c8637fe370ac2093" alt="" width="371"><figcaption></figcaption></figure>

### Возврат к настройкам обычных платежей

Чтобы вернуться к обычным платежам, присвойте переменной подписки пустую строку **stripe\_subscription = "**. В этом случае переменные interval и interval\_count не будут влиять на создание ссылки.

<figure><img src="/files/a2c593fe687016ebe2dc0b3787a49f7c0748ae07" alt=""><figcaption></figcaption></figure>

### **Отмена настроек подписки**

Чтобы отменить подписку в калькуляторе, используйте **stripe\_remove\_subscription(stripe\_subscription\_id)** метод, где **stripe\_subscription\_id** — это идентификатор, который был сохранен в информации о сделке после оплаты.

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

<figure><img src="/files/cacc5a0be1471abccec9ff37c7f94c583ed1c610" alt=""><figcaption></figcaption></figure>

answer = stripe\_remove\_subscription('#{stripe\_subscription\_id}')

stripe\_remove\_subscription — при успешном выполнении вы получите ответ с информацией о дате, до которой отмененная подписка остается действительной.

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

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

**stripe\_check\_subscription(subscription\_id, customer\_id)**, где

**stripe\_subscription\_id** - ID подписки \
**stripe\_customer\_id** - ID клиента в Stripe (необязательный параметр)

<figure><img src="/files/6d013b56ce04d10e41297369776f6dc09dd5601a" alt=""><figcaption></figcaption></figure>

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

Чтобы получить ID скидки, создайте купон в личном кабинете в разделе ”coupons”. ссылка ”[coupons](https://dashboard.stripe.com/coupons)”.

<figure><img src="/files/4e0ab03e7ab4790bb97bdc7f3f1ba3abefb53f65" alt=""><figcaption></figcaption></figure>

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

1. &#x20;Name — название скидки;
2. ID — идентификатор, который генерируется автоматически.
3. Type — тип скидки: процентная или фиксированная сумма
4. Duration — длительность скидки (разовая или повторяющаяся, например, для подписок) и другие параметры.

<figure><img src="/files/e197d7c9c3146686084ebd23c5292ee585b23661" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/c53805b661a13d91b9a5ceb3087c468c1b540e23" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/4a8f40f832ccbb836d9963fdee0d4c212e9484ed" alt=""><figcaption></figcaption></figure>

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

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

В калькуляторе блока, перед объявлением **payment\_sum** установите переменную **coupon\_id** переменной присвойте ей ID скидки из личного кабинета Stripe.

<figure><img src="/files/fbbdd5233079a6cd1a7645851083808299b87204" alt=""><figcaption></figcaption></figure>

2. Чтобы добавить к существующей подписке, используя **stripe\_add\_subscription\_discount** .

Задайте условия для срабатывания блока и вызовите указанную функцию в калькуляторе, передав ей параметры stripe\_subscription\_id (ID подписки) и coupon\_id (ID скидочного купона). Скидка будет применяться к последующим платежам по подписке.

<figure><img src="/files/28af816bf0359d2fd9d451b01f24ce2f60eb042c" alt=""><figcaption></figcaption></figure>

<details>

<summary>Пример кода для копирования</summary>

`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`

</details>

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

<figure><img src="/files/241b0d0bae400d9dd8343334197d010f5136d65e" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Подробнее о создании подписки смотрите в разделе "Как настроить рекуррентные платежи" ссылка "[Как настроить рекуррентные платежи](#kak-nastroit-rekurrentnye-platezhi)"
{% endhint %}

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

Скидку, привязанную к подписке, можно удалить или заменить на другую скидку.

Если вы хотите прекратить действие скидки, задайте условие для срабатывания блока и вызовите **stripe\_remove\_subscription\_discount** функцию в калькуляторе, передав ей **stripe\_subscrition\_id** параметр (ID подписки).

<figure><img src="/files/2d8b41848b626136fa7cd00f4608a7b443a574c1" alt=""><figcaption></figcaption></figure>

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

Замену скидки, а также добавление новой выполняют с помощью **stripe\_add\_subscription\_discount** функции. Не забудьте передать ей **stripe\_subscription\_id** и **coupon\_id** параметры.\
Успешный запрос обновит купон, привязанный к подписке, и вернет сообщение с актуальной информацией.

{% hint style="info" %}
О том, как получить ID скидки, можно прочитать в разделе "Как создать купон и получить ID скидки". ссылка "[Как создать купон и получить ID скидки](#kak-sozdat-kupon-i-poluchit-id-skidki)".
{% endhint %}

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

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

<figure><img src="/files/a5d326e2213208e3f8484a04fae6815e545da302" alt="" width="563"><figcaption></figcaption></figure>

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

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

Также после успешной оплаты **stripe\_payment\_completed** переменная устанавливается в **True.**

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

<figure><img src="/files/1b8a0eedfda49f9ac5ea9de7319c5cf46259645e" alt=""><figcaption></figcaption></figure>

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

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

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

Чтобы протестировать интеграцию, можно использовать секретный ключ из тестового окружения. Для этого переключитесь в тестовый режим в личном кабинете Stripe с помощью переключателя в правом меню&#x20;

![](https://lh5.googleusercontent.com/r-tuJboMES8alkTUpKwA4HKrmL_epNtSXdENrv12EyR9dGCtvRLBK6qw4UGcr59GA3unxc1cV1otCu80nqHEw9VhbEK05ovPQ1Ad8chBv50LAWPO16nEPC2hFhCAsCe3khtBJrob=s0)

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

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

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

Если что-то не работает, сравните данные с данными на официальном сайте. ссылка[ на официальном сайте.](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/oplata/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.
