Эта библиотека позволяет встроить прием платежей с помощью 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