Эта библиотека позволяет встроить прием платежей с помощью Click в мобильные приложения на Android. Библиотеку можно использовать для подключения как поставщиков с биллингом, так и без биллинга. Для поставщиков с биллингом нужно реализовать SHOP-API на сервере приложения.
В этом репозитории лежит код Click Mobile SDK и пример приложения, которое его интегрирует.
Для подключения библиотеки необходимо прописать зависимости в модуле:
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 - срабатывает при отмене выставленного счета
Примеры использования:
Для работы с библиотекой необходимо получить идентификатор платежа.
Чтобы получить идентификатор платежа, надо отправить инициализирующий запрос:
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









