🔥Інтеграція SDK

Цей розділ містить опис методів для взаємодії додатку партнеру з SDK для реалізації flow приймання платежів. Перелік версій, та змін відокремлено у розділ Історія версій SDK

Залежності

Додайте наступні залежності до вашого build.gradle файлу:

implementation 'androidx.core:core-ktx:1.10.1'
implementation 'androidx.appcompat:appcompat:1.6.1'

implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.retrofit2:converter-scalars:2.9.0'

implementation 'com.squareup.okhttp3:okhttp:4.9.3'
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.3'
implementation 'com.squareup.okhttp3:okhttp-urlconnection:4.9.3'

Ініціалізація

Ви можете ініціалізувати SDK наступним чином:

Coroutines
suspend fun Defin.init(
    merchantId: String, 
    terminalId: String, 
    cashierId: String, 
    deviceId: String
) : Defin

або:

Слухач має наступний формат:

Оплата

Посилання на оплату буде лише у випадку оплати картою

Метод checkout використовується для створення замовлення.

або:

де:

  • paymentType // ідентифікатор виду оплати

  • purpose // Призначення платежу (ТТН)

Методи оплати

Перелік доступних методів для оплати можна отримати у відповідь на ініціалізацію, а також окремим методом, якщо потрібно

Існує метод отримання статусу методу оплати. Повертає true якщо переданий paymentType доступний цьому мерчанту

Існуючі методи в системі:

DefinPaymentType — enum що містить всі можливі варианти оплати, серед них:

DefinPaymentType.CASH — Готівка

DefinPaymentType.QR — Інтернет-еквайринг (QR). Отримуємо лінку на динамічну сторінку оплати банка чи фінансової компанії

DefinPaymentType.PBT2PH — tap2phone від Приватбанку

Перелік продуктів

Перелік продуктів формується з класів DefinGood

Для відправки чеку клієнту є класс DefinCustomer?

Інтерфейс слухача оплати

Приклад використання

Варіанти оплати

На поточний момент реалізовано три методи оплати (готівка, інвойсинг та tap2phone)

  • У випадку оплати готівкою, зарахування виконується одразу;

  • Для сплати через банківську форму, слід використати order.paymentUrl;

  • Для можливості сплати через tap2phone, використовуйте наступну реалізацію:

tap2phone

  1. Для того щоб мати можливість виклику зовнішнього додатку програмного терміналу, ініціалізуйте клас на рівні активності:

  1. Реалізуйте виклик терміналу в методі onSuccess(order: Defin.Order):

Перевірка статусу оплати

Для отримання інформації про плату, використовуйте метод order.check з інтерфейсом DefinCheckListener.

Інтерфейс DefinCheckListener

Приклад використання

Варіанти status:GoodsStatus

  • DRAFT // Драфтове замовлення

  • CREATED // Замовлення очікує оплати

  • COMPLETED // Замовлення завершено

  • FAILED // Помилка

Отримання чеку

В order: Defin.Order присутній метод receipt, який приймає обʼєкт, реалізуючий інтерфейс DefinReceiptListener.

Інтерфейс DefinReceiptListener

Метод перевірки статусу та отримання квитанції (відокремлено від DefinOrder)

Перевірка статусу оплати

Отримати квитанцію

Last updated