# Paynow

* [Как подключить Paynow ](#how-to-connect-paynow)
* [Как сформировать ссылку для оплаты](#how-to-form-a-link-for-payment)&#x20;
* [Пример ссылки на оплату ](#example-of-a-link-to-pay)
* [Как обработать результат](#how-to-process-the-result)

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

Введите свой аккаунт paynow. Перейдите в настройки, нажав на шестерёнку.

![](/files/70a25825275c0a9285de4e8590feb7455c4b9925)

Далее переходим в Sklepy i punkty płatności

![](/files/9a6839a51b4b94b628f5b77810062b1752ee7059)

Ниже в настройках строки магазина Adres powiadomień — указываем URL-адрес для получения callback-уведомления об оплате:

**<https://chatter.salebot.pro/paynow\\_callback/result>**

![](/files/42977af3cda42131a002c5b524c512cffc55ef94)

Ниже нужно скопировать ключ API (Klucz dostępu do API) и секретный ключ (Klucz obliczania podpisu)

![](/files/e9eb409bba9a910ffd6eb9ca0245efa206377dd1)

Перейдите в свой проект на salebot.pro и в разделе **Платёжные системы — Paynow** запишите найденные ключи.

&#x20;                                              ![](/files/4f0bf7aad8b41d1eafad6bf6434c82be5565733b)

![](/files/d1a2334806e86e1047e4f253bb8ae8322cf362f9)

## Как сформировать ссылку для оплаты&#x20;

### Необходимые настройки

{% hint style="warning" %}
Перед указанием переменной с суммой оплаты у клиента должна быть переменная email с его адресом электронной почты
{% endhint %}

Ниже приведён пример того, как можно запросить и сохранить адрес электронной почты.

**email** - email покупателя (если не указан, подставляется fake)&#x20;

**payment\_description** - описание платежа отображается в веб-интерфейсе (Внимание! Кириллица будет автоматически заменена латинским алфавитом, не более 255 символов). Если не указано, заполнить автоматически: **Оплата счёта № «здесь номер»**

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

Ссылка имеет вид: *<https://paywall.paynow.pl/NOH0-0LT-SEY-XOI?token=eyJraWQiOiJhMDAyNjJjYS02NTU3LTRjOTktOGU0NC1kMTFlMTAxYjhhNTIiLCJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJOT0gwLTBMVC1TRVktWE9JIiwiYXVkIjoicGF5d2FsbC5zYW5kYm94LnBheW5vdy5wbCIsImlzcyI6InNhbmRib3gucGF5bm93LnBsIiwiZXhwIjoxNjE5NTkyOTc4LCJpYXQiOjE2MTk1MDY1Nzh9.dnCfjADHiTynvXk41TVxsQEVfDAnHFDC\\_9sdzWF4G2s>*

### Дополнительные параметры&#x20;

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

**имя** - имя покупателя&#x20;

**фамилию** - имя покупателя&#x20;

**language** - язык страницы оплаты в формате BCP47/RFC5646 (например, pl-PL, en-US)currency - код валюты платежа ISO 4217. Если не указано, используется значение по умолчанию (PLN).

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

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

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

Сначала мы запросим и сохраним email клиента. Мы создадим блок с запросом на ввод email и сохраним введённое значение в стрелку:

![](/files/75d6a0eafa947a0fa6ca3dad4fdbf72fd6b8ffa3)

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

![](/files/355e09b56258d0ec40bf6ddc3436af7d293da976)

Далее в нужном месте выведите переменную paynow\_pay\_url, которая содержит ссылку. В примере это следующий блок.

![](/files/9d5e77cd2d282df12b7b5af7179f3ce6df9ddcaa)

![](/files/197e8db22e221365d70d3bc433cadeb27f2180f4)

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

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

Эти callback-уведомления в системе вы видите как сообщения от пользователя, поэтому он не может отправить их вручную; они состоят из первых 10 символов секретного ключа и слова success, например: omc79l97u4\_success&#x20;

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

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

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

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

![](/files/cb66556bd3e9a857794c7e3abf94bf62872cbeed)

![](/files/6c3240741e86192d98e5554980d3f815e2fe1089)

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

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

&#x20;                                          ![](/files/399de4310d9251c29cf26765896a4976144e9704)

{% hint style="warning" %}
Уведомление об оплате сравнивает значение переменной paynow\_payment\_id с идентификатором платежа из уведомления; если они не совпадают, это означает, что платёж был совершён по старой ссылке. В вашей переписке с пользователем вы увидите об этом уведомление.
{% endhint %}

{% hint style="warning" %}
Мы настоятельно рекомендуем не создавать повторную ссылку на оплату, если предыдущая не была завершена или отменена!
{% endhint %}


---

# 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/paynow.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.
