Требования
- Вы должны быть клиентом ePay
- Вы должны получить интеграционные данные:
TerminalID | Идентификатор магазина |
ClientID | Идентификатор клиента |
ClientSecret | Секретный ключ |
Тестовые данные
ClientID | test |
ClientSecret | yF587AV9Ms94qN2QShFzVR3vFnWkhjbAK3sG |
TerminalID | 67e34d63-102f-4bd1-898e-370781d0074d |
Подключение
1. Импорт SDK
Добавление SDK aar в проект
- Загрузите библиотеку halykepay.aar по ссылке Android framework
- Переместите файл в папку
libs
- Импортируйте .aar файл в Ваш проект как Jar/Aar Dependency
- Перейдите в раздел File > Project Structure > Dependencies
- Во вкладке Declared Dependencies нажмите на “+” и выберите Module Dependency
Добавление зависимостей
SDK использует следующие зависимости. Добавьте эти зависимости в свой проект для корректной работы EpaySDK:
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.50" implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.core:core-ktx:1.2.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0' implementation 'com.google.android.material:material:1.1.0' implementation 'com.google.code.gson:gson:2.8.6' def nav_version = "2.3.0-alpha01" implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" implementation "androidx.navigation:navigation-ui-ktx:$nav_version" def okhttp_version = "3.9.1" implementation "com.squareup.okhttp3:okhttp:$okhttp_version" implementation "com.squareup.okhttp3:logging-interceptor:$okhttp_version" implementation 'io.github.ihermandev:format-watcher:1.0.1' implementation 'com.github.bumptech.glide:glide:4.15.1' annotationProcessor 'com.github.bumptech.glide:compiler:4.15.1' implementation "com.google.android.gms:play-services-wallet:19.2.0-beta01" implementation "com.google.android.gms:play-services-pay:16.1.0" implementation 'io.card:android-sdk:5.5.1'
2. Настройка авторизации
Создайте инстанс конфигов авторизации. Вы можете хранить инстанс в константах, или создавать при непосредственной инициализации Платежной страницы или Страницы Перевода.
import com.ss.halykepay.data.model.AuthConfig
val config = AuthConfig(
merchantID = <Идентификатор магазина TerminalID, полученный от epay>,
merchantName = <Наименование Магазина>,
clientID = <Идентификатор клиента ClientID, полученный от epay>,
clientSecret = <Секретный ключ ClientSecret, полученный от epay>
)
Инициализируйте инстанс EpaySDK для дальнейшего запуска платежной страницы или страницы перевода:
import com.ss.halykepay.data.BuildType import com.ss.halykepay.HalykEpaySDK val halykEpaySdk = HalykEpaySDK.instance(<activity instance>, config, BuildType.PROD)
Для работы в тестовой среде установите BuildType.DEBUG
3. Обработка ответа
Для получения и обработки результата операции, необходимо обработать данные полученные с payment activity
Модель данных PaymentResult:
data class PaymentResult( val isSuccessful: Boolean, val paymentReference: String? = null, val errorCode: Int? = null, val errorMessage: String? = null )
Пример обработки ответа:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == EPAY_SDK_REQUEST_CODE) {
val result = halykEpaySdk.getPaymentResult(requestCode, resultCode, data)
if (result.isSuccessful) {
resultTextView.text = result.paymentReference ?: "no payment reference"
} else {
resultTextView.text = result.errorMessage ?: "unknown error"
}
}
}
4. Настройка для проведения оплаты или перевода
Далее при проведении непосредственной операции, вам будет необходимо подготовить модель для платежа, и запустить нужный Вам тип операции. Подробнее на страницах Платежной страницы и Страницы Перевода