@lmapp/react-native-cloudpayments
Version:
π ΠΠΎΡΠ½ΡΠΉ SDK Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΏΠ»Π°ΡΠ΅ΠΆΠ΅ΠΉ CloudPayments Π² React Native. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Apple Pay, Google Pay, Π‘ΠΠ, Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΈΡ ΠΊΠ°ΡΡ. ΠΠΎΠ»Π½Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ TypeScript. iOS 12+ ΠΈ Android 21+
234 lines (212 loc) β’ 7.13 kB
text/typescript
/**
* @fileoverview ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ CloudPayments SDK
* @description Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΠΎΠΉ ΡΠΎΡΠΌΡ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΉ
* @author Leonid Molchanov
* @since 1.0.0
*/
import type {
EPaymentFormAction,
EPaymentFormErrorCode,
EPaymentMethodType,
} from './enums';
// ============================================================================
// EVENT INTERFACES
// ============================================================================
/**
* ΠΠ°Π·ΠΎΠ²ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ 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;
}
// ============================================================================
// LEGACY INTERFACES (Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ)
// ============================================================================
/**
* @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>;
}