Как сделать инвойс в paypal

Обновлено: 02.07.2024

Сценарий Integromat для выставления инвойсов. Paypal + Stripe

Инвойсы — это удобно для всех. Клиенту не нужно вводить сумму и email получателя. Все, что ему нужно сделать для это оплаты — это залогиниться в Paypal и нажать на пару кнопок.

В данном посте расскажу, как выставлять инвойсы в Paypal и принимать деньги через Integromat. В моем случае каждый заказ клиента имеет плавающую, а не фиксированную стоимость, поэтому нужно динамически подгружать стоимость в инвойс. Расскажу опять же на примере с Trello.

Регистрируем аккаунт Paypal

Сначала нужно зарегистрировать аккаунт Paypal на который вы можете принимать деньги (не для всех стран это доступно).

Создание приложения в Paypal

Создание приложения в Paypal

Создаем сценарий в Integromat для выставления инвойсов в Paypal

Рассмотрим, как выглядит сценарий для выставления инвойсов на примере интеграции с Trello.

Первым делом нужно придумать, по какому триггеру будет происходить выставление инвойса. В моем случае — это перемещение карточки в определенный столбец.

У меня может быть 3 типа оплаты:

  1. Предоплата
  2. Промежуточная оплата
  3. Полная оплата

Для каждого из этих типов оплат — разные столбцы. Но смысл у них один и тот же и сценарии практически одинаковые. Рассмотрим процесс работы сценария для предоплаты заказа.

Сценарий Integromat для выставления инвойсов. Paypal + Stripe

Сценарий Integromat для выставления инвойсов. Paypal + Stripe. В данной статье мы рассматриваем только работу Paypal (эта часть сценария проходит вверху)

Создаем триггер в Трелло

Триггером будет вебхук в модуле Trello -> Watch activities (Instant). Выбираем доску, столбец и действие updateCard.

Создание вебхука в Trello модуле

Создание вебхука в Trello модуле

Можно запустить только один этот модуль и проверить, срабатывает ли он при перемещении карточки в этот список или из этого списка. Если срабатывает, продолжаем.

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

Узнаем ID списка через тестовый прогон модуля или исходный код страницы Trello и добавляем ID списка в фильтр сразу после первого модуля.

Фильтр по ID списка после перемещения карточки

Фильтр по ID списка после перемещения карточки

Забираем данные из Custom fields в Trello

Далее, если мы используем кастомные поля в карточке, нужно забрать данные из них. Для этого сначала добавляем модуль Trello -> Get a Card чтобы получить всю информацию по карточке.

Данные кастомных полей находятся в массиве. Нужно их достать и создать из них переменные, которые дальше будут использоваться в сценарии. Чтобы достать из массива данные, нужно использовать функцию map().

  • Добавляем модуль Tools ->Set multiple variables для задания переменных. Рекомендую сразу создавать модуль именно Set multiple variables со множеством переменных внутри т.к. со временем легче будет в него добавлять новые переменные, когда сценарий будет разрастаться и усложняться.
  • Узнаем ID всех своих кастомных полей через исходный код Trello или смотрим из модуля Get a Card когда он срабатывает.
  • Задаем переменную для каждого поля, которое нужно использовать в сценарии через функцию map()

Так выглядят мои поля в трелло

Так выглядят Custom Fields в Trello

Вот так выглядит модуль Set multiple variables чтобы достать некоторые поля из этой карточки.

Set multiple variables Integromat

Set multiple variables Integromat

Если вкратце, то мы:

  1. Задаем массив, в котором искать ключ (Custom Fields)
  2. Задаем ключ и его тип в raw формате
  3. Задаем ключ для фильтра
  4. Задаем значение фильтра

Функция map() в Integromat

Функция map() в Integromat

После того, как мы получили все поля, можно продолжать сценарий.

Создаем и настраиваем модуль Paypal -> Create a payment (step 1)

Дальше создаем модуль Paypal -> Create a payment (step 1). Добавляем подключение нашего аккаунта Paypal, используя Client ID и Consumer secret Key из личного кабинета.


Настройка модуля Paypal -> Create payment

Описание полей в данном модуле:

Создаем и настраиваем модуль Paypal -> Execute payment (step 2)

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

Для этого нам понадобится создать новый сценарий. Вот как он примерно будет выглядеть:


Сценарий Paypal -> Execute payment (step 2)

Редирект после оплаты Paypal

Редирект после оплаты Paypal

  • Status: 302 — код редиректа
  • Key: ключ (Location)
  • Value: URL, на который редиректить.

Дальше, можно добавить модуль отправки писем Email, чтобы уведомить клиента об успешной оплате и поблагодарить.

Теперь возвращаемся в первый сценарий. После того, как мы создали инвойс (Paypal -> Create Payment) его результатом будет уникальная ссылка Approval URL, по которой клиенту нужно будет перейти и оплатить. Эту переменную со ссылкой можно отправлять на почту, Telegram или куда угодно через соответствующие модули в сценарии. Я отправляю в теле письма вместе с кнопкой «Оплатить«.

Избегаем ошибок менеджера

Менеджер, который будет отправять карточку на инвойс, будет ошибаться и иногда не заполнять определенные поля. Поэтому нужно определить, какие поля обязательные и добавить в сценарий фильтр, который будет проверять, все ли поля заполнены.

Вот как это выглядит:

Проверка полей на заполненность в Integromat

Проверка полей на заполненность в Integromat

При такой реализации в фильтре ветки, которая идет в создание инвойса в Paypal, нужно поставить галку, что это запасной путь (Fallback route), по которому сценарий продолжит выполнятся, если не сможет пройти по другим веткам (в нашем случае по ветке, которая проверяет, есть ли ошибки).

Таким образом, если есть хоть 1 незаполненное обязательное поле, то сценарий идет в уведомление в Telegram об ошибке. Если же все поля заполнены, то сценарий идет в создание ссылки инвойса.

Примеры уведомлений в Telegram

Выставление инвойса

Комментарий в карточке Trello с инвойсом

Комментарий в карточке Trello с инвойсом

Оплата получена

Необходимые поля не заполнены

Необходимые поля не заполнены

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

Функция switch() простая:

  • указываем переменную, которую следует проверить:
  • Если значение A
  • То ответ B
  • Если значение A1
  • То ответ B1
  • и так далее.

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

SEO-менеджер.
Люблю SEO, маркетинг, увлекаюсь автоматизацией и терпеть не могу ручную работу, которую можно делегировать роботу.

Читайте также: