Skip to content

This library allows you to embed payment acceptance using "Click" into Android mobile applications. For the library to function properly, the user must be connected to Click Merchant using the Shop API scheme

click-llc/android-msdk

Repository files navigation

Click Mobile SDK

Эта библиотека позволяет встроить прием платежей с помощью Click в мобильные приложения на Android. Библиотеку можно использовать для подключения как поставщиков с биллингом, так и без биллинга. Для поставщиков с биллингом нужно реализовать SHOP-API на сервере приложения.

В этом репозитории лежит код Click Mobile SDK и пример приложения, которое его интегрирует.

Подключение через Gradle

Для подключения библиотеки необходимо прописать зависимости в модуле:

root build.gradle:

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

build.gradle:

dependencies {
	implementation 'com.github.click-llc:android-msdk:${last.version}'
}

Необходимые разрешения

Следующее разрешение необходимо указать в AndroidManifest

  <uses-permission android:name="android.permission.INTERNET" />

Использование библиотеки

Для начала работы с диалогом приема платежей CLICK надо обратиться к классу ClickMerchant. В ClickMerchant передается класс конфигурации ClickMerchantConfig

Поля ClickMerchantConfig:

Обязательные:

  • serviceId (Long) - идентификатор сервиса или товара поставщика
  • merchantId (Long) - идентификатор поставщика
  • merchantUserId (Long) - идентификатор мерчанта в системе поставщиков
  • amount (Double) - сумма оплаты
  • locale (String) - локализация языка диалога ("UZ", "RU", "EN")

Необязательные:

  • productName (String) - название товара
  • productDescription (String) - описание товара
  • requestId (String) - идентификатор платежа. Используется, если необходимо проверка статуса платежа.
  • transactionParam (String) – параметр транзакции, характеризующий за что платить клиент
  • communalParam (String) – дополнительный параметр
  • paymentOption (PaymentOptionEnum) – способ оплаты (USSD, BANK_CARD)

Пример:

   ClickMerchantConfig config = ClickMerchantConfig.Builder()
            .serviceId(12345)
            .merchantId(12345)
            .amount(50000.0)
	    //transaction param is optional (not set it, if you not have your billing system)
            .transactionParam("order_id_in_your_server ")
//                .returnUrl("https://www.youtube.com/")
            .locale("UZ")
            .theme(ThemeOptions.LIGHT) //ThemeOptions.NIGHT
            .option(PaymentOptionEnum.USSD)
            .productName("Название продкута или услуги")
            .productDescription("Описание продукта или услуги")
            .merchantUserId(12345)
            .build()

Можно включить HttpLoggingInterceptor

   ClickMerchantManager.logs = BuildConfig.DEBUG

Для того, чтобы вызвать диалог оплаты с помощью CLICK, надо использовать следующий метод:

    ClickMerchant.init(supportFragmentManager, config,
            new ClickMerchantListener {
                @Override
                void onRequestIdGet(String requestId) {

                }

                @Override 
                void onFailure() {
	   
                }

                @Override
                void onSuccess(Long paymentId) {

                }
                
                @Override
                void onInvoiceCancelled() {

                }
                
            }
)

onRequestIdGet - срабатывает при успешном получении идентификатора платежа с сервера

onFailure - срабатывает при неуспешной оплате счета

onSuccess - срабатывает при успешной оплате счета

onInvoiceCancelled - срабатывает при отмене выставленного счета

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

Документация Click Merchant Manager

Для работы с библиотекой необходимо получить идентификатор платежа.

Чтобы получить идентификатор платежа, надо отправить инициализирующий запрос:

public void sendInitialRequest(
    Long serviceId, Long merchantId,
    Double amount, String transactionParam, String communalParam,
    Long merchantUserId, String language, ResponseListener<InitialResponse> listener
)

Этот запрос возвращает идентификатор платежа(requestId), который после будет использоваться для проведения платежа

Выставление счета

С помощью этой библиотеки можно выставить счет двумя способами. Первый способ выставить счет по телефону номеру в системе CLICK, второй способ выставить счет по банковской карте.

Выставление счета по телефону номеру в системе CLICK:

public void paymentByUSSD(String requestId, String phoneNumber, ResponseListener<InvoiceResponse> listener) 

Выставление счета по банковской карте:

public void paymentByCard(String requestId, String cardNumber, String expireDate,  ResponseListener<InvoiceResponse> listener) 

Подтверждение платежа

Выставленный счет по банковскей карте надо будет подтвердить с помощью SMS-кода.

public void confirmPaymentByCard(
        String requestId,
        String confirmCode,
        ResponseListener<ConfirmPaymentByCardResponse> listener
)

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

Зная идентификатор платежа, можно узнать его статус

public void checkPaymentByRequestId(String requestId, ResponseListener<CheckoutResponse> listener) 

Возможные статусы:

Значение Описание
< 0 ошибка
0 платеж создан
1 обрабатывается
2 успешно оплачен

Для каждого метода существует аналог с поддержкой RxJava

About

This library allows you to embed payment acceptance using "Click" into Android mobile applications. For the library to function properly, the user must be connected to Click Merchant using the Shop API scheme

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages