Реєстрація
Після реєстрації в сервісі 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 та натисніть підключити. Введіть отримані 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). Вставте ідентифікатор підписки inxy_subscription_id у функцію, і підписку буде скасовано.

У разі успіху ви отримаєте callback ‘Subscription status inxy_subscription_id - deleted’, а змінна inxy_subscription_status зміниться на відповідне значення.
