Требования

  1. Вы должны быть клиентом ePay
  2. Вы должны получить интеграционные данные:
TerminalIDИдентификатор магазина
ClientIDИдентификатор клиента
ClientSecretСекретный ключ

Тестовые данные

ClientIDtest
ClientSecretyF587AV9Ms94qN2QShFzVR3vFnWkhjbAK3sG
TerminalID67e34d63-102f-4bd1-898e-370781d0074d

Подключение

1. Импорт SDK

Добавление SDK aar в проект

  1. Загрузите библиотеку halykepay.aar по ссылке Android framework
  2. Переместите файл в папку
    libs
  3. Импортируйте .aar файл в Ваш проект как Jar/Aar Dependency
  4. Перейдите в раздел File > Project Structure > Dependencies
  5. Во вкладке Declared Dependencies нажмите на “+” и выберите Module Dependency

Screenshot 2023-07-23 at 14.56.50

Screenshot 2023-07-23 at 14.56.32

Добавление зависимостей

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. Настройка для проведения оплаты или перевода

Далее при проведении непосредственной операции, вам будет необходимо подготовить модель для платежа, и запустить нужный Вам тип операции. Подробнее на страницах Платежной страницы и Страницы Перевода