ЮKassa (ex Яндекс.Касса)
Вы можете организовать прием платежей в бота используя платежный агрегатор Яндекс.Касса
Ссылка на оплату имеет ограничение по времени. Если клиент не подтвердит оплату до окончания этого срока, то ЮКаssa отменит платеж.
Ссылка может быть неактивной в случае если был повторный переход тем же или другим пользователем с другого устройства или браузера.
В любом случае предусмотрите возможность генерации новой ссылки.
Для подключения ЮKassa Вам потребуются shopId и секретный ключ.
shopId можно увидеть в настройках на ЮKassa

Либо в шапке:

Секретный ключ находится в разделе Интеграции:

Для того, чтобы бот получал уведомления об оплате, также необходимо установить на ЮKassa callback_url https://chatter.salebot.pro/yandex_kassa_callback/result

Теперь переходим в конструктор. Два значения, о которых мы говорили выше необходимо указать в форме ниже. Форма находится в разделе "Платежные системы"


Дальше начинаем использовать.
Для генерации ссылки на оплату, вам необходимо установить значение переменной payment_sum, сразу после этого появится переменная yandex_kassa_pay_url.
Также до установки значения переменной payment_sum, можно задать следующие необязательные переменные, для настройки платежа:
currency - валюта заказа. Код валюты в формате ISO-4217, по умолчанию RUB
payment_title – описание заказа. Если не указан, будет заполнен автоматически "Оплата счета 123456-123456"

Эту переменную можно вывести на экран ссылкой или разместить на кнопке с текстом "Оплатить".
ссылка на оплату выглядит примерно так

После успешной или неуспешной оплаты в бот придут колбеки, по которым вы сможете понять что была успешная оплата. Эти колбеки в системе вы видите как сообщения от пользователя, чтобы их не мог отправить пользователь, они состоят из ключа ЮKassa и приписки со статусом, например: test_k4kyf6E00dpq5ft7vGHmxXCo23JKziwt729O-WcdL8s_success. Также после успешной оплаты переменная yandex_kassa_payment_completed устанавливается в True.

Эти колбеки НЕ ВИДИТ пользователь, они отображаются только оператору.
Тип срав нения должен быть "Полное совпадение"
Для совершения повторного платежа обязательно необходимо обнулить payment_sum, ранее сформированную ссылку и уже после переназначить переменную payment_sum для получения свежей ссылки
После завершения оплаты клиенту добавится переменная yookassa_callback_data, содержащая данные ответа платежной системы по совершенной операции. Из полученного словаря можно извлечь необходимые данные при помощи метода get.
Для подключения автоматических платежей необходимо установить переключатель при подключении ЮKassa

В этом случае при оплате появится предупреждение о подключении подписки

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

Для поведения повторного платежа необходимо использовать запрос:
Тип запроса: POST-json
URL: https://store.salebot.pro/function/yandex_kassa_auto_pay
Параметры:
shop_id - идентификатор магазина из настроек
secret_key - ключ из настроек подключения
payment_sum - сумма платежа
yandex_payment_method_id - необходимо передать переменную: #{yandex_payment_method_id}
order_id - необходимо передать переменную: #{order_id}
payment_title - описан ие платежа(необязательный параметр)
capture - параметр, отвечающий за платеж без подтверждения пользователя. Установите значение равное 1 (параметр необязательный)
Сохраняемые значения из JSON-ответа:
response -> yandex_kassa_payment_id
По переменной yandex_kassa_payment_id система определит что именно оплатил пользователь. Для тестирования вы можете вывести на экран переменную #{custom_answer}. В случае успеха ответ будет вида: {"status":"1","response":"265b608b-000f-5000-a000-1fab5b6fd51b"}
Пример параметров:
{"shop_id": "653775", "secret_key": "test_k4kyf6E00dpq5ft7vGHmxXCo23JKziwt729O-WcdL8s", "payment_sum": 200, "yandex_payment_method_id": "#{yandex_payment_method_id}", "order_id": "#{order_id}"}
Для тестирования платежа вам необходимо самостоятельно подтвердить платеж в Яндекс.Кассе
Для подтверждения платежа необходимо нажать кнопку "Подтвердить" в списке платежей

Платеж в списке появляется спустя несколько минут и кнопка "Подтвердить" также появляется не сразу
При выполнении автоплатежа не должно быть ссылки на оплату ЮКассы и переменной payment_sum!
Для подключения возможности применения автоплатежей требуется связаться с Вашим менеджером. Вот несколько полезных советов:
- 1.Звонить или писать в техподдержку необходимо самостоятельно
- 2.Не забудьте подготовить все скрины о ценах в боте и о том, что подписку можно отменить
- 3.Делать это лучше в будние дни
- 4.Ожидание одобрения - 2-3 дня
Автоматические платежи необходимо использовать аккуратно, необходимо предусмотреть возможность отписки от платежа. Также, не всегда требуется подтверждение при проведении платежа и вы можете в случае ошибки списать все деньги у человека. Будьте аккуратны.
Данные чека должны быть заданы до указания суммы платежа.
Для формирования чека онлайн-кассы необходимо при формировании ссылки на оплату передать дополнительные параметры.
Обязательные параметры:
products_for_receipt - это массив с перечисленными товарами чека, следующего вида:
[{"description": "Название товара", "quantity": "Количество товара", "amount": "Цена за единицу товара"}, {"description": "Название товара 2", "quantity": "Количество товара 2", "amount": "Цена за единицу товара 2"}]
- 1.description - название товара (не более 128 символов)
- 2.quantity - количество товара, может быть целое число, либо дробное через точку (например: 1 или 5 или 2.0 или 3.5)
- 3.amount - цена за единицу товара
vat_code - ставка НДС. Возможные значения — числа от 1 до 6:
1 - Без НДС
2 - НДС по ставке 0%
3 - НДС по ставке 10%
4 - НДС чека по ставке 20%
5 - НДС чека по расчетной ставке 10/110
6 - НДС чека по расчетной ставк е 20/120
Также необходимо передать контактные данные клиента, как минимум электронную почту или номер телефона:
email - электронная почта пользователя.
phone - телефон пользователя. Указывается в формате ITU-T E.164, например 79000000000.
Необязательные параметры:
full_name - для юрлица — название организации, для ИП и физического лица — ФИО

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

Общая стоимость всех товаров должна быть равной переменной payment_sum.
Обратите внимание: переменная payment_sum получает своё значение последней!
Из примера выше:
Данные чека должны быть заданы ДО указания суммы платежа
Для формирования чека онлайн-кассы при вызове функции автоплатежа необходимо передать дополнительные параметры.
Обязательные параметры:
vat_code - ставка НДС. Возможные значения — числа от 1 до 6:
1 - Без НДС
2 - НДС по ставке 0%
3 - НДС по ставке 10%
4 - НДС чека по ставке 20%
5 - НДС чека по расчетной ставке 10/110
6 - НДС чека по расчетной ставке 20/120
Также необходимо передать контактные данные клиента, как минимум, электронную почту или номер телефона:
email - электронная почта пользователя.
phone - телефон пользователя. Указывается в формате ITU-T E.164, например 79000000000.
Необязательные параметры:
product_description - Наименование товара, если не передать будет иметь вид: 'Оплата счета 35342815-29200591'
full_name - для юрлица — название организации, для ИП и физического лица — ФИО
Пример вызова функции автосписания
Обязательные параметры:
vat_code - ставка НДС. Возможные значения — числа от 1 до 6:
1 - Без НДС
2 - НДС по ставке 0%
3 - НДС по ставке 10%
4 - НДС чека по ставке 20%
5 - НДС чека по расчетной ставке 10/110
6 - НДС чека по расчетной ставке 20/120
products_for_receipt - это массив с перечисленными товарами чека (нужно записать в переменную и передать), имеет следующий вид:
[{"description": "Название товара", "quantity": "Количество товара", "amount": "Цена за единицу товара"}, {"description": "Название товара 2", "quantity": "Количество товара 2", "amount": "Цена за единицу товара 2"}]
Обратите внимание, строка описания одного товара имеет вид:
{"description": "Название товара", "quantity": "Количество товара", "amount": "Цена за единицу товара"}
description - название товара (не более 128 символов)
quantity - количество товара, может быть целое число, либо дробное через точку
(например: 1 или 5 или 2.0 или 3.5)
amount - цена за единицу товара
Общая стоимость всех товаров должна быть равна переменной payment_sum.
Необязательные параметры:
full_name - для юрлица — название организации, для ИП и физического лица — ФИО
Описание переменной, содержащей перечень описаний товара, для формирования чека:
Объявление переменной
Пример вызова функции автосписания за несколько товаров
Дополнительные параметры, передаваемые обязательно для формирования чека, выделены жирным:
{"shop_id": "123456", "secret_key": "#{secret_key}", "payment_sum": 13, "yandex_payment_method_id": "#{yandex_payment_method_id}", "order_id": "#{order_id}", "vat_code":"1", "products_for_receipt": "#{for_receipt}", "email": "#{email}"}
Обратите внимание: переменная payment_sum получает своё значение последней!
С помощью нашей интеграции с ЮKassa можно возвращать успешные платежи. Комиссии за проведение возврата нет. Комиссия ЮKassa за проведение платежа не возвращается.
Тип запроса: POST-json
URL: https://store.salebot.pro/function/yookassa_function
Параметры:
shop_id - идентификатор магазина из настроек
secret_key - ключ из настроек подключения
refund_sum - сумма возврата (пример 100 или с точкой 120.5)
yandex_kassa_payment_id - идентификатор платежа, необходимо передать переменную:
#{yandex_kassa_payment_id}
Дополнительно можно указать:
refund_description - комментарий к возврату, основание для возврата денег пользователю.
Сохраняемые значения из JSON-ответа:
status -> refund_status;
response -> resp
Для тестирования вы можете вывести на экран переменную #{custom_answer}.
В случае успеха ответ будет вида:
{"status":"canceled","response":"265b608b-000f-5000-a000-1fab5b6fd51b"}
status - статус возврата платежа. Возможные значения: canceled, succeeded или 0, если возникла ошибка
response - идентификатор возврата платежа в ЮKassa или описание ошибки
Пример параметров:
{"shop_id": "653775", "secret_key": "test_k4kyf6E00dpq5ft7vGHmxXCo23JKziwt729O-WcdL8s", "refund_sum": 100, "yandex_kassa_payment_id": "#{yandex_kassa_payment_id}"}

Тип запроса: POST-json
URL: https://store.salebot.pro/function/yookassa_function
Параметры:
peace_refund - 1 - отмечаем, что возврат частичный
shop_id - идентификатор магазина из настроек
secret_key - ключ из настроек подключения
yandex_kassa_payment_id - идентификатор платежа, необходимо передать переменную: #{yandex_kassa_payment_id}
refund_products_list - список возвращаемых товаров, пример:
"[{'description': 'Название товара', 'quantity': 'Количество товара', 'amount': 'Цена за единицу товара'}, {'description': 'Название товара 2', 'quantity': 'Количество товара 2', 'amount': 'Цена за единицу товара 2'}]"
Важно, чтоб были одинарные кавычки в этом выражении (ниже представлен пример, который можно скопировать и заменить данные на свои.
Каждый товар содержит три значения:
{'description': 'Название товара', 'quantity': 'Количество товара', 'amount': 'Цена за единицу товара'}
- 1.description - название товара (не более 128 символов)
- 2.quantity - количество товара, может быть целое число, либо дробное через точку (например: 1 или 5 или 2.0 или 3.5)
- 3.amount - цена за единицу товара
refund_sum - полная сумма возврата товаров из refund_products_list (пример 100 или с точкой 120.5)
vat_code - ставка НДС. Возможные значения — числа от 1 до 6:
1 - Без НДС
2 - НДС по ставке 0%
3 - НДС по ставке 10%
4 - НДС чека по ставке 20%
5 - НДС чека по расчетной ставке 10/110
6 - НДС чека по расчетной ставке 20/120
email - Электронная почта пользователя.
И\ИЛИ
phone - Телефон пользователя. Указывается в формате ITU-T E.164, например 79000000000.
Дополнительно можно указать:
full_name - для юрлица — название организации, для ИП и физического лица — ФИО
refund_description - комментарий к возврату, основание для возврата денег пользователю.
Сохраняемые значения из JSON-ответа:
status -> refund_status;
response -> resp
Для тестирования вы можете вывести на экран переменную #{custom_answer}.
В случае успеха ответ будет вида:
{"status":"canceled","response":"265b608b-000f-5000-a000-1fab5b6fd51b"}
status - статус возврата платежа. Возможные значения: canceled, succeeded или 0, если возникла ошибка
response - идентификатор возврата платежа в ЮKassa или описание ошибки
Пример параметров:
{"shop_id": "769963",
"secret_key": "test_fMZ0RqpghcoETJ9fhWXbZJsM66DKyvBgJN1rr65Ioz",
"refund_sum": 10,
"yandex_kassa_payment_id": "#{yandex_kassa_payment_id}",
"peace_refund": 1,
"full_name": "Иванов Иван Иванович",
"email": "[email protected]",
"phone": "79000000000",
"vat_code": 1,
"product_description": "Курс"}

Last modified 8mo ago