# 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/b3399e50578720abadd10f9545865412cf419458)

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

![](/files/49857ac0f327f4580c89dcfc3d6594088326c017)

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

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

![](/files/8425c93c673f75145c1bb511045b5e2d51e0dce9)

Нижче потрібно скопіювати api key (Klucz dostępu do API) та secret key (Klucz obliczania podpisu)

![](/files/05a804934c5ae5c6d3434e788b4d297005079735)

Перейдіть до свого проєкту на salebot.pro і в розділі **Платіжні системи - Paynow** запишіть знайдені ключі.

&#x20;                                              ![](/files/6dca7a91e5876aa68518fc516e2967e1230ba85f)

![](/files/9e4b210ed6dbba452a7b426e72e3d6b936844070)

## Як створити посилання для оплати&#x20;

### Обов’язкові налаштування

{% hint style="warning" %}
Перш ніж вказувати змінну із сумою платежу, у клієнта має бути змінна email з його адресою електронної пошти
{% endhint %}

Нижче наведено приклад того, як можна запросити та зберегти вашу адресу електронної пошти.

**email** - email покупця (якщо не вказано, підставляється фейковий)&#x20;

**payment\_description** - опис платежу відображається у веб-інтерфейсі (Увага! Кирилиця буде автоматично замінена латинським алфавітом, не більше 255 символів). Якщо не вказано, заповнюється автоматично: **Оплата рахунку № "тут номер"**

Щоб згенерувати посилання для оплати, потрібно встановити значення **payment\_sum** змінної (наприклад, 150 або 100.55 (через крапку!)), одразу після цього **paynow\_pay\_url** з’явиться змінна. Цю змінну можна відображати як посилання або розмістити на кнопці з текстом "Pay".&#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/a24b86fed14e51df130495b5e558545cd24f3827)

У наступному блоці повідомлення не буде показано, ми вкажемо опис платежу, а після цього одразу встановимо змінну із сумою платежу 10 zl (злотих за замовчуванням)

![](/files/50cf1f27179b52f556326b5e1e3624b58c57b5f1)

Далі, у потрібному місці, виведіть змінну paynow\_pay\_url, яка містить посилання. У прикладі це наступний блок.

![](/files/3019a8e4cb83c2806f8b384b6378e8ddb09eb2dd)

![](/files/3312fe07d9f1572705446a82575e80ac62083fd6)

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

Після успішної оплати в бот прийдуть колбеки, за якими можна зрозуміти, що платіж успішно здійснено.&#x20;

Ці колбеки в системі ви бачите як повідомлення від користувача, тому їх не може надіслати сам користувач; вони складаються з перших 10 символів секретного ключа та account success, наприклад: omc79l97u4\_success&#x20;

Користувач ЦИХ callbacks НЕ БАЧИТЬ, вони відображаються лише оператору.&#x20;

Тип порівняння має бути "Full match"&#x20;

Також після успішної оплати змінна paynow\_payment\_completed буде встановлена в True.&#x20;

Наприклад, ви можете зробити блок успішної обробки платежу з умовою та вивести відповідне повідомлення користувачу:

![](/files/e3fe83e15d3e5106cd89e4ab69674a5377ad0455)

![](/files/1de7601f050ad271980ee2da2fcd02449ea738f5)

Після завершення оплати клієнту буде додано змінну paynow\_callback\_data, яка містить дані відповіді платіжної системи для завершеної транзакції. Ви можете витягнути потрібні дані зі словника за допомогою методу get.

{% hint style="warning" %}
Щоб здійснити повторну оплату, потрібно скинути payment\_sum, раніше згенероване посилання, а після скидання змінної payment\_sum отримати нове посилання. Ви можете вказати попереднє значення.
{% endhint %}

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

{% 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/uk/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.
