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. Мова за замовчуванням — російська (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":
Змінну можна вказати в полі message:

Змінну можна вказати в полі 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 у блоці та надіслати користувачу повідомлення про статус платежу, використовуйте тип порівняння "Exact match".
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":

Останнє оновлення