Вспомогательные структуры данных
Обновлено 9 августа 2023
Результат методов pay(...), payWithOrderId(...)
PaymentResult
/**
*
* Класс обертка для предоставления результата оплаты
*/
@Parcelize
sealed class PaymentResult : Parcelable {
/**
*
* @object [Success] возвращается в случае,
* если оплата была произведена успешно
*
*/
object Success : PaymentResult()
/**
*
* @class [Error] возвращается в случае,
* если во время выполнения операции оплаты произошла ошибка
*
* @param merchantErrors - объект класса,
* описывающий ошибки для предоставления мерчанту
* @see MerchantErrors
*
*/
data class Error(val merchantError: MerchantErrors? = null) : PaymentResult()
/**
*
* @object [Processing] возвращается в случае,
* если оплата находится в процессе выполнения
*
*/
object Processing : PaymentResult()
}
Поле merchantError является типом MerchantErrors
.
Результат работы метода getPaymentToken(...)
PaymentTokenResult
/**
*
* Класс обертка для результата запроса на получение PaymentToken
*
*/
sealed class PaymentTokenResult() {
/**
*
* @class [Success] возвращается в случае,
* если токен был успешно получен
*
* @param paymentToken - платежный токен
*
*/
data class Success(val paymentToken: String) : PaymentTokenResult()
/**
*
* @class [Error] возвращается в случае,
* если при получении токена произошла ошибка
*
* @param description - описание ошибки
*
*/
data class Error(val description: String) : PaymentTokenResult()
}
Поле merchantError является типом MerchantErrors
Класс-обертка для ошибок
MerchantErrors
/**
*
* Класс с возможными ошибками для мерчанта
*
*/
sealed class MerchantErrors(open val description: String) {
/**
*
Ошибка при закрытии "шторки" SDK пользователем
*
*/
data class SdkClosedByUser(override val description: String) : MerchantErrors(description)
//... и остальные ошибки
}
Перечисление стендов SDK
SPayStage
/**
*
* Enum со стендами SDK
*
* */
public enum class SPayStage {
/**Продовый стенд*/
Prod,
/**Песочница без авторизации в банке*/
SandBoxWithoutBankApp,
/**Песочница с авторицазией в банке*/
SandboxRealBankApp
}