Paypal

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

Для работы с Paypal необходимо получить два ключа: client_id и секретный

Перейдите на страницу https://developer.paypal.com/developer/applications/arrow-up-right

И выберите из списка или создайте новое приложение:

Вверху переключитесь в режим Live и выберите нужное приложение. Откроется страница настроек, где находится нужная нам информация:

Скопируйте данные и вставьте их в соответствующие поля в настройках Mavibot: перейдите в раздел "Acquiring" и найдите сервис Paypal:

Далее нажмите "Connect" и заполните поля ранее полученным секретным ключом и Client ID:

Затем нажмите "Save settings". На этом подключение завершено.

Как создать ссылку на оплату

С использованием переменной payment_sum

Чтобы сгенерировать ссылку на оплату, нужно задать значение payment_sum переменной, и сразу после этого появится paypal_pay_url переменная.

Параметры функции
Описание параметра
Примечание

payment_title

(необязательная переменная) это название товара.

Если оно не указано, подставляется текст: “Invoice payment order_id" (order_id — идентификатор заказа в mavibot)

payment_description

описание товара, необязательное поле

company_name

название вашей компании отображается в самой верхней части страницы оплаты (пример ниже, company)

Кроме того, перед указанием payment_sum можно задать, на каком языке будет страница оплаты.

Для этого задайте переменную locale. Язык по умолчанию — Russian (ru-RU). Возможные варианты: da-DK, he-IL, id-ID, ja-JP, no-NO, pt-BR, ru-RU, sv-SE, th-TH, zh-CN, zh-HK, zh-TW и т. д. (набор доступных языков может отличаться, ориентируйтесь на исходный источник) ссылка первоисточникarrow-up-right)

Также можно указать валюту, в которой принимается платеж. Для этого укажите currency переменную, рубль (RUB) по умолчанию, для доллара задайте значение USD (currency = USD). Возможные варианты валют можно посмотреть по ссылке. ссылка ссылкеarrow-up-right.

А третий дополнительный параметр — это company_name - название вашей компании, отображаемое в самой верхней части страницы оплаты (пример ниже, company)

Текст paypal_pay_url переменная может отображаться в виде ссылки или быть размещена на кнопке с текстом "Pay".

Ссылка выглядит так: https://www.paypal.com/checkoutnow?token=07N53571YM296381Narrow-up-right

Пример реализации.

Указание суммы платежа и названия компании

circle-info

Обратите внимание: кнопкой payment_sum переменной присваивается значение последней, после необязательных переменных payment_title, company_name, и т. д.

Далее укажите переменную #{paypal_pay_url} во втором блоке "Status":

  1. Переменную можно указать в поле сообщения:

  1. Переменную можно указать в поле url в настройках вложения:

  1. Переменную можно указать в поле url в настройках кнопки:

При открытии ссылки на оплату

С использованием функции калькулятора paypal_payment_url

Создайте блок конструктора воронки и используйте paypal_payment_url функцию в калькуляторе, передав ей необходимые параметры:

Параметры функции
Описание параметра

! payment_sum

обязательный параметр — сумма платежа.

currency

Валюта платежа по умолчанию — ‘USD'. Полный список доступен по ссылке https://developer.paypal.com/docs/api/reference/currency-codes/arrow-up-right

payment_title

заголовок платежа (до 127 символов). (Если не указано, подставляется текст: “Invoice payment payment_id”, где payment_id — ID заказа в Mavibot)

payment_description

краткое описание платежа (до 127 символов)

company_name

необязательный параметр, название организации/компании и т. д.

locale

Язык страницы оплаты указывается как en-US, fr-XC и т. д. По умолчанию — ‘ru-Ru’. Полный список доступен по ссылке https://developer.paypal.com/api/rest/reference/locale-codes/

Когда условие блока будет выполнено, клиент получит ссылку на оплату, и paypal_payment_completed у клиентской переменной будет создано значение False.

url = paypal_payment_url(2500, 'RUB', 'Invoice payment payment_id','payment description', 'organization name', 'ru-Ru')

Как создать рекуррентный платеж

Чтобы создать и получить ссылку на оплату с рекуррентными платежами, нужно создать план подписки в личном кабинете.

Выбор уже созданного оффера:

Либо введите название оффера в строку поиска и нажмите "Create".

Создание предложения подписки в paypal

Выберите тип автосписания Fixed:

Создать подписку

Выбор валюты подписки и условий списания:

triangle-exclamation

Далее активируйте подписку:

После создания будет доступен ее ID, который мы будем использовать в дальнейшем для создания подписки и получения ссылки на оплату.

Ссылка на оплату генерируется и возвращается функцией: paypal_subscription_url(plan_id, shipping_currency, shipping_payment_sum, start_time)

Параметры функции
Описание параметра

! plan_id

ID плана подписки

! shipping_currency

если оплата за указанный план производится в долларах, то ничего передавать не нужно, иначе передаем код валюты, который вы указали в плане. Здесь передается валюта, в которой оплачивается доставка (даже при нулевой стоимости). По умолчанию USD

shipping_payment_sum

Это необязательный параметр, который указывает стоимость доставки. По умолчанию значение равно нулю.

start_time

необязательный параметр, дата и время начала подписки. Если ничего не передавать, то дата начала подписки = дате оплаты. Форматы: %d.%m.%Y или %d.%m.%Y %H:%M.

При создании ссылки paypal_subscription_id также появится переменная, в которой будет содержаться ID подписки.

При оплате вы получите callback, который аналогичен оплате обычного платежа.

paypal_subscription_data(paypal_subscription_id) - получение информации о подписке

Параметры функции
Описание параметров

paypal_subscription_id

ID подписки.

Текст результат выполнения функции — это массив, содержащий всю информацию о подписке, включая количество платежей, количество неудачных попыток списания, статус и многое другое.

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

Функция paypal_remove_subscription(paypal_subscription_id) поможет клиентам отменить подписки на ваши услуги.

Параметры:

Параметры функции
Описание

paypal_subscription_id

ID подписки, который сохраняется в переменную клиента при оформлении подписки.

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

circle-info

После успешной оплаты в бота будут отправлены callback-и, которые сообщат вам, что оплата прошла успешно.

circle-check
triangle-exclamation
circle-exclamation

Для прямой оплаты

Успешный callback оплаты состоит из первых 10 символов secret и подписи со статусом. Например: EHsWHYOoWV_success

Пример 1: реакция на успешную оплату с использованием блока "Start condition":

Пример 2: реакция на успешную оплату с использованием блока "Start condition":

circle-info

Если вы не хотите выводить пользователя из основного потока чат-бота, используйте блок “No-state with condition” — пользователи не могут быть перенаправлены в этот блок напрямую, поэтому после успешной оплаты они останутся в основном воронке и одновременно получат уведомление об успешной оплате.

Но если вы хотите продолжить воронку на основе события успешной оплаты, используйте блок “Start condition”. В этом случае после завершения блока оплаты пользователь будет перенаправлен в блок “Start condition”, откуда вы сможете продолжить построение воронки.

circle-info

Подробнее об условных блоках рассказано в статье с таким же названием. блоках с условием рассказали ссылка

При успешной оплате переменной paypal_payment_completed присваивается True.

После завершения оплаты клиенту добавляется переменная paypal_callback_data, которая содержит актуальные данные платежной системы о статусе транзакции. Из полученного словаря можно извлечь необходимые данные с помощью метода get.

triangle-exclamation

Для платежей по подписке

triangle-exclamation

При совершении платежа по подписке бот получит одно из следующих сообщений:

  • о активации подписки. Например, subscription_I-PTV5H4MRC1H3_activated;

  • Уведомление об успешной оплате повторяющейся подписки. Например, subscription_I-PTV5H4MRC1H3_paid;

  • или об ошибке оплаты подписки. Например, subscription_I-PTV5H4MRC1H3_not_paid;

В примерах выше “I-PTV5H4MRC1H3” — это ID подписки клиента, к которому можно обратиться с помощью переменной paypal_subscription_id.

Callback добавит клиенту переменную paypal_subscription_callback_data, которая содержит актуальные данные платежной системы о статусе транзакции. Из полученного словаря можно извлечь необходимые данные с помощью метода get.

Пример 1: реакция на активацию подписки с использованием блока "Start condition":

Пример 1: реакция на активацию подписки с использованием блока "Not state with condition":

Последнее обновление