Вспомогательные структуры данных
Обновлено 26 ноября 2024
Результат методов pay(...), payWithOrderId(...)
PaymentResult
/**
*
* Класс обертка для предоставления результата оплаты
*
* */
@Parcelize
sealed class PaymentResult : Parcelable {
/**
*
* @object [Success] возвращается в случае, если оплата была произведена успешно
*
*/
class Success : PaymentResult()
/**
*
* @class [Error] возвращается в случае, если во время выполнения операции оплаты произошла ошибка
*
* @param merchantError - объект класса, описывающий ошибки для предоставления мерчанту
* @see MerchantError
*
*/
data class Error(val merchantError: MerchantError? = null) : PaymentResult()
/**
*
* @object [Processing] возвращается в случае, если оплата находится в процессе выполнения
*
*/
class Processing : PaymentResult()
/**
*
* @object [Cancel] возвращается в случае, если пользователь прервал процесс оплаты
*
*/
class Cancel : 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
}
Helper
SPayHelperConfig
/**
* Конфигурация помогашек, передаваемая мерчом
*
* @property isHelperEnabled [Boolean] Флаг, активированы ли помогашки
* @property disabledHelpers [SPayHelpers] Список отключенных помогашек
*/
data class SPayHelperConfig(
val isHelperEnabled: Boolean = true,
val disabledHelpers: List<SPayHelpers>
)
/**
* Список возможных помогашек
*
* @property SBP перевод по СБП
* @property CREDIT_CARD выпустить кредитную карту
* @property DEBIT_CARD выпустить дебетовую карту
*/
enum class SPayHelpers(val tag: String) {
SBP("sbp"),
CREDIT_CARD("creditCard"),
DEBIT_CARD("debitCard")
}
InitializationResult
InitializationResult
/** Объект результата инициализации SPaySdk */
sealed class InitializationResult {
/** SPaySdk инициализирована успешно */
object Success : InitializationResult()
/**
* Произошел сбой при получении или обработке конфига
*
* @param message сообщение об ошибке
*/
data class ConfigError(val message: String) : InitializationResult()
}