/** * @fileoverview React Native TurboModule спецификация для CloudPayments SDK * @description Содержит интерфейс TurboModule для нативного моста между JavaScript и нативным кодом * @author Leonid Molchanov * @since 1.0.0 */ import type { TurboModule } from 'react-native'; import type { EPaymentMethodType } from './enums'; import type { IIntentResponse, IIntentApiPayResponse, IBankInfo, IPaymentFormResponse } from './responses'; import type { TIntentWaitStatus } from './unionTypes'; /** * Спецификация TurboModule для CloudPayments SDK * * @description Интерфейс React Native TurboModule, определяющий все нативные методы * CloudPayments SDK. Этот интерфейс используется для генерации типобезопасного * моста между JavaScript и нативным кодом (iOS/Android). * * @remarks * Этот интерфейс предназначен для внутреннего использования SDK и автоматической * генерации нативного кода. Разработчики приложений должны использовать * высокоуровневые сервисы PaymentService и CardService вместо прямого обращения * к TurboModule. * * @example Использование через PaymentService (рекомендуется) * ```typescript * import { PaymentService } from '@lmapp/react-native-cloudpayments'; * * // Вместо прямого вызова TurboModule * // const result = await NativeCloudpaymentsSdk.presentPaymentForm(paymentData); * * // Используйте высокоуровневый API * const result = await PaymentService.presentPaymentForm(paymentData); * ``` * * @example Прямое использование TurboModule (не рекомендуется) * ```typescript * import { NativeModules } from 'react-native'; * import type { ICloudpaymentsSdkSpec } from '@lmapp/react-native-cloudpayments'; * * const CloudpaymentsModule = NativeModules.CloudpaymentsSdk as ICloudpaymentsSdkSpec; * * // Прямой вызов нативного метода * const intent = await CloudpaymentsModule.createIntent(paymentData); * ``` * * @see {@link https://reactnative.dev/docs/the-new-architecture/pillars-turbomodules} TurboModules документация * @internal * @since 1.0.0 */ export interface ICloudpaymentsSdkSpec extends TurboModule { /** * Создание платежного намерения (Intent) * * @description Нативный метод для создания Intent в системе CloudPayments. * Принимает объект с данными платежа и возвращает информацию о созданном Intent. * * @param paymentData - Объект с данными платежа (будет сериализован из ICreateIntentPaymentData) * @returns Promise с информацией о созданном Intent * * @internal * @platform ios, android */ createIntent(paymentData: Object): Promise; /** * Оплата через Intent с использованием криптограммы карты * * @description Нативный метод для выполнения оплаты через существующий Intent * с использованием зашифрованных данных карты (криптограммы). * * @param paymentData - Объект с данными платежа * @param cardCryptogram - Зашифрованные данные карты * @param intentId - Идентификатор существующего Intent * @returns Promise с результатом API оплаты * * @internal * @platform ios, android */ createIntentApiPay(paymentData: Object, cardCryptogram: string, intentId: string): Promise; /** * Ожидание статуса Intent для альтернативных способов оплаты * * @description Нативный метод для запуска альтернативного способа оплаты * (TPay, СБП, SberPay) и ожидания завершения операции. * * @param paymentData - Объект с данными платежа * @param type - Тип способа оплаты * @returns Promise с HTTP статус кодом результата * * @internal * @platform ios, android */ getIntentWaitStatus(paymentData: Object, type: EPaymentMethodType): Promise; /** * Инициализация CloudPayments SDK * * @description Нативный метод для инициализации SDK с Public ID мерчанта. * Должен быть вызван перед использованием других методов. * * @param publicId - Публичный идентификатор мерчанта * @returns Promise с результатом инициализации * * @internal * @platform ios, android */ initialize(publicId: string): Promise; /** * Получение публичного ключа для шифрования * * @description Нативный метод для получения актуального публичного ключа * CloudPayments для шифрования данных карты. * * @returns Promise со строкой публичного ключа в формате PEM * * @internal * @platform ios, android */ getPublicKey(): Promise; /** * Валидация номера банковской карты * * @description Нативный метод для проверки корректности номера карты * с использованием алгоритма Луна. * * @param cardNumber - Номер банковской карты * @returns Promise с результатом валидации * * @internal * @platform ios, android */ isCardNumberValid(cardNumber: string): Promise; /** * Валидация срока действия карты * * @description Нативный метод для проверки корректности срока действия карты. * * @param expDate - Срок действия в формате MM/YY или MM/YYYY * @returns Promise с результатом валидации * * @internal * @platform ios, android */ isExpDateValid(expDate: string): Promise; /** * Валидация CVV кода карты * * @description Нативный метод для проверки корректности CVV кода. * * @param cvv - CVV код карты * @param isCvvRequired - Обязательность CVV для данного типа карты * @returns Promise с результатом валидации * * @internal * @platform ios, android */ isValidCvv(cvv: string, isCvvRequired: boolean): Promise; /** * Определение типа карты по номеру * * @description Нативный метод для определения платежной системы * (Visa, MasterCard, МИР и т.д.) по номеру карты. * * @param cardNumber - Номер банковской карты * @returns Promise с названием платежной системы * * @internal * @platform ios, android */ cardTypeFromCardNumber(cardNumber: string): Promise; /** * Создание криптограммы карты * * @description Нативный метод для создания зашифрованной криптограммы * из данных карты с использованием публичного ключа CloudPayments. * * @param cardNumber - Номер карты * @param expDate - Срок действия карты * @param cvv - CVV код карты * @param merchantPublicID - Public ID мерчанта * @param publicKey - Публичный ключ для шифрования * @param keyVersion - Версия публичного ключа * @returns Promise с криптограммой карты * * @internal * @platform ios, android */ makeCardCryptogramPacket(cardNumber: string, expDate: string, cvv: string, merchantPublicID: string, publicKey: string, keyVersion: number): Promise; /** * Получение информации о банке-эмитенте * * @description Нативный метод для определения банка-эмитента карты * по BIN (первые 6-8 цифр номера карты). * * @param cardNumber - Номер банковской карты * @returns Promise с информацией о банке * * @internal * @platform ios, android */ getBankInfo(cardNumber: string): Promise; /** * Отображение стандартной платежной формы * * @description Нативный метод для показа встроенной платежной формы * CloudPayments с поддержкой всех способов оплаты. * * @param paymentData - Объект с данными платежа и конфигурацией формы * @returns Promise с результатом платежа * * @internal * @platform ios, android */ presentPaymentForm(paymentData: Object): Promise; } //# sourceMappingURL=turboModule.d.ts.map