@Joshua_Kogan Вы можете сделать это прямо сейчас двумя способами, используя плагин Custom Wizard.
Принять оплату внешним способом
Один из методов — перенаправить пользователя на платежного провайдера после отправки одного из шагов пользовательского мастера, убедиться в завершении оплаты с помощью комбинации разрешенных параметров и необходимых данных, а затем добавить пользователя в группу на следующем шаге (используя действие «Добавить в группу»).
Ниже приведено полное описание части, касающейся оплаты в этом подходе. Часть добавления в группу должна быть очевидной:
Настройка перенаправления пользователя на платежного провайдера
- Маршрутизация к действию (Route To Action). Существует новый тип действия под названием «Маршрутизация к» (Route To), который позволяет отправлять пользователя по указанному URL-адресу после отправки шага. Для ваших мастеров это действие должно быть добавлено к любому шагу, предшествующему оплате пользователем. В настоящее время оно добавляется к самому шагу «Оплата», но вы можете удалить этот шаг и добавить действие к предыдущему шагу, если хотите. Действие «Маршрутизация к» в настоящее время имеет два параметра:
-
url: Это целевой URL-адрес. Как и в случае с другими полями мастера, вы можете подставлять данные, используя w{} для полей мастера и u{} для полей пользователя.
-
code: Уникальный код, который добавляется как параметр к целевому URL-адресу. Когда этот параметр заполнен, пользовательский мастер генерирует уникальную случайную шестнадцатеричную строку, которая:
- добавляется к URL-адресу в качестве дополнительного параметра запроса с использованием предоставленного вами ключа; и
- сохраняется в данных отправки с использованием предоставленного вами ключа
Связывание уникального ключа с каждым запросом позволяет проверить любой обратный вызов для этого запроса (т. е. когда пользователь возвращается в мастер). В случае с Chargify, Chargify сохранит любое значение, которое вы отправите в параметре «reference» (см. далее), которое вы затем можете добавить в «URL возврата», на который Chargify перенаправит пользователя после завершения оплаты.
-
Разрешенные параметры (Permitted Params). Это новый параметр шага, который позволяет указать, какие параметры запроса разрешены для шага и с каким ключом они должны быть сохранены в данных отправки. Вы можете использовать это как для сохранения статистических или аналитических данных (например, откуда пользователь вошел в мастер), так и для обратных вызовов. В случае с Chargify мы передавали код «reference» в Chargify (и сохраняли его в данных отправки), когда перенаправляли пользователя в Chargify для завершения оплаты. Затем мы добавляли этот код в «URL возврата» как параметр возврата, который затем сохраняли в отправлениях, добавляя любой параметр, который мы указываем как содержащий
customer_reference, в параметры возврата. Обратите внимание, что в Chargify вам нужно будет установить «URL возврата» на URL-адрес шага, следующего за шагом, к которому вы добавили действие «Маршрутизация к». Это означает, что вы добавите параметрcustomer_referenceкак разрешенный параметр для того же шага. -
Необходимые данные (Required Data). Это новый параметр шага, который позволяет провести проверку данных перед тем, как разрешить пользователю просмотреть шаг. В настоящее время вы можете требовать, чтобы часть данных отправки равнялась другой части данных отправки. Если пользователь попытается загрузить шаг и проверка необходимых данных не пройдет, он увидит сообщение об ошибке. В случае с Chargify мы будем использовать это для требования, чтобы код, созданный в действии «Маршрутизация к», равнялся
customer_reference, возвращенному Chargify. Вы можете настроить сообщение об ошибке, отображаемое пользователям, используя поле «Сообщение, отображаемое при отсутствии данных» в администраторе мастера. Кроме того, к сообщению об ошибке добавляется ссылка «Перезапустить мастер», позволяющая пользователю сбросить мастер на шаг 1 и очистить существующие входные данные.
Принять оплату внутренним способом
Вы можете использовать ProCourse Memberships для приема оплаты.
Вы также можете использовать практически любого платежного провайдера, если у него есть API, поддерживающий OAuth2 или базовую авторизацию (например, Stripe использует базовую авторизацию), настроив соединение API с помощью действия «Отправить в API» (Send to API) в пользовательском мастере и связанной системы управления конечными точками API. То, как вы это настроите, будет зависеть от провайдера. Этот подход менее стабилен; это функция в бета-версии, но у нее есть значительный потенциал.