Skip to content

pikassa-payments/pikassa-sdk-android

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
sdk
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Общая информация

Данная библиотека предназначена для работы с системой онлайн-платежей для юридических и физических лиц Pikassa.io. Основной функцией данной библиотеки является передача карточных данных, используя Merchant API v.2.


Основные требования

android sdk version: 21+


Подключение библиотеки в проект

Шаг 1. Добавьте репозиторий JitPack в ваш файл сборки Добавьте его в свой корневой build.gradle в конце репозитория:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

Шаг 2. Добавьте зависимость

dependencies {
    ...
    implementation 'com.github.pikassa-payments:pikassa-sdk-android:Tag'
}

Пример использования

Работа с библиотекой осуществляется через объект Pikassa, у которого доступны 3 метода: init(), sendPaymentData(), close() . Для начала необходимо вызвать метод init:

Pikassa.init("your_api_key")

где "your_api_key" - ключ доступа.

После инициализации можно вызвать метод получения деталей платежа:

fun sendPaymentData(
        uuid: String,
        requestId: String,
        paymentMethod: PaymentMethod<*>,
        onSuccess: (ResponseData) -> Unit,
        onError: (ResponseError) -> Unit
    )

где uuid - идентификатор счета на оплату, requestId - идентификатор заказа, paymentMethod - тип оплаты (может быть BankCard, Custom, описание ниже), onSuccess - результат успешной передачи карточных данных, возвращает информацию с сервера в случае успеха (ResponseData), onError - ошибка при передаче данных, возвращает ошибку (ResponseError).

Структура PaymentMethod:

sealed class PaymentMethod {
    data class BankCard(
        val pan: String,
        val cardHolder: String,
        val expYear: String,
        val expMonth: String,
        val cvc: String
    ) : PaymentMethod()

    data class Custom(
        val data: Map<String, String>
    ) : PaymentMethod()
}

Описание PaymentMethod.BankCard: pan - номер карты; cardHolder - владелец карты; expYear - год окончания срока действия карты (формат "YY"); expMonth - месяц окончания срока действия карты (формат "mm"); cvc - код с обратной стороны (3 цифры);

Пример:

PaymentMethod.BankCard(
    pan = "4111111111111111",
    cardHolder = "ivan ivanov",
    expYear = "24",
    expMonth = "12",
    cvc = "123"
)

Описание PaymentMethod.Custom: data - тип данных Map (словарь) строка - строка;

Пример:

PaymentMethod.Custom(
    data = mapOf(
               "paymentMethod" to "Mobile",
               "phone" to "+79999999999" 
            )
)

В случае успеха выполнения отправки данных, в onSuccess приходит ответ ResponseData, структура которого выглядит следующим образом:

data class ResponseData(
    val uuid: String,
    val requestId: String,
    val redirect: RedirectResponse?
)

uuid - идентификатор платежа; requestId - идентификатор запроса redirect - ссылка для перенаправления пользователя. Например, для карт может потребоваться перенаправление пользователя на страницу ввода кода 3DS. Может быть нулевым, если аутентификация не нужна при платеже. В случае, если ненулевое поле, то структура следующая:

data class RedirectResponse(
    val url: String,
    val method: String,
    val params: List<Pair<String, String>>?
)

Здесь основным параметром является url, в котором хранится ссылка на редирект, по которому нужно пройти для подтверждения платежа.

В случае же неудачного запроса, в onError приходит ResponseError, его структура следующая:

data class ResponseError(
    val code: PaymentErrorCode,
    val message: String
)

где code - код ошибки с сервера (описание кодов ошибок можно посмотреть здесь) message - тело сообщения ошибки

Для завершения работы метода и в случаях когда работа метода ещё не завершена, а жизненный цикл Activity/Fragment где он вызван - уже завершен, рекомендуется вызывать метод close() в методах уничтожения экрана (onDestroy(), onDestroyView()).


About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages