- Быстрая регистрация и подтверждение мерчанта
- Регистрация мерчанта для физ. лица без сайта
- Единый процент для физических и юридических лиц — 2.5%
- Наличие Google Pay и Apple Pay
Как подключить
Для подключения платежной системы WayForPay понадобятся 3 значения:
- Логин мерчанта
- Секретный ключ мерчанта
- Доменное имя веб-сайта торговца
Переходим в личный кабинет → настройки магазина:
https://m.wayforpay.com/mportal/merchant/list

Копируем данные и переходим к настройкам в Salebot.
Открываем раздел «Эквайринг» и выбираем WayForPay.

Нужно ввести полученные данные в открывшейся форме:

Для генерации ссылки на оплату необходимо установить значение переменной payment_sum (например, 150 или 100.55; если сумма дробная, она указывается через точку):

Сразу после этого появится переменная wayforpay_pay_url. Эту переменную можно вывести в сообщении в виде ссылки или разместить на кнопке с текстом «Оплатить».
Вариант 1. Ссылка на оплату в кнопке

Вариант 2. Ссылка на оплату в поле URL вложения

Ссылка имеет вид:
https://secure.wayforpay.com/invoice/id1bbb2ad0375
По умолчанию установлена валюта UAH (гривна). Если нужна другая валюта, необходимо установить значение переменной
currency.
Также до установки значения переменной payment_sum можно задать следующие необязательные переменные для настройки платежа:
-
currency— валюта заказа. По умолчанию UAH. Возможные значения: USD, EUR, RUB. -
session_timeout— время жизни ссылки в секундах. По умолчанию 3600 (1 час). -
product_name— название продукта. -
language— язык страницы оплаты. По умолчанию UA. Возможные значения: RU, EN. -
buyer_name— имя покупателя. -
buyer_email— почта покупателя. -
buyer_first_name— имя покупателя. -
buyer_last_name— фамилия покупателя.
Так выглядит страница оплаты по ссылке:

Создадим ссылку на оплату в размере 1 грн со временем жизни 2 часа:

Обратите внимание:
- Сначала указываются необязательные параметры:
product_nameи другие.- Последней присваивается значение переменной
payment_sum.
Сначала задаем переменные для настроек, затем payment_sum. Переменные можно задать и ранее в цепочке, а не обязательно в одном блоке. Это лишь пример.
Далее в следующем блоке выводим переменную wayforpay_pay_url, в которой содержится ссылка, например в тексте:

Бот отработает следующим образом:

Как обработать результат
После успешной оплаты в бот придут колбэки, по которым можно определить, что оплата прошла успешно.
Эти колбэки в системе отображаются как сообщения от пользователя. Чтобы пользователь не мог отправить такое сообщение самостоятельно, колбэк состоит из первых 10 символов секретного ключа и приписки _success.
Например:
flk3409ref_success

Эти колбэки пользователь не видит. Они отображаются только оператору.
Тип сравнения должен быть «Полное совпадение».
Также после успешной оплаты переменная wayforpay_payment_completed устанавливается в True.
Например, можно обработать успешную оплату блоком с условием и вывести соответствующее сообщение пользователю:


Если вы не хотите выбивать клиента из основной схемы чат-бота, воспользуйтесь блоком «Не состояние с условием». В этот блок нельзя перейти, поэтому после оплаты клиент не будет выбит из основной воронки, но при этом получит уведомление об успешной оплате.
Если необходимо продолжить воронку после успешной оплаты, используйте блок «Стартовое условие». Тогда клиент из блока оплаты перейдет в блок «Стартовое условие», с которого можно продолжить воронку.
Подробнее о блоках с условием рассказано в одноименной статье.
После завершения оплаты клиенту добавится переменная wayforpay_callback_data, содержащая данные ответа платежной системы по совершенной операции.
Из полученного словаря можно извлечь необходимые данные при помощи метода get.
Функции для работы в калькуляторе
Для рекуррентных платежей
wayforpay_recurrent_payment(amount, currency, session_timeout, product_name, language, buyer_name, buyer_email, regular_date_next, regular_date_end, regular_count, regular_mode, regular_behavior, regular_amount, regular_on) — создает ссылку на рекуррентную оплату.
| Параметр | Описание |
|---|---|
amount |
Сумма платежа |
currency |
Валюта. По умолчанию UAH (возможные значения USD, EUR, RUB). Необязательный параметр |
session_timeout |
Время жизни ссылки в секундах, по умолчанию 3600 (1 час). Необязательный параметр |
product_name |
Название продукта. Необязательный параметр |
language |
Язык страницы оплаты, по умолчанию UA (возможные значения RU, EN). Необязательный параметр |
buyer_name |
Имя покупателя. Необязательный параметр |
buyer_email |
Почта покупателя. Необязательный параметр |
regular_date_next |
Дата следующего автоплатежа в формате ДД.ММ.ГГГГ. По умолчанию через месяц после создания ссылки. Дата должна быть больше текущей. Необязательный параметр |
regular_date_end |
Дата окончания автоплатежей в формате ДД.ММ.ГГГГ. По умолчанию через год после создания ссылки. Можно пропустить и указать параметр regular_count. Необязательный параметр |
regular_count |
Количество автоплатежей. Если указать, то параметр regular_date_end не будет действовать. Необязательный параметр |
regular_mode |
Период, с которым будут происходить автоплатежи. По умолчанию monthly. Необязательный параметр. Возможные варианты перечислены ниже |
regular_behavior |
Поведение параметров автосписания на странице оплаты. Единственное значение — preset: плательщик не сможет изменить период, сумму и даты автосписания, они будут показаны такими, какими вы их передали. Если параметр не указывать, плательщик может править эти поля сам. Необязательный параметр |
regular_amount |
Сумма автосписания, если она отличается от суммы первого платежа. Например, amount = 1 и regular_amount = 500 — первый платёж 1 грн, дальше по 500 грн. Если не указать, автосписания будут на сумму из amount. Необязательный параметр |
regular_on |
Галка «сделать платёж регулярным» на странице оплаты. По умолчанию 1 — галка включена, платёж сразу регулярный. Значение 0 — галку ставит сам плательщик, то есть он решает, делать оплату разовой или регулярной. Необязательный параметр |
Возможные значения regular_mode:
-
once— единоразовое списание -
daily— ежедневно -
weekly— еженедельно -
quarterly— каждые 3 месяца после даты первого платежа -
monthly— раз в месяц -
bimonthly— раз в 2 месяца -
halfyearly— раз в полгода -
yearly— раз в год -
none— без автосписаний -
client— период выбирает сам плательщик на странице оплаты
Можно перечислить несколько вариантов через точку с запятой — тогда плательщик выбирает период из этого списка:
weekly;monthly;yearly
Пример. Подписка 500 грн в месяц, первый платёж — завтра, всего 12 списаний, менять параметры плательщику нельзя:
wayforpay_recurrent_payment(500, "UAH", null, "Подписка на клуб", "UA", #имя#, #email#, add_days(get_datetime("%d.%m.%Y"), 1), null, 12, "monthly", "preset")
Пример. Первый платёж 1 грн (пробный период), дальше 500 грн раз в месяц:
wayforpay_recurrent_payment(1, "UAH", null, "Пробный период", "UA", #имя#, #email#, null, null, null, "monthly", "preset", 500)
Результат функции — ссылка на оплату. Её нужно записать в переменную и отправить клиенту.
Управление уже созданными автосписаниями
Все четыре функции работают с номером заказа — тем, под которым прошла успешная оплата. Токен карты (wayforpay_recurrent_token) здесь не подойдёт, WayForPay его в этих запросах не принимает.
| Функция | Что делает |
|---|---|
wayforpay_suspend_recurrent(order_reference) |
Приостанавливает автосписания. Обратимо |
wayforpay_resume_recurrent(order_reference) |
Возобновляет приостановленные автосписания |
wayforpay_delete_recurrent() |
Отменяет автосписания совсем. Необратимо — чтобы возобновить, нужна новая ссылка на оплату |
wayforpay_recurrent_status(order_reference, field) |
Показывает состояние автосписаний |
| Параметр | Описание |
|---|---|
order_reference |
Номер заказа, по которому была успешная оплата. Если не указывать, берётся номер последней успешной оплаты клиента (переменная wayforpay_payment_id). Необязательный параметр |
field |
Только для wayforpay_recurrent_status: вернуть одно поле вместо всего ответа. Необязательный параметр |
wayforpay_suspend_recurrent, wayforpay_resume_recurrent и wayforpay_delete_recurrent возвращают ответ WayForPay: Ok — если получилось, иначе текст ошибки.
wayforpay_recurrent_status без параметра field возвращает весь ответ в формате JSON:
{
"reasonCode": 4100,
"reason": "Ok",
"orderReference": "P21435306374431",
"status": "Active",
"mode": "monthly",
"amount": 500,
"currency": "UAH",
"card": "44**44",
"email": "client@mail.com",
"dateBegin": 1435698000,
"dateEnd": 1436043600,
"lastPayedDate": null,
"lastPayedStatus": null,
"nextPaymentDate": null
}
С параметром field вернётся одно значение — например, wayforpay_recurrent_status(null, "status") даст Active.
Доступные поля:
statusmodeamountcurrencycardemaildateBegindateEndlastPayedDatelastPayedStatusnextPaymentDate
Возможные значения status:
-
Created— автосписания созданы, но ещё не активны -
Active— автосписания идут -
Suspended— приостановлены (сюда же WayForPay переводит их сам, если очередное списание не прошло) -
Removed— отменены -
Completed— закончились: прошло всё количество изregular_countлибо наступила датаregular_date_end -
Confirmed— служебный статус
Для отмены автосписаний
wayforpay_delete_recurrent()
Отменяет последующие автоматические списания у клиента.
При успешном выполнении возвращает:
Ok

Можно также использовать блоки «Стартовое условие» и «Состояние». В примере используются блоки «Не состояние с условием» и «Не состояние».
Если вы не хотите выбивать клиента из основной схемы чат-бота, воспользуйтесь блоком «Не состояние с условием». В этот блок нельзя перейти, поэтому после оплаты клиент не будет выбит из основной воронки, но при этом получит уведомление об успешной оплате.
Если необходимо продолжить воронку после успешной оплаты, используйте блок «Стартовое условие». Тогда клиент из блока оплаты перейдет в блок «Стартовое условие», с которого можно продолжить воронку.


