Paypal

Як налаштувати Paypal

Щоб працювати з Paypal, потрібно отримати два ключі: client_id та секретний

Перейдіть на сторінку https://developer.paypal.com/developer/applications/arrow-up-right

І виберіть зі списку або створіть новий застосунок:

Угорі перемкніться в режим 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 тощо. (набір доступних мов може відрізнятися, орієнтуйтеся на оригінальне джерело) посилання первоисточникarrow-up-right)

Також можна вказати валюту, в якій приймається платіж. Для цього вкажіть currency змінну, рубль (RUB) встановлено за замовчуванням, для долара задайте значення USD (currency = USD). Можливі варіанти валют можна знайти за посиланням. посиланніarrow-up-right.

А третій додатковий параметр — це company_name — назва вашої компанії, що відображається у самому верху сторінки оплати (приклад нижче, company)

Поле paypal_pay_url змінна може відображатися як посилання або бути розміщена на кнопці з текстом "Pay".

Посилання має такий вигляд: https://www.paypal.com/checkoutnow?token=07N53571YM296381Narrow-up-right

Приклад реалізації.

Встановлення суми платежу та назви компанії

circle-info

Зверніть увагу: кнопкою payment_sum змінній присвоюється останнє значення, після необов’язкових змінних payment_title, company_name, тощо.

Далі вкажіть змінну #{paypal_pay_url} у другому блоці "Status":

  1. Змінну можна вказати в полі message:

  1. Змінну можна вказати в полі url у налаштуваннях вкладення:

  1. Змінну можна вказати в полі url у налаштуваннях кнопки:

Під час відкриття посилання на оплату

Використання функції калькулятора paypal_payment_url

Створіть блок конструктора воронки та використайте paypal_payment_url функцію в калькуляторі, передавши їй потрібні параметри:

Параметри функції
Опис параметра

! payment_sum

обов’язковий параметр — сума платежу.

currency

Валюта платежу за замовчуванням — ‘USD'. Повний список доступний за посиланням https://developer.paypal.com/docs/api/reference/currency-codes/arrow-up-right

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".

Створення пропозиції підписки в paypal

Виберіть тип автосписання Fixed:

Створити підписку

Вибір валюти підписки та умов списання:

triangle-exclamation

Далі активуйте підписку:

Після створення буде доступний її 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 підписки, який зберігається в змінній клієнта під час оформлення підписки.

Як обробити результат

circle-info

Після успішного платежу в бот надсилатимуться callback-и, які повідомлять, що платіж успішний.

circle-check
triangle-exclamation
circle-exclamation

Для прямого платежу

Callback успішної оплати складається з перших 10 символів secret та підпису зі статусом. Наприклад: EHsWHYOoWV_success

Приклад 1: реакція на успішний платіж за допомогою блоку "Start condition":

Приклад 2: реакція на успішний платіж за допомогою блоку "Start condition":

circle-info

Якщо ви не хочете виводити користувача з основного потоку чатбота, використовуйте блок “No-state with condition” — користувачів не можна перенаправити в цей блок напряму, тож після успішної оплати вони залишаться в основній воронці, а також отримають сповіщення про успішну оплату.

Але якщо ви хочете продовжити воронку на основі події успішної оплати, використовуйте блок “Start condition”. У цьому випадку після завершення блоку оплати користувач буде перенаправлений у блок “Start condition”, з якого можна продовжити побудову воронки.

circle-info

Більше інформації про умовні блоки наведено в однойменній статті. у блоках з умовою розповіли посилання

Після успішної оплати змінна paypal_payment_completed встановлюється в True.

Після завершення оплати клієнту додається змінна paypal_callback_data, яка містить актуальні дані платіжної системи про статус транзакції. Ви можете отримати потрібні дані з отриманого словника за допомогою методу get.

triangle-exclamation

Для платежів за підпискою

triangle-exclamation

Під час оплати підписки бот отримає одне з таких повідомлень:

  • про активацію підписки. Наприклад, 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":

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