UNPKG

@lmapp/react-native-cloudpayments

Version:

πŸš€ ΠœΠΎΡ‰Π½Ρ‹ΠΉ SDK для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ CloudPayments Π² React Native. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Apple Pay, Google Pay, Π‘Π‘ΠŸ, банковских ΠΊΠ°Ρ€Ρ‚. Полная типизация TypeScript. iOS 12+ ΠΈ Android 21+

193 lines β€’ 6.83 kB
/** * @fileoverview Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ событий CloudPayments SDK * @description Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… для событий ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… взаимодСйствий * @author Leonid Molchanov * @since 1.0.0 */ import type { EPaymentFormAction, EPaymentFormErrorCode, EPaymentMethodType } from './enums'; /** * Π‘Π°Π·ΠΎΠ²ΠΎΠ΅ событиС CloudPayments * * @description Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ интСрфСйс для всСх событий CloudPayments SDK. * Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΏΠΎΠ»Π΅ action для опрСдСлСния Ρ‚ΠΈΠΏΠ° события. * * @since 1.0.0 */ export interface ICloudPaymentsBaseEvent { /** * Π’ΠΈΠΏ дСйствия события * @description ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ события Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ. */ action: string; } /** * Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ * * @description Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹, связанноС с ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ * ΠΈ скрытиСм UI элСмСнтов, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. * * @example ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° событий ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ * ```typescript * import { eventEmitter, EPaymentFormEventName } from '@lmapp/react-native-cloudpayments'; * * eventEmitter.addListener(EPaymentFormEventName.PAYMENT_FORM, (event: IPaymentFormEvent) => { * switch (event.action) { * case 'willDisplay': * console.log('Π€ΠΎΡ€ΠΌΠ° готовится ΠΊ ΠΏΠΎΠΊΠ°Π·Ρƒ'); * setIsLoading(true); * break; * case 'didDisplay': * console.log('Π€ΠΎΡ€ΠΌΠ° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π°'); * setIsLoading(false); * break; * case 'willHide': * console.log('Π€ΠΎΡ€ΠΌΠ° готовится ΠΊ ΡΠΊΡ€Ρ‹Ρ‚ΠΈΡŽ'); * break; * case 'didHide': * console.log('Π€ΠΎΡ€ΠΌΠ° скрыта'); * setPaymentFormVisible(false); * break; * case 'transaction': * if (event.statusCode) { * console.log('ΠŸΠ»Π°Ρ‚Π΅ΠΆ ΡƒΡΠΏΠ΅ΡˆΠ΅Π½:', event.transactionId); * } else { * console.log('Ошибка ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ°:', event.message); * } * break; * } * }); * ``` * * @since 1.0.0 */ export interface IPaymentFormEvent extends ICloudPaymentsBaseEvent { /** * ДСйствиС ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ * @description Π’ΠΈΠΏ события ΠΈΠ· ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹. */ action: 'willDisplay' | 'didDisplay' | 'willHide' | 'didHide' | 'transaction' | 'cancelled'; /** * Код статуса (для Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ) * @description ΠŸΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для action='transaction'. * true - ΡƒΡΠΏΠ΅ΡˆΠ½Π°Ρ транзакция, false - ошибка. */ statusCode?: boolean; /** * Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ (для ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ) * @description ID созданной Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² систСмС CloudPayments. * ΠŸΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ°. */ transactionId?: number; /** * Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ (для ошибок Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ) * @description ВСкстовоС описаниС ошибки. * ΠŸΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ°. */ message?: string; /** * Код ошибки (для ошибок Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ) * @description Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ошибки. */ errorCode?: EPaymentFormErrorCode; } /** * Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ° * * @description Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ°ΠΌΠΈ (созданиС, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°). * * @since 1.0.0 */ export interface IPaymentEvent extends ICloudPaymentsBaseEvent { /** * ДСйствиС ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ° * @description Π’ΠΈΠΏ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΎΠΌ. */ action: string; /** * Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ * @description ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, связанныС с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ. */ [key: string]: any; } /** * Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ * * @description Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с ΠΊΠ°Ρ€Ρ‚Π°ΠΌΠΈ (валидация, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ). * * @since 1.0.0 */ export interface ICardEvent extends ICloudPaymentsBaseEvent { /** * ДСйствиС с ΠΊΠ°Ρ€Ρ‚ΠΎΠΉ * @description Π’ΠΈΠΏ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΊΠ°Ρ€Ρ‚ΠΎΠΉ. */ action: string; /** * Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ * @description ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, связанныС с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ. */ [key: string]: any; } /** * Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ 3DS * * @description Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ 3D Secure Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. * * @since 1.0.0 */ export interface IThreeDSEvent extends ICloudPaymentsBaseEvent { /** * ДСйствиС 3DS * @description Π’ΠΈΠΏ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ 3D Secure. */ action: string; /** * Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ * @description ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, связанныС с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ. */ [key: string]: any; } /** * @deprecated Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ IPaymentFormEvent с action='willDisplay'|'didDisplay'|'willHide'|'didHide' */ export interface IPaymentFormUIEvent { action: EPaymentFormAction.WILL_DISPLAY | EPaymentFormAction.DID_DISPLAY | EPaymentFormAction.WILL_HIDE | EPaymentFormAction.DID_HIDE; } /** * @deprecated Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ IPaymentFormEvent с action='transaction' */ export interface IPaymentFormTransactionEvent { action: EPaymentFormAction.TRANSACTION; status: boolean; transactionId?: number; message?: string; } /** * @deprecated Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ IPaymentFormEvent с action='transaction' ΠΈ statusCode=true */ export interface IPaymentSuccessEventData { transactionId: number; message?: string; } /** * @deprecated Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ IPaymentFormEvent с action='transaction' ΠΈ statusCode=false */ export interface IPaymentFailedEventData { message: string; code?: EPaymentFormErrorCode; } /** * @deprecated Π‘ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… вСрсиях */ export interface IPaymentProgressEventData { stage: string; progress?: number; } /** * @deprecated Π‘ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… вСрсиях */ export interface IPaymentMethodSelectedEventData { method: EPaymentMethodType; details?: Record<string, any>; } //# sourceMappingURL=events.d.ts.map