Регистрация
После регистрации в сервисе https://auth.inxy.io/ перейдите в меню Payment gateway API и заполните следующую информацию:
- Название кошелька, описание и иконка.
- Ссылка на сайт указывается по вашему желанию.
Отметьте все принимаемые типы криптовалют и нажмите Save Changes


После сохранения откроется поле с данными для связи.
Затем сгенерируйте API-ключ, нажав Generate(1), и введите код, отправленный на вашу электронную почту.
Полученную переменную следует хранить в безопасном месте. Также скопируйте туда Secret Key.
Ключи, в случае утери, можно перегенерировать (если это произошло, не забудьте изменить данные в проекте).
В поле Postback Url (2) укажите URL для вебхуков https://chatter.salebot.pro/inxy\_callback/result

Настройки подключения
Затем перейдите в Mavibot → раздел "Acquiring" → INXY и нажмите connect. Введите полученные API и Secret ключи в соответствующие поля.


Генерация платежной ссылки
Чтобы сгенерировать платежную ссылку, необходимо задать значение переменной payment_sum (например, 1). После этого появится переменная inxy_pay_url. Эту переменную можно отобразить в виде ссылки или поместить в кнопку "Оплатить".
ОБРАТИТЕ ВНИМАНИЕ!!! Система работает с долларами! Указанная сумма в payment_sum будет принята платежной системой INXY как доллары.
Ссылка выглядит так: https://pay.inxy.io/sessions/umLf9cJWBRiaNwowGCE1
Также перед установкой значения переменной payment_sum можно задать следующие необязательные переменные для настройки платежа:
inxy_currency — криптовалюта, в которой будет произведен платеж.
Вы можете указать одну из возможных криптовалют, которые вы отметили при создании API-ключа. Если оставить поле пустым, то плательщик сможет выбрать криптовалюту из отмеченных..
Доступные значения: 'BTC', 'ETH', 'LTC', 'DOGE', 'USDT', 'USDC', 'DAI'

inxy_description – описание платежа

Обратите внимание! Сначала задаются дополнительные переменные для настроек, затем payment_sum.
Переменные можно задавать раньше в цепочке, а не все в одном блоке. А переменную inxy_pay_url, содержащую ссылку, следует отображать в нужном месте. При нажатии на нее откроется платежная форма.

Обратите внимание! В строке общей суммы указано значение в долларах, равное payment_sum. Ниже в total crypto amount — значение в выбранной криптовалюте. Оно часто меняется в зависимости от текущего курса. Это та сумма, которую клиент должен вам заплатить со своего кошелька.

Обратите внимание!!! Адрес кошелька для оплаты в рамках одной сессии резервируется за клиентом только на 2 часа. Рекомендуйте клиенту убедиться, что время не истекло и адрес кошелька актуален на момент оплаты. Если время сессии истекло, необходимо перезапустить процесс оплаты.
Обработка результата платежа (платежный callback)
После успешной оплаты в бот будет отправлен callback, который сообщит, что платеж прошел успешно. Вы видите этот callback в системе как сообщение от пользователя, чтобы пользователь не мог их отправить. Этот callback НЕ ВИДЕН самому пользователю, он отображается только оператору. У INXY есть несколько типов callback'ов:
- Успешные callback'и состоят из первых 10 символов токена и постскриптума success, например: uc8zsjNN1x_success

Этот callback получается, если клиент полностью оплатил сумму и с платежом нет проблем. Вместе с этим callback'ом в переменные проекта будет добавлена переменная inxy_payment_completed, которая принимает значение True. А также переменная inxy_payment_status примет значение paid.
Переменная inxy_payment_status может менять свое значение в течение всего периода обработки платежа. После того как пользователь откроет форму, она примет статус waiting_payment, затем во время обработки его платежа примет значение waiting_confirmation, а после успешной обработки будет иметь значение paid или partially_paid.
При обработке callback'а тип сравнения должен быть "Exact Match".
Например, вы можете обработать успешный платеж в условном блоке и отобразить соответствующее сообщение пользователю:

2. Бывают случаи, когда курс криптовалюты изменился или кошелек снял комиссию за операцию, в результате чего на ваш счет поступает неполная сумма. В этом случае переменная inxy_payment_status примет значение partially_paid, и в систему будет отправлен callback.

В этом случае вам нужно будет отправить клиенту уведомление с просьбой о доплате.
Например, вы можете задать условие для запуска callback'а и после его получения снова отправить клиенту уже сгенерированный URL с платежной ссылкой или задать условие, что блок срабатывает, когда переменная inxy_payment_status равна partially_paid.

Обратите внимание, что платежная ссылка действительна только в течение 2 часов! Если клиент не успеет оплатить оставшуюся часть, он больше не сможет ее открыть. Поскольку INXY на этом этапе уже обработает первый неполный платеж, деньги не будут возвращены клиенту. Чтобы вернуть их, вам нужно будет зайти в личный кабинет INXY и выполнить операцию возврата.
Создание подписки
В системе INXY можно создавать подписки. Для этого присвойте любое значение переменной inxy_subscription_payment, после чего будет создана ежемесячная подписка.
Если вы хотите указать другой период, используйте следующие переменные: inxy_subscription_interval равный 'day' — задает интервал в днях (по умолчанию — месяц)
inxy_subscription_period — укажите переменную от 1 до 30, чтобы задать периодичность.
Например, чтобы создать списание подписки раз в 15 дней, нужно задать inxy_subscription_interval =’day’ и inxy_subscription_period=15, а чтобы платеж списывался раз в полгода, достаточно указать inxy_subscription_period=6 (так как inxy_subscription_interval по умолчанию — месяц)

При переходе по ссылке пользователь увидит ту же страницу оплаты, но с некоторыми отличиями: во-первых, сбоку будет примечание о том, что платеж является частью подписки с указанной периодичностью; во-вторых, на странице оплаты клиенту будет предложено оплатить две или три суммы заранее.
Особенности платежной системы INXY: Если клиент оплачивает сумму x2 или x3, Mavibot получит уведомление об оплате только одной из них. Оставшаяся сумма будет отправлена на баланс клиента, откуда она будет списываться при последующих списаниях. Поскольку курс криптовалюты постоянно меняется, в результате этой суммы может не хватить для последующего списания, что приведет к ситуации с неполностью оплаченной подпиской. В этом случае вы получите callback “fail” и сможете настроить напоминание клиенту.
Частичная оплата по расписанию невозможна. Баланс проверяется перед платежом, и если баланса недостаточно, деньги не будут списаны со счета клиента.

После успешной подписки в переменных клиента появится переменная inxy_subscription_id, указывающая номер подписки, и inxy_subscription_status с ее статусом.

Отмена подписки
Чтобы отменить подписку, используйте функцию inxy_remove_subscription(inxy_subscription_id). Вставьте в функцию ID подписки inxy_subscription_id, и подписка будет отменена.

В случае успеха вы получите callback ‘Subscription status inxy_subscription_id - deleted’, а переменная inxy_subscription_status изменится на соответствующее значение.
