Paypal
Как настроить Paypal ссылка Как настроить Paypal
Как создать ссылку на оплату ссылка Как создать ссылку на оплату
Как создать реккурентный платеж ссылка Как создать рекуррентный платеж
Как обработать результат ссылка Как обработать результат
Как настроить Paypal
Для работы с Paypal необходимо получить два ключа: client_id и секретный
Перейдите на страницу https://developer.paypal.com/developer/applications/
И выберите из списка или создайте новое приложение:
Вверху переключитесь в режим 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 и т. д. (набор доступных языков может отличаться, ориентируйтесь на исходный источник) ссылка первоисточник)
Также можно указать валюту, в которой принимается платеж. Для этого укажите currency переменную, рубль (RUB) по умолчанию, для доллара задайте значение USD (currency = USD). Возможные варианты валют можно посмотреть по ссылке. ссылка ссылке.
А третий дополнительный параметр — это company_name - название вашей компании, отображаемое в самой верхней части страницы оплаты (пример ниже, company)
Текст paypal_pay_url переменная может отображаться в виде ссылки или быть размещена на кнопке с текстом "Pay".
Ссылка выглядит так: https://www.paypal.com/checkoutnow?token=07N53571YM296381N
Пример реализации.
Указание суммы платежа и названия компании

Обратите внимание: кнопкой payment_sum переменной присваивается значение последней, после необязательных переменных payment_title, company_name, и т. д.
Далее укажите переменную #{paypal_pay_url} во втором блоке "Status":
Переменную можно указать в поле сообщения:

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

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

При открытии ссылки на оплату
С использованием функции калькулятора paypal_payment_url
Создайте блок конструктора воронки и используйте paypal_payment_url функцию в калькуляторе, передав ей необходимые параметры:
! payment_sum
обязательный параметр — сумма платежа.
currency
Валюта платежа по умолчанию — ‘USD'. Полный список доступен по ссылке https://developer.paypal.com/docs/api/reference/currency-codes/
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".


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

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

Выбор валюты подписки и условий списания:
Внимание!!
В Mavibot валюта по умолчанию — евро, если списание производится в долларах или в другой валюте, то при создании подписки укажите нужную валюту и в Mavibot — ту же валюту из подписки Paypal.

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


После создания будет доступен ее 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 подписки, который сохраняется в переменную клиента при оформлении подписки.

Как обработать результат
После успешной оплаты в бота будут отправлены callback-и, которые сообщат вам, что оплата прошла успешно.
В системе вы видите callback-и как сообщения от пользователя, но сам пользователь ИХ НЕ ВИДИТ: они отображаются только оператору.
Чтобы обработать callback в блоке и отправить пользователю сообщения о статусе оплаты, используйте тип сравнения "Точное совпадение".
Callback-и могут приходить с задержкой, поэтому после показа ссылки на оплату пользователю рекомендуется отправить сообщение вроде: «После внесения оплаты, пожалуйста, дождитесь сообщения с подтверждением об успешной оплате».
Для прямой оплаты
Успешный callback оплаты состоит из первых 10 символов secret и подписи со статусом. Например: EHsWHYOoWV_success
Пример 1: реакция на успешную оплату с использованием блока "Start condition":

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

Если вы не хотите выводить пользователя из основного потока чат-бота, используйте блок “No-state with condition” — пользователи не могут быть перенаправлены в этот блок напрямую, поэтому после успешной оплаты они останутся в основном воронке и одновременно получат уведомление об успешной оплате.
Но если вы хотите продолжить воронку на основе события успешной оплаты, используйте блок “Start condition”. В этом случае после завершения блока оплаты пользователь будет перенаправлен в блок “Start condition”, откуда вы сможете продолжить построение воронки.
Подробнее об условных блоках рассказано в статье с таким же названием. блоках с условием рассказали ссылка
При успешной оплате переменной paypal_payment_completed присваивается True.
После завершения оплаты клиенту добавляется переменная paypal_callback_data, которая содержит актуальные данные платежной системы о статусе транзакции. Из полученного словаря можно извлечь необходимые данные с помощью метода get.
Чтобы выполнить повторный платеж, нужно сбросить переменную payment_sum, переменную с ранее сгенерированной ссылкой, а затем заново присвоить переменной payment_sum значение или вызвать функцию для получения новой ссылки.
Для платежей по подписке
Функция настройки callback-ов для операций, связанных с подпиской, была добавлена 09/01/2024. Для корректной работы callback-ов этой категории необходимо отключить и заново подключить интеграцию платежной системы Paypal в вашем проекте.
При совершении платежа по подписке бот получит одно из следующих сообщений:
о активации подписки. Например, 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":

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