Salebot.pro
Search…
⌃K

Cloudpayments

Если Вам необходимо принимать международные платежи, Cloudpayments вам в этом поможет.

Как настроить Cloudpayments

Для подключения CloudPayments Вам понадобятся Public ID и Пароль для API.
Эти данные можно получить в личном кабинете. В разделе Сайты, нажимаем на значок шестеренки нужного сайта и попадаем в его настройки.
Справа вверху находятся нужные данные (Public ID и Пароль для API), они понадобятся ниже, для настройки оплаты в конструкторе.
Для того, чтобы бот получал уведомления об оплате, также необходимо установить callback_url.
Немного ниже в строке Pay и Recurrent (ВАЖНО именно Payи Recurrent ), включить переключатель и установить (строка обведена красным прямоугольником на скриншоте выше): Адрес: https://chatter.salebot.pro/cloudpayments_callback/result Кодировка: UTF-8 HTTP метод: POST Форма запроса: CloudPayments

Как настроить Salebot.pro

Теперь переходим в конструктор. Два значения, о которых мы говорили выше (Public ID и Пароль для API) необходимо указать в форме ниже. Форма находится в разделе "Платежные системы"
На этом подключение закончено. Теперь давайте разберемся как использовать данный функционал.

Как указать сумму

Для генерации ссылки на оплату, вам необходимо установить значение переменной payment_sum, сразу после этого появится переменная cloudpayments_pay_url. Эту переменную можно вывести на экран ссылкой или разместить на кнопке с текстом "Оплатить". Ссылка имеет вид: https://orders.cloudpayments.ru/d/PsdA6GaZmxSXB8xi

Как указать валюту

Cloudpayments принимает платежи в нескольких валютах, по умолчанию платеж создается в рублях. Для указания другой валюты вам необходимо присвоить значение переменной currency. Переменная принимает значения: Российский рубль RUB Евро EUR Доллар США USD Фунт стерлингов GBP Украинская гривна UAH Белорусский рубль BYN Казахский тенге KZT Азербайджанский манат AZN Швейцарский франк CHF Чешская крона CZK Канадский доллар CAD Польский злотый PLN Шведская крона SEK Турецкая лира TRY Китайский юань CNY Индийская рупия INR Бразильский реал BRL Южноафриканский рэнд ZAR
Например, как на скрине ниже, чтобы указать валюту гривны, можно установить эту переменную в настройках проекта.

Как добавить описание платежа

Вы можете добавить описание платежа, оно будет отображаться в заголовке формы оплаты.
Описание берется из переменной payment_description
Также есть возможность указать необязательное поле - Идентификатор пользователя в вашей системе. Для этого нужно до объявления переменной payment_sum объявить переменную account_id с нужным вам значением
При включении автоплатежей поле "Идентификатор пользователя" заполняется автоматически
Другими словами, даже если ранее вы вручную задавали значение переменной account_id, при включении автоплатежей она перезапишется и будет принимать значение идентификатора пользователя в Salebot. Такое изменение переменной требуется для корректного распознавания коллбэком в автоплатежах.

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

Важно! после успешной оплаты в бот придет колбек, по которому вы сможете понять что была успешная оплата. Этот колбек в системе вы видите как сообщение от пользователя, чтобы его не мог отправить пользователь, он состоит из ключа cloudpayments и приписки со статусом, например: b426739684e4e7449323344484353_success.
Эти колбеки НЕ ВИДИТ пользователь, они отображаются только оператору.
Также после успешной оплаты переменная cloudpayments_payment_completed устанавливается в True.
Если же оплата была неуспешной, Вам придет колбек вида b426739684e4e7449323344484353_fail.
Для того, чтобы узнать причину, обратите внимание на переменную cloudpayments_payment_status. Она может принимать следующие значения: Для одноразового платежа Completed - Завершена Cancelled - Отменена Declined - Отклонена (В случае невозможности провести операцию(нет денег на счете карты и т.п.) ) Для рекуррентного платежа Active-Подписка активна Cancelled - Отменена (В случае отмены по запросу) Declined - Отклонена (В случае невозможности провести операцию(нет денег на счете карты и т.п.) Rejected - Отклонена (В случае трех неудачных попыток оплаты, идущих подряд) Expired - Завершена
Тип сравнения должен быть "Полное совпадение"
Для совершения повторного платежа обязательно необходимо обнулить payment_sum, ранее сформированную ссылку и уже после переназначить переменную payment_sum для получения свежей ссылки

Пример

Для тестирования необходимо использовать карту с номером: 4111111111111111. Остальные данные не имеют значения.
Пример схемы, которая позволит протестировать быстро начать работу с Cloudpayments.
На рисунке показан пример первого блока, в котором пользователя спрашиваю сколько он хочет оплатить.
Ниже настройки стрелки, в ней должен быть включен переключатель "Пользователь вводит данные" и в поле вписана переменная payment_sum.
Ссылка на оплату содержится в переменной #{cloudpayments_pay_url}
После завершения оплаты клиенту добавится переменная cloudpayment_callback_data, содержащая данные ответа платежной системы по совершенной операции. Из полученного словаря можно извлечь необходимые данные при помощи метода get.

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

Для формирования чека онлайн-кассы необходимо при формировании ссылки на оплату передать дополнительные параметры.
Обратите внимание: переменной payment_sum присваивается значение после других параметров.
Обязательные параметры:
products_for_receipt - это массив с перечисленными товарами чека, следующего вида:
[{"description": "Название товара", "quantity": "Количество товара", "price": "Цена за единицу товара", "amount": "стоимость товара, произведение quantity и price", "vat_code": "ставка НДС"},
{"description": "Название товара 2", "quantity": "Количество товара 2", "price": "Цена за единицу товара 2", "amount": "стоимость товара, произведение quantity и price"}]
Каждый товар разделен запятой и имеет вид: {"description": "Название товара", "quantity": "Количество товара", "amount": "Цена за единицу товара", "vat_code": "ставка НДС"}
  1. 1.
    description - название товара (не более 128 символов)
  2. 2.
    quantity - количество товара, может быть целое число, либо дробное через точку (например: 1 или 5 или 2.0 или 3.5)
  3. 3.
    price - цена за единицу товара
  4. 4.
    amount - стоимость товара, произведение quantity и price
  5. 5.
    vat_code - ставка НДС (не указываем, если товар без НДС)
vat_code не нужно передавать, если товар не облагается НДС (в примере выше первый товар с 0% НДС, второй без НДС), если же облагается, тогда передаем следующие значения:
0 НДС 0% 10 НДС 10% 20 НДС 20% 110 Расчетный НДС 10/110 120 Расчетный НДС 20/120 12 НДС 12% (только для онлайн-касс в Казахстане)
Также необходимо указать, контактные данные клиента, как минимум: электронную почту или номер телефона:
email - E-mail покупателя для отправки чека phone - телефон покупателя в формате без скобок и дефисов для отправки ссылки на чек
Необязательные параметры: full_name - для юрлица — название организации, для ИП и физического лица — ФИО cloudpayments_method - признак способа расчета(например, предоплата). Число от 0 до 7.Список значений можно посмотреть тут cloudpayments_object - признак предмета расчета(например, товар/услуга). Число от 0 до 34. Список значений можно посмотреть тут cloudpayments_inn - ИНН организации, необходим для корректного формирования чека cloudpayments_taxation_system - система налогообложения, число от 0 до 5, где 0-Общая система налогообложения 1-Упрощенная система налогообложения (Доход) 2-Упрощенная система налогообложения (Доход минус Расход) 3-Единый налог на вмененный доход 4-Единый сельскохозяйственный налог 5-Патентная система налогообложения Если не указать, поставит первую систему, указанную при фискализации. cloudpayments_calculation_place - Место осуществления расчёта, например, адрес сайта
Пример данных для чека:
products_for_receipt = [{"description": "Название товара", "quantity": "2", "price": "25", "amount": "50", "vat_code": "0"}, {"description": "Название товара 2", "quantity": "3", "price": "50", "amount": "150"}] phone = 79000000000 email = [email protected] full_name = Иванов Иван Иванович
После определения переменных платежа, определяем переменную payment_sum, после которой сразу появится ссылка на оплату в переменной cloudpayments_pay_url.
Внимание! Общая стоимость всех товаров должна быть равной переменной payment_sum.
После оплаты на указанную почту клиенту придет чек об оплате, если был передан номер телефона, то на него придет сообщение с ссылкой на чек.

Как создать автоплатежи

Для создания платежа с подпиской, достаточно в настройках платежной системы в salebot включить эту возможность:
Теперь при переходе по ссылке на оплату покупателю выводится информация, что после проведение платежа создастся подписка.
Обратите внимание: Автоплатеж автоматически создается с периодом списания равным один месяц.
Вы можете задать период списания равный одной неделе, для этого перед первым (установочным) платежом дополнительно нужно задать переменную cloudpayments_subscription_period - со значением week

Успешный платеж

После успешного первого платежа клиенту добавится переменная cloudpayments_subscription_id с идентификатором подписки
Также при каждом успешном списании в переменную subscription_payment_sum записывается сумма платежа, например 200.0
Эту переменную после успешной оплаты можно использовать для разделения сообщений: у разных подписок будет свой вариант.
После каждого успешного автоплатежа вам придет в бота коллбэк. Он выглядит так же, как при обычном платеже. Его описание есть выше в главе "Обработка результата"

Как изменить существующую подписку

Если после создания подписки нужно изменить сумму платежа или товары для чека, то нужно вызвать функцию cloudpayments_update_subscription() и передать сумму нового платежа.
Также параметрами можно передать:
  1. 1.
    новое описание подписки, используя переменную products_for_subscription_receipt Внимание! Данный параметр обязательный в данной функции. Соответственно, если обновление описания подписки не требуется, то пропишите: products_for_subscription_receipt = []
  2. 2.
    новый интервал подписки, используя переменную cloudpayments_subscription_interval - может принимать значения ‘Day’, ‘Week’, ‘Month’
  3. 3.
    новую периодичность подписки, используя переменную cloudpayments_subscription_period - число, показывает, как часто в интервал должна взиматься оплата. Таким образом, если указать, к примеру, значения cloudpayments_subscription_interval = ‘Month’ и cloudpayments_subscription_period = 3, мы получим подписку, осуществляющую платеж раз в 3 месяца.
Обратите внимание, что изменение интервала и периода подписки не будет работать, если Вы ранее не создавали платеж по подписке, т.к. функция обновляет уже существующую подписку, а не создает новую.
Также стоит обратить внимание, что первый платеж по подписке Cloudpayments всегда создается на интервал раз в месяц или раз в неделю, поэтому первичное уведомление о платеже будет содержать вот такую приписку в платежной форме:
Для того, чтобы узнать, прошло ли изменение параметров подписки, следует найти описание переменной с функцией cloudpayments_update_subscription в переменных клиента. В приведенном примере в переменной response записан ответ функции, среди параметров ответа можно увидеть новые период и интервал подписки.
Пример ниже показывает использование нового описания подписки.
Например, изменим данные подписки на следующие: products_for_subscription_receipt = [{"description": "Название товара", "quantity": "1", "price": "10", "amount": "10", "vat_code": "0"}, {"description": "Название товара 2", "quantity": "3", "price": "30", "amount": "90"}] response = cloudpayments_update_subscription(100, "Новая подписка") products_for_subscription_receipt - необязательная переменная, данные для чека (описание ниже)

Совершение обычного платежа при включенных подписках

Если Вам нужно, при включенных автоплатежах провести оплату без подписки, то до указания переменной payment_sum, нужно добавить переменную cloudpayments_manual_recurrent_disable и присвоить ей значение 1.
Таким образом, ссылка на оплату сформируется без подписки.
Важно! Не забывайте каждый раз обнулять переменную, после получения ссылки

Как получить чеки для платежей по подписке

Если при первом платеже с включенными автоплатежами были переданы данные для чека, то создастся подписка уже с данными для чека. На каждый автоплатеж будет приходить чек на указанный email или номер телефона.
Если вы решили изменить сумму платежа по подписке, у вас подключена онлайн касса и после списания нужно отправлять чек, тогда до вызова функции cloudpayments_update_subscription() нужно создать переменную products_for_subscription_receipt, которая будет содержать новые данные для чека. Если их не передать, списания будут происходить без чека.
products_for_subscription_receipt заполняется таким же образом, как и переменная products_for_receipt описанная выше в главе "Формирование чеков"

Как отменить подписку

Чтобы отменить подписку, достаточно вызвать функцию cloudpayments_remove_subscription()

Как вывести данные о сделке

В cloudpayments доступна функция вывода полных данных о сделке.Для этого в окне подключения платежки необходимо включить “сохранять данные колбека". После этого, при совершении платежей пользователями, в информацию о сделке в переменную cloudpayment_callback_data будет приходить список, включающий в себя данные о совершенном действии. Из этого списка можно извлечь нужную вам информацию, такую как статус сделки, сумма, валюта, имя, почта и другое. Для этого воспользуйтесь встроенной функцией get()
На заметку! Статус платежа так же записывается в переменную cloudpayments_payment_status.

Как совершить оплату по платежному токену

После оплаты по подписке в ваших переменных может появиться платежный токен системы cloudpayments - он будет храниться в переменной cloudpayments_payment_token
Чтобы совершить разовую оплату по данному токену, можно воспользоваться функцией cloudpayments_token_payment(token), где token - это значение из переменной cloudpayments_payment_token. Так же токен можно найти в списке cloudpayments_callback_data, если у Вас включен свитчер “сохранять данные Callback”.
Для осуществления платежа нужно просто подставить токен в функцию, и система ответит Вам результатом. В случае успеха, Вы получите привычный колбек об успешной оплате.
Также в переменные добавится ответ от системы: