Salebot.pro
Search…
⌃K

ЮKassa (ex Яндекс.Касса)

Вы можете организовать прием платежей в бота используя платежный агрегатор Яндекс.Касса
Ссылка на оплату имеет ограничение по времени. Если клиент не подтвердит оплату до окончания этого срока, то ЮКаssa отменит платеж.
Ссылка может быть неактивной в случае если был повторный переход тем же или другим пользователем с другого устройства или браузера.
В любом случае предусмотрите возможность генерации новой ссылки.
Подробнее в таблице "срок оплаты" https://yookassa.ru/developers/payment-methods/overview

Как интегрировать ЮKassa в Salebot.pro

Для подключения Ю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. 1.
    Звонить или писать в техподдержку необходимо самостоятельно
  2. 2.
    Не забудьте подготовить все скрины о ценах в боте и о том, что подписку можно отменить
  3. 3.
    Делать это лучше в будние дни
  4. 4.
    Ожидание одобрения - 2-3 дня

Использование

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

Как сформировать чеки ЮКасса

Данные чека должны быть заданы до указания суммы платежа.
Для формирования чека онлайн-кассы необходимо при формировании ссылки на оплату передать дополнительные параметры.
Обязательные параметры:
products_for_receipt - это массив с перечисленными товарами чека, следующего вида:
[{"description": "Название товара", "quantity": "Количество товара", "amount": "Цена за единицу товара"}, {"description": "Название товара 2", "quantity": "Количество товара 2", "amount": "Цена за единицу товара 2"}]
  1. 1.
    description - название товара (не более 128 символов)
  2. 2.
    quantity - количество товара, может быть целое число, либо дробное через точку (например: 1 или 5 или 2.0 или 3.5)
  3. 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. 1.
    description - название товара (не более 128 символов)
  2. 2.
    quantity - количество товара, может быть целое число, либо дробное через точку (например: 1 или 5 или 2.0 или 3.5)
  3. 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": "Курс"}