π· Π‘ΠΊΠ°Π½Π΅Ρ Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΈΡ ΠΊΠ°ΡΡ (CardIO)
CardIO - ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΈΡ ΠΊΠ°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ°ΠΌΠ΅ΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠΌΠ΅ΡΡΠΎ ΡΡΡΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° Π½ΠΎΠΌΠ΅ΡΠ° ΠΊΠ°ΡΡΡ ΠΈ ΡΡΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΡΠΎ Π½Π°Π²Π΅ΡΡΠΈ ΠΊΠ°ΠΌΠ΅ΡΡ Π½Π° ΠΊΠ°ΡΡΡ.
π― ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈβ
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊ ΠΎΠ΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° ΠΊΠ°ΡΡΡ ΠΈ ΡΡΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ (Visa, MasterCard, ΠΠΠ ΠΈ Π΄Ρ.)
- ΠΠΈΠ±ΠΊΠ°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΊΠ°Π½Π΅ΡΠ°
- ΠΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° 12+ ΡΠ·ΡΠΊΠΎΠ²
- Material Design ΡΠ²Π΅ΡΠΎΠ²ΡΠ΅ ΡΡ Π΅ΠΌΡ
ποΈ ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡβ
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡβ
- Android: API 21+ (Android 5.0+) - ΠΏΠΎΠ»Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°
- iOS: iOS 11.0+ - ΡΠΎΠ»ΡΠΊΠΎ Π½ΠΎΠ²Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° (M-ΡΠ΅ΡΠΈΡ ΡΠΈΠΏΠΎΠ²)
Π ΠΌΠΎΠ΄ΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠΉ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ CardIO ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ΄ Π½ΠΎΠ²ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ iOS.
Π‘ΡΠ°ΡΠ°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° iOS ΠΠ ΠΠΠΠΠΠ ΠΠΠΠΠΠ’Π‘Π― - ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ Ρ ΡΠΈΠΏΠ°ΠΌΠΈ M-ΡΠ΅ΡΠΈΠΈ ΠΈ Π½ΠΎΠ²ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ React Native.
π ΠΡΡΡΡΡΠΉ ΡΡΠ°ΡΡβ
ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°Π½Π΅ΡΠ°β
ΠΠ»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ CardIO ΡΠΊΠ°Π½Π΅ΡΠ° Π² ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠΎΠ»Π΅ enableCardScanner
:
import { useCloudPayments } from '@lmapp/react-native-cloudpayments';
import type { IPaymentData } from '@lmapp/react-native-cloudpayments';
const paymentData: IPaymentData = {
publicId: 'pk_test_1234567890abcdef',
amount: '1000.00',
currency: 'RUB',
description: 'Π’Π΅ΡΡΠΎΠ²ΡΠΉ ΠΏΠ»Π°ΡΠ΅ΠΆ',
enableCardScanner: true, // β
ΠΠΊΠ»ΡΡΠ°Π΅ΠΌ ΡΠΊΠ°Π½Π΅Ρ ΠΊΠ°ΡΡ
};
const [presentPaymentForm] = useCloudPayments('pk_test_1234567890abcdef');
// ΠΠ°ΠΏΡΡΠΊ ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΠΎΠΉ ΡΠΎΡΠΌΡ ΡΠΎ ΡΠΊΠ°Π½Π΅ΡΠΎΠΌ
await presentPaymentForm(paymentData);
ΠΠ°Π·ΠΎΠ²Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡβ
import {
ECardIOLanguage,
ECardIOColorScheme
} from '@lmapp/react-native-cloudpayments';
import type { ICardIOConfig, IPaymentData } from '@lmapp/react-native-cloudpayments';
const cardScannerConfig: ICardIOConfig = {
requireExpiry: true,
requireCVV: false,
hideCardIOLogo: true,
actionBarColor: ECardIOColorScheme.MATERIAL_BLUE,
guideColor: ECardIOColorScheme.MATERIAL_GREEN,
language: ECardIOLanguage.RUSSIAN
};
const paymentData: IPaymentData = {
publicId: 'pk_test_1234567890abcdef',
amount: '1000.00',
currency: 'RUB',
description: 'Π’Π΅ΡΡΠΎΠ²ΡΠΉ ΠΏΠ»Π°ΡΠ΅ΠΆ',
enableCardScanner: true,
cardScannerConfig: cardScannerConfig // β
ΠΠ΅ΡΠ°Π»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°
};
βοΈ ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ICardIOConfigβ
ΠΠΎΠ»Ρ ΠΊΠ°ΡΡΡβ
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | Π’ΠΈΠΏ | ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|---|---|
requireExpiry | boolean | true | Π’ΡΠ΅Π±ΠΎΠ²Π°ΡΡ Π²Π²ΠΎΠ΄ ΡΡΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΊΠ°ΡΡΡ |
requireCVV | boolean | false | Π’ΡΠ΅Π±ΠΎΠ²Π°ΡΡ Π²Π²ΠΎΠ΄ CVV ΠΊΠΎΠ΄Π° β οΈ ΠΠ Π ΠΠΠΠΠΠΠΠ£ΠΠ’Π‘Π― |
requirePostalCode | boolean | false | Π’ΡΠ΅Π±ΠΎΠ²Π°ΡΡ Π²Π²ΠΎΠ΄ ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ° |
requireCardholderName | boolean | false | Π’ΡΠ΅Π±ΠΎΠ²Π°ΡΡ Π²Π²ΠΎΠ΄ ΠΈΠΌΠ΅Π½ΠΈ Π΄Π΅ΡΠΆΠ°ΡΠ΅Π»Ρ ΠΊΠ°ΡΡΡ |
const fieldsConfig: ICardIOConfig = {
requireExpiry: true, // β
ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ
requireCVV: false, // β ΠΠ΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ, Π»ΡΡΡΠ΅ Π²Π²ΠΎΠ΄ΠΈΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ
requirePostalCode: false, // ΠΠ»Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
requireCardholderName: true // ΠΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
};
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°β
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | Π’ΠΈΠΏ | ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|---|---|
hideCardIOLogo | boolean | true | Π‘ΠΊΡΡΡΡ Π»ΠΎΠ³ΠΎΡΠΈΠΏ CardIO |
usePayPalLogo | boolean | false | ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΎΠ³ΠΎΡΠΈΠΏ PayPal |
suppressManualEntry | boolean | false | Π‘ΠΊΡΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΡΡΡΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° |
const interfaceConfig: ICardIOConfig = {
hideCardIOLogo: true, // β
ΠΠ»Ρ Π±ΡΠ΅Π½Π΄ΠΈΠ½Π³Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
usePayPalLogo: false, // Π’ΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Ρ Ρ PayPal
suppressManualEntry: false // ΠΡΡΠ°Π²ΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΡΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°
};
Π¦Π²Π΅ΡΠΎΠ²Π°Ρ ΡΡ Π΅ΠΌΠ°β
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|---|
actionBarColor | ECardIOColorScheme | string | Π¦Π²Π΅Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΡΠΊΠ°Π½Π΅ΡΠ° |
guideColor | ECardIOColorScheme | string | Π¦Π²Π΅Ρ ΡΠ°ΠΌΠΊΠΈ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ |
// ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ
ΡΠ²Π΅ΡΠΎΠ²
const colorsConfig: ICardIOConfig = {
actionBarColor: ECardIOColorScheme.MATERIAL_BLUE,
guideColor: ECardIOColorScheme.MATERIAL_GREEN,
};
// ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΡ
hex-ΠΊΠΎΠ΄ΠΎΠ²
const customColorsConfig: ICardIOConfig = {
actionBarColor: '#1976D2',
guideColor: '#4CAF50',
};
ΠΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠ²Π΅ΡΠΎΠ²ΡΠ΅ ΡΡ Π΅ΠΌΡβ
enum ECardIOColorScheme {
MATERIAL_BLUE = '#2196F3',
MATERIAL_GREEN = '#4CAF50',
MATERIAL_RED = '#F44336',
MATERIAL_ORANGE = '#FF9800',
MATERIAL_PURPLE = '#9C27B0',
MATERIAL_INDIGO = '#3F51B5',
MATERIAL_CYAN = '#00BCD4',
MATERIAL_PINK = '#E91E63',
BLACK = '#000000',
WHITE = '#FFFFFF',
GRAY = '#9E9E9E',
}
ΠΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡβ
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|---|
language | ECardIOLanguage | string | Π―Π·ΡΠΊ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΠΊΠ°Π½Π΅ΡΠ° |
const localizationConfig: ICardIOConfig = {
language: ECardIOLanguage.RUSSIAN, // Π ΡΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
};
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ·ΡΠΊΠΈβ
enum ECardIOLanguage {
ENGLISH = 'en', // ΠΠ½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ
RUSSIAN = 'ru', // Π ΡΡΡΠΊΠΈΠΉ
FRENCH = 'fr', // Π€ΡΠ°Π½ΡΡΠ·ΡΠΊΠΈΠΉ
GERMAN = 'de', // ΠΠ΅ΠΌΠ΅ΡΠΊΠΈΠΉ
ITALIAN = 'it', // ΠΡΠ°Π»ΡΡΠ½ΡΠΊΠΈΠΉ
JAPANESE = 'ja', // Π―ΠΏΠΎΠ½ΡΠΊΠΈΠΉ
KOREAN = 'ko', // ΠΠΎΡΠ΅ΠΉΡΠΊΠΈΠΉ
PORTUGUESE = 'pt', // ΠΠΎΡΡΡΠ³Π°Π»ΡΡΠΊΠΈΠΉ
SWEDISH = 'sv', // Π¨Π²Π΅Π΄ΡΠΊΠΈΠΉ
CHINESE_SIMPLIFIED = 'zh-Hans', // ΠΠΈΡΠ°ΠΉΡΠΊΠΈΠΉ ΡΠΏΡΠΎΡΠ΅Π½Π½ΡΠΉ
CHINESE_TRADITIONAL = 'zh-Hant', // ΠΠΈΡΠ°ΠΉΡΠΊΠΈΠΉ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΉ
SPANISH = 'es', // ΠΡΠΏΠ°Π½ΡΠΊΠΈΠΉ
}
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈβ
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | Π’ΠΈΠΏ | ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|---|---|
suppressConfirmation | boolean | false | ΠΡΠΊΠ»ΡΡΠΈΡΡ Π²ΠΈΠ±ΡΠ°ΡΠΈΡ ΠΏΡΠΈ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ |
suppressScan | boolean | false | ΠΡΠΊΠ»ΡΡΠΈΡΡ Π·Π²ΡΠΊ ΠΏΡΠΈ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ |
keepApplicationTheme | boolean | false | Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ |
const additionalConfig: ICardIOConfig = {
suppressConfirmation: false, // ΠΡΡΠ°Π²ΠΈΡΡ Π²ΠΈΠ±ΡΠ°ΡΠΈΡ Π΄Π»Ρ UX
suppressScan: false, // ΠΡΡΠ°Π²ΠΈΡΡ Π·Π²ΡΠΊ Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ
keepApplicationTheme: true // β
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
};