@finos_sdk/sdk-ekyc 0.0.29 → 0.0.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +241 -44
- package/android/SDKeKYC/finos/sdk/ekyc/c06/{1.1.9/c06-1.1.9-javadoc.jar → 1.2.0/c06-1.2.0-javadoc.jar} +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/c06/1.2.0/c06-1.2.0-sources.jar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/c06/1.2.0/c06-1.2.0.aar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/c06/{1.1.9/c06-1.1.9.module → 1.2.0/c06-1.2.0.module} +31 -31
- package/android/SDKeKYC/finos/sdk/ekyc/c06/{1.1.9/c06-1.1.9.pom → 1.2.0/c06-1.2.0.pom} +3 -3
- package/android/SDKeKYC/finos/sdk/ekyc/c06/maven-metadata-local.xml +4 -4
- package/android/SDKeKYC/finos/sdk/ekyc/ekyc/{1.1.9/ekyc-1.1.9-javadoc.jar → 1.2.0/ekyc-1.2.0-javadoc.jar} +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/ekyc/1.2.0/ekyc-1.2.0-sources.jar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/ekyc/1.2.0/ekyc-1.2.0.aar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/ekyc/{1.1.9/ekyc-1.1.9.module → 1.2.0/ekyc-1.2.0.module} +44 -44
- package/android/SDKeKYC/finos/sdk/ekyc/ekyc/{1.1.9/ekyc-1.1.9.pom → 1.2.0/ekyc-1.2.0.pom} +9 -9
- package/android/SDKeKYC/finos/sdk/ekyc/ekyc/maven-metadata-local.xml +4 -4
- package/android/SDKeKYC/finos/sdk/ekyc/faceservice/{1.1.9/faceservice-1.1.9-javadoc.jar → 1.2.0/faceservice-1.2.0-javadoc.jar} +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/faceservice/1.2.0/faceservice-1.2.0-sources.jar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/faceservice/1.2.0/faceservice-1.2.0.aar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/faceservice/{1.1.9/faceservice-1.1.9.module → 1.2.0/faceservice-1.2.0.module} +31 -31
- package/android/SDKeKYC/finos/sdk/ekyc/faceservice/{1.1.9/faceservice-1.1.9.pom → 1.2.0/faceservice-1.2.0.pom} +3 -3
- package/android/SDKeKYC/finos/sdk/ekyc/faceservice/maven-metadata-local.xml +4 -4
- package/android/SDKeKYC/finos/sdk/ekyc/liveness/{1.1.9/liveness-1.1.9-javadoc.jar → 1.2.0/liveness-1.2.0-javadoc.jar} +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/liveness/1.2.0/liveness-1.2.0-sources.jar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/liveness/{1.1.9/liveness-1.1.9.aar → 1.2.0/liveness-1.2.0.aar} +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/liveness/{1.1.9/liveness-1.1.9.module → 1.2.0/liveness-1.2.0.module} +33 -33
- package/android/SDKeKYC/finos/sdk/ekyc/liveness/{1.1.9/liveness-1.1.9.pom → 1.2.0/liveness-1.2.0.pom} +4 -4
- package/android/SDKeKYC/finos/sdk/ekyc/liveness/maven-metadata-local.xml +4 -4
- package/android/SDKeKYC/finos/sdk/ekyc/nfc/{1.1.9/nfc-1.1.9-javadoc.jar → 1.2.0/nfc-1.2.0-javadoc.jar} +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/nfc/1.2.0/nfc-1.2.0-sources.jar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/nfc/1.2.0/nfc-1.2.0.aar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/nfc/{1.1.9/nfc-1.1.9.module → 1.2.0/nfc-1.2.0.module} +32 -32
- package/android/SDKeKYC/finos/sdk/ekyc/nfc/{1.1.9/nfc-1.1.9.pom → 1.2.0/nfc-1.2.0.pom} +4 -4
- package/android/SDKeKYC/finos/sdk/ekyc/nfc/maven-metadata-local.xml +4 -4
- package/android/SDKeKYC/finos/sdk/ekyc/ocr/{1.1.9/ocr-1.1.9-javadoc.jar → 1.2.0/ocr-1.2.0-javadoc.jar} +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/ocr/1.2.0/ocr-1.2.0-sources.jar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/ocr/1.2.0/ocr-1.2.0.aar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/ocr/{1.1.9/ocr-1.1.9.module → 1.2.0/ocr-1.2.0.module} +33 -33
- package/android/SDKeKYC/finos/sdk/ekyc/ocr/{1.1.9/ocr-1.1.9.pom → 1.2.0/ocr-1.2.0.pom} +4 -4
- package/android/SDKeKYC/finos/sdk/ekyc/ocr/maven-metadata-local.xml +4 -4
- package/android/SDKeKYC/finos/sdk/ekyc/qrcode/{1.1.9/qrcode-1.1.9-javadoc.jar → 1.2.0/qrcode-1.2.0-javadoc.jar} +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/qrcode/1.2.0/qrcode-1.2.0.aar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/qrcode/{1.1.9/qrcode-1.1.9.module → 1.2.0/qrcode-1.2.0.module} +28 -28
- package/android/SDKeKYC/finos/sdk/ekyc/qrcode/{1.1.9/qrcode-1.1.9.pom → 1.2.0/qrcode-1.2.0.pom} +4 -4
- package/android/SDKeKYC/finos/sdk/ekyc/qrcode/maven-metadata-local.xml +4 -4
- package/android/SDKeKYC/finos/sdk/ekyc/sdkcore/1.2.0/sdkcore-1.2.0-javadoc.jar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/sdkcore/1.2.0/sdkcore-1.2.0-sources.jar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/sdkcore/1.2.0/sdkcore-1.2.0.aar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/sdkcore/{1.1.9/sdkcore-1.1.9.module → 1.2.0/sdkcore-1.2.0.module} +32 -32
- package/android/SDKeKYC/finos/sdk/ekyc/sdkcore/{1.1.9/sdkcore-1.1.9.pom → 1.2.0/sdkcore-1.2.0.pom} +3 -3
- package/android/SDKeKYC/finos/sdk/ekyc/sdkcore/maven-metadata-local.xml +4 -4
- package/android/SDKeKYC/finos/sdk/ekyc/sdkcorecamera/{1.1.9/sdkcorecamera-1.1.9-javadoc.jar → 1.2.0/sdkcorecamera-1.2.0-javadoc.jar} +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/sdkcorecamera/1.2.0/sdkcorecamera-1.2.0-sources.jar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/sdkcorecamera/1.2.0/sdkcorecamera-1.2.0.aar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/sdkcorecamera/{1.1.9/sdkcorecamera-1.1.9.module → 1.2.0/sdkcorecamera-1.2.0.module} +31 -31
- package/android/SDKeKYC/finos/sdk/ekyc/sdkcorecamera/{1.1.9/sdkcorecamera-1.1.9.pom → 1.2.0/sdkcorecamera-1.2.0.pom} +3 -3
- package/android/SDKeKYC/finos/sdk/ekyc/sdkcorecamera/maven-metadata-local.xml +4 -4
- package/android/build.gradle +24 -27
- package/android/gradle.properties +9 -2
- package/android/settings.gradle +3 -2
- package/android/src/main/build.gradle +32 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +2 -0
- package/package.json +16 -7
- package/android/SDKeKYC/finos/sdk/ekyc/c06/1.1.9/c06-1.1.9-sources.jar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/c06/1.1.9/c06-1.1.9.aar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/ekyc/1.1.9/ekyc-1.1.9-sources.jar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/ekyc/1.1.9/ekyc-1.1.9.aar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/faceservice/1.1.9/faceservice-1.1.9-sources.jar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/faceservice/1.1.9/faceservice-1.1.9.aar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/liveness/1.1.9/liveness-1.1.9-sources.jar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/nfc/1.1.9/nfc-1.1.9-sources.jar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/nfc/1.1.9/nfc-1.1.9.aar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/ocr/1.1.9/ocr-1.1.9-sources.jar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/ocr/1.1.9/ocr-1.1.9.aar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/qrcode/1.1.9/qrcode-1.1.9.aar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/sdkcore/1.1.9/sdkcore-1.1.9-javadoc.jar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/sdkcore/1.1.9/sdkcore-1.1.9-sources.jar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/sdkcore/1.1.9/sdkcore-1.1.9.aar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/sdkcorecamera/1.1.9/sdkcorecamera-1.1.9-sources.jar +0 -0
- package/android/SDKeKYC/finos/sdk/ekyc/sdkcorecamera/1.1.9/sdkcorecamera-1.1.9.aar +0 -0
- /package/android/SDKeKYC/finos/sdk/ekyc/qrcode/{1.1.9/qrcode-1.1.9-sources.jar → 1.2.0/qrcode-1.2.0-sources.jar} +0 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 FinOS
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,79 +1,276 @@
|
|
|
1
|
-
|
|
1
|
+
# @finos_sdk/sdk-ekyc
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://badge.fury.io/js/%40finos_sdk%2Fsdk-ekyc)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
React Native SDK for eKYC (electronic Know Your Customer) - Vietnamese CCCD NFC reading, OCR, Liveness detection, Face matching, and C06 residence verification.
|
|
6
7
|
|
|
7
|
-
##
|
|
8
|
+
## 🚀 Features
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
- **NFC Reading** - Read Vietnamese CCCD cards with NFC chips
|
|
11
|
+
- **OCR Processing** - Extract data from ID card images
|
|
12
|
+
- **Liveness Detection** - Verify user presence with selfie
|
|
13
|
+
- **Face Matching** - Compare selfie with ID card photo
|
|
14
|
+
- **C06 Verification** - Residence information verification
|
|
15
|
+
- **TypeScript Support** - Full type definitions included
|
|
10
16
|
|
|
11
|
-
|
|
17
|
+
## 📱 Requirements
|
|
18
|
+
|
|
19
|
+
- React Native 0.70+
|
|
20
|
+
- Android 21+ (Android platform only)
|
|
21
|
+
- NFC and/or Camera hardware depending on modules used
|
|
22
|
+
- Runtime permissions for Camera and/or NFC
|
|
23
|
+
|
|
24
|
+
## 🛠️ Installation
|
|
12
25
|
|
|
13
26
|
```bash
|
|
14
|
-
|
|
15
|
-
|
|
27
|
+
npm install @finos_sdk/sdk-ekyc
|
|
28
|
+
# or
|
|
29
|
+
yarn add @finos_sdk/sdk-ekyc
|
|
30
|
+
```
|
|
16
31
|
|
|
17
|
-
|
|
18
|
-
|
|
32
|
+
## 📖 Quick Start
|
|
33
|
+
|
|
34
|
+
### 1. Import the SDK
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
import SdkEkyc from '@finos_sdk/sdk-ekyc';
|
|
38
|
+
import type { NfcConfig } from '@finos_sdk/sdk-ekyc';
|
|
19
39
|
```
|
|
20
40
|
|
|
21
|
-
|
|
41
|
+
### 2. Basic NFC Scanning
|
|
22
42
|
|
|
23
|
-
|
|
43
|
+
```typescript
|
|
44
|
+
import React, { useEffect } from 'react';
|
|
45
|
+
import { View, Button, Alert } from 'react-native';
|
|
46
|
+
import SdkEkyc from '@finos_sdk/sdk-ekyc';
|
|
24
47
|
|
|
25
|
-
|
|
48
|
+
const NFCExample = () => {
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
// Set up event listeners
|
|
51
|
+
const nfcSuccessListener = SdkEkyc.onNfcScanSuccess((data) => {
|
|
52
|
+
console.log('NFC scan successful:', data);
|
|
53
|
+
});
|
|
26
54
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
55
|
+
const nfcErrorListener = SdkEkyc.onNfcError((error) => {
|
|
56
|
+
Alert.alert('NFC Error', error.message);
|
|
57
|
+
});
|
|
30
58
|
|
|
31
|
-
|
|
32
|
-
|
|
59
|
+
return () => {
|
|
60
|
+
nfcSuccessListener?.remove();
|
|
61
|
+
nfcErrorListener?.remove();
|
|
62
|
+
};
|
|
63
|
+
}, []);
|
|
64
|
+
|
|
65
|
+
const startNfcScan = async () => {
|
|
66
|
+
try {
|
|
67
|
+
const config: NfcConfig = {
|
|
68
|
+
appKey: 'your_app_key_here',
|
|
69
|
+
documentNumber: '123456789',
|
|
70
|
+
birthDate: '01011990',
|
|
71
|
+
expireDate: '01012030',
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
await SdkEkyc.startNfcScan(config);
|
|
75
|
+
} catch (error) {
|
|
76
|
+
Alert.alert('Error', 'Failed to start NFC scan');
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
return (
|
|
81
|
+
<View style={{ padding: 20 }}>
|
|
82
|
+
<Button title="Start NFC Scan" onPress={startNfcScan} />
|
|
83
|
+
</View>
|
|
84
|
+
);
|
|
85
|
+
};
|
|
33
86
|
```
|
|
34
87
|
|
|
35
|
-
###
|
|
88
|
+
### 3. Android Setup
|
|
89
|
+
|
|
90
|
+
Add permissions to `android/app/src/main/AndroidManifest.xml`:
|
|
91
|
+
|
|
92
|
+
```xml
|
|
93
|
+
<uses-permission android:name="android.permission.CAMERA" />
|
|
94
|
+
<uses-permission android:name="android.permission.NFC" />
|
|
95
|
+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
|
96
|
+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
|
97
|
+
|
|
98
|
+
<uses-feature
|
|
99
|
+
android:name="android.hardware.nfc"
|
|
100
|
+
android:required="false" />
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Clean and rebuild:
|
|
36
104
|
|
|
37
105
|
```bash
|
|
38
|
-
|
|
39
|
-
|
|
106
|
+
cd android
|
|
107
|
+
./gradlew clean
|
|
108
|
+
cd ..
|
|
109
|
+
npx react-native run-android
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## 📚 Documentation
|
|
113
|
+
|
|
114
|
+
For complete documentation, examples, and API reference, see:
|
|
115
|
+
|
|
116
|
+
- [📖 Full Integration Guide](./Document/DOC_eKYC_SDK_ReactNative_Integration.md)
|
|
117
|
+
- [🔧 API Reference](./Document/DOC_eKYC_SDK_ReactNative_Integration.md#api-reference)
|
|
118
|
+
- [📋 Event Types](./Document/DOC_eKYC_SDK_ReactNative_Integration.md#event-types-and-callbacks)
|
|
40
119
|
|
|
41
|
-
|
|
42
|
-
|
|
120
|
+
## 🎯 Available Modules
|
|
121
|
+
|
|
122
|
+
### NFC Scanning
|
|
123
|
+
```typescript
|
|
124
|
+
const config: NfcConfig = {
|
|
125
|
+
appKey: 'your_app_key',
|
|
126
|
+
documentNumber: '123456789',
|
|
127
|
+
birthDate: '01011990',
|
|
128
|
+
expireDate: '01012030',
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
await SdkEkyc.startNfcScan(config);
|
|
43
132
|
```
|
|
44
133
|
|
|
45
|
-
|
|
134
|
+
### OCR Processing
|
|
135
|
+
```typescript
|
|
136
|
+
const config: OcrConfig = {
|
|
137
|
+
appKey: 'your_app_key',
|
|
138
|
+
idImagePath: 'base64_image_data',
|
|
139
|
+
expectedDocumentSide: 'front',
|
|
140
|
+
};
|
|
46
141
|
|
|
47
|
-
|
|
142
|
+
await SdkEkyc.startOcr(config);
|
|
143
|
+
```
|
|
48
144
|
|
|
49
|
-
|
|
145
|
+
### Liveness Detection
|
|
146
|
+
```typescript
|
|
147
|
+
const config: LivenessConfig = {
|
|
148
|
+
appKey: 'your_app_key',
|
|
149
|
+
selfieImage: 'base64_selfie_image',
|
|
150
|
+
usingRandomAction: false,
|
|
151
|
+
isStraight: true,
|
|
152
|
+
};
|
|
50
153
|
|
|
51
|
-
|
|
154
|
+
await SdkEkyc.startLiveness(config);
|
|
155
|
+
```
|
|
52
156
|
|
|
53
|
-
|
|
54
|
-
|
|
157
|
+
### Face Matching
|
|
158
|
+
```typescript
|
|
159
|
+
const config: FaceServiceConfig = {
|
|
160
|
+
appKey: 'your_app_key',
|
|
161
|
+
selfieImage: 'selfie_base64',
|
|
162
|
+
idImage: 'id_image_base64',
|
|
163
|
+
};
|
|
55
164
|
|
|
56
|
-
|
|
165
|
+
await SdkEkyc.startFaceCompare(config);
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### C06 Verification
|
|
169
|
+
```typescript
|
|
170
|
+
const config: C06Config = {
|
|
171
|
+
appKey: 'your_app_key',
|
|
172
|
+
sod: 'sod_from_nfc',
|
|
173
|
+
idCardNumber: '123456789',
|
|
174
|
+
recentLocation: 'address_from_nfc',
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
await SdkEkyc.checkC06(config);
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## 🔧 Event Handling
|
|
181
|
+
|
|
182
|
+
The SDK uses event listeners for real-time updates:
|
|
183
|
+
|
|
184
|
+
```typescript
|
|
185
|
+
// Success events
|
|
186
|
+
SdkEkyc.onNfcScanSuccess((data) => { /* handle success */ });
|
|
187
|
+
SdkEkyc.onOcrSuccess((data) => { /* handle success */ });
|
|
188
|
+
SdkEkyc.onLivenessSuccess((data) => { /* handle success */ });
|
|
189
|
+
|
|
190
|
+
// Error events
|
|
191
|
+
SdkEkyc.onNfcError((error) => { /* handle error */ });
|
|
192
|
+
SdkEkyc.onOcrError((error) => { /* handle error */ });
|
|
193
|
+
SdkEkyc.onLivenessError((error) => { /* handle error */ });
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## 🧪 TypeScript Support
|
|
197
|
+
|
|
198
|
+
Full TypeScript support with comprehensive type definitions:
|
|
199
|
+
|
|
200
|
+
```typescript
|
|
201
|
+
import type {
|
|
202
|
+
NfcConfig,
|
|
203
|
+
C06Config,
|
|
204
|
+
OcrConfig,
|
|
205
|
+
LivenessConfig,
|
|
206
|
+
FaceServiceConfig,
|
|
207
|
+
SDKEkycResultWithEvent,
|
|
208
|
+
SDKEkycResultStringWithEvent,
|
|
209
|
+
} from '@finos_sdk/sdk-ekyc';
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
## 🔄 Lifecycle Management
|
|
213
|
+
|
|
214
|
+
For proper NFC functionality, integrate with your app's lifecycle:
|
|
215
|
+
|
|
216
|
+
```typescript
|
|
217
|
+
import { AppState } from 'react-native';
|
|
218
|
+
|
|
219
|
+
useEffect(() => {
|
|
220
|
+
const handleAppStateChange = (nextAppState: string) => {
|
|
221
|
+
if (nextAppState === 'active') {
|
|
222
|
+
SdkEkyc.onResume();
|
|
223
|
+
} else if (nextAppState === 'background') {
|
|
224
|
+
SdkEkyc.onPause();
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
const subscription = AppState.addEventListener('change', handleAppStateChange);
|
|
229
|
+
return () => {
|
|
230
|
+
subscription?.remove();
|
|
231
|
+
SdkEkyc.removeAllListeners();
|
|
232
|
+
};
|
|
233
|
+
}, []);
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## 🚨 Error Handling
|
|
237
|
+
|
|
238
|
+
All SDK operations return promises and emit error events:
|
|
239
|
+
|
|
240
|
+
```typescript
|
|
241
|
+
try {
|
|
242
|
+
const result = await SdkEkyc.startNfcScan(config);
|
|
243
|
+
// Handle success
|
|
244
|
+
} catch (error) {
|
|
245
|
+
console.error('SDK operation failed:', error);
|
|
246
|
+
// Show user-friendly error message
|
|
247
|
+
}
|
|
248
|
+
```
|
|
57
249
|
|
|
58
|
-
##
|
|
250
|
+
## 📞 Support
|
|
59
251
|
|
|
60
|
-
|
|
252
|
+
- **Documentation**: [Full Integration Guide](./Document/DOC_eKYC_SDK_ReactNative_Integration.md)
|
|
253
|
+
- **Issues**: [GitHub Issues](https://github.com/finos/sdk-ekyc/issues)
|
|
254
|
+
- **Contact**: SDK provider for app key registration and support
|
|
61
255
|
|
|
62
|
-
|
|
256
|
+
## 📄 License
|
|
63
257
|
|
|
64
|
-
|
|
65
|
-
- If you're curious to learn more about React Native, check out the [Introduction to React Native](https://reactnative.dev/docs/getting-started).
|
|
258
|
+
MIT License - see [LICENSE](LICENSE) file for details.
|
|
66
259
|
|
|
67
|
-
|
|
260
|
+
## 🔄 Migration from Android SDK
|
|
68
261
|
|
|
69
|
-
If
|
|
262
|
+
If migrating from the native Android SDK:
|
|
70
263
|
|
|
71
|
-
|
|
264
|
+
1. Replace native method calls with React Native SDK methods
|
|
265
|
+
2. Convert callback-based APIs to Promise-based APIs
|
|
266
|
+
3. Use event listeners instead of direct callbacks
|
|
267
|
+
4. Handle permissions through React Native's permission system
|
|
268
|
+
5. Update app lifecycle management to use React Native's AppState
|
|
72
269
|
|
|
73
|
-
|
|
270
|
+
## 📦 Package Information
|
|
74
271
|
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
79
|
-
-
|
|
272
|
+
- **Package**: `@finos_sdk/sdk-ekyc`
|
|
273
|
+
- **Version**: 0.0.30+
|
|
274
|
+
- **Platform**: Android (iOS support planned)
|
|
275
|
+
- **React Native**: 0.70+
|
|
276
|
+
- **License**: MIT
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/android/SDKeKYC/finos/sdk/ekyc/c06/{1.1.9/c06-1.1.9.module → 1.2.0/c06-1.2.0.module}
RENAMED
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
"component": {
|
|
4
4
|
"group": "finos.sdk.ekyc",
|
|
5
5
|
"module": "c06",
|
|
6
|
-
"version": "1.
|
|
6
|
+
"version": "1.2.0",
|
|
7
7
|
"attributes": {
|
|
8
8
|
"org.gradle.status": "release"
|
|
9
9
|
}
|
|
10
10
|
},
|
|
11
11
|
"createdBy": {
|
|
12
12
|
"gradle": {
|
|
13
|
-
"version": "
|
|
13
|
+
"version": "9.0.0"
|
|
14
14
|
}
|
|
15
15
|
},
|
|
16
16
|
"variants": [
|
|
@@ -33,13 +33,13 @@
|
|
|
33
33
|
],
|
|
34
34
|
"files": [
|
|
35
35
|
{
|
|
36
|
-
"name": "c06-1.
|
|
37
|
-
"url": "c06-1.
|
|
38
|
-
"size":
|
|
39
|
-
"sha512": "
|
|
40
|
-
"sha256": "
|
|
41
|
-
"sha1": "
|
|
42
|
-
"md5": "
|
|
36
|
+
"name": "c06-1.2.0.aar",
|
|
37
|
+
"url": "c06-1.2.0.aar",
|
|
38
|
+
"size": 13592,
|
|
39
|
+
"sha512": "c55f8a3b30a68e8346a96a2e21b88f8b4d2620fd53c2782ee593135b2d45fb0582ab0411dad5e1f5e90d35a625e60786705cc4a2bca99afca50140c6386cde3e",
|
|
40
|
+
"sha256": "bf3d0865238651be831e08e334d8777c074d803f5b431521afc2edabd58b0d4e",
|
|
41
|
+
"sha1": "8d402b27282bd069b5addc0c7461b85801d74b8a",
|
|
42
|
+
"md5": "650b52ab71d78a8390238feab377daa6"
|
|
43
43
|
}
|
|
44
44
|
]
|
|
45
45
|
},
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"group": "finos.sdk.ekyc",
|
|
64
64
|
"module": "sdkcore",
|
|
65
65
|
"version": {
|
|
66
|
-
"requires": "1.
|
|
66
|
+
"requires": "1.2.0"
|
|
67
67
|
}
|
|
68
68
|
},
|
|
69
69
|
{
|
|
@@ -76,13 +76,13 @@
|
|
|
76
76
|
],
|
|
77
77
|
"files": [
|
|
78
78
|
{
|
|
79
|
-
"name": "c06-1.
|
|
80
|
-
"url": "c06-1.
|
|
81
|
-
"size":
|
|
82
|
-
"sha512": "
|
|
83
|
-
"sha256": "
|
|
84
|
-
"sha1": "
|
|
85
|
-
"md5": "
|
|
79
|
+
"name": "c06-1.2.0.aar",
|
|
80
|
+
"url": "c06-1.2.0.aar",
|
|
81
|
+
"size": 13592,
|
|
82
|
+
"sha512": "c55f8a3b30a68e8346a96a2e21b88f8b4d2620fd53c2782ee593135b2d45fb0582ab0411dad5e1f5e90d35a625e60786705cc4a2bca99afca50140c6386cde3e",
|
|
83
|
+
"sha256": "bf3d0865238651be831e08e334d8777c074d803f5b431521afc2edabd58b0d4e",
|
|
84
|
+
"sha1": "8d402b27282bd069b5addc0c7461b85801d74b8a",
|
|
85
|
+
"md5": "650b52ab71d78a8390238feab377daa6"
|
|
86
86
|
}
|
|
87
87
|
]
|
|
88
88
|
},
|
|
@@ -96,13 +96,13 @@
|
|
|
96
96
|
},
|
|
97
97
|
"files": [
|
|
98
98
|
{
|
|
99
|
-
"name": "c06-1.
|
|
100
|
-
"url": "c06-1.
|
|
101
|
-
"size":
|
|
102
|
-
"sha512": "
|
|
103
|
-
"sha256": "
|
|
104
|
-
"sha1": "
|
|
105
|
-
"md5": "
|
|
99
|
+
"name": "c06-1.2.0-sources.jar",
|
|
100
|
+
"url": "c06-1.2.0-sources.jar",
|
|
101
|
+
"size": 2529,
|
|
102
|
+
"sha512": "ec7bd58447a91703b10d092171b5b6fe4c7d2d69426a8fb108303537d84dc61aa3ac07ecd0324450d34ee10367f4a611fa64f07127c48b7d10e494a316bad054",
|
|
103
|
+
"sha256": "4d2e875d46b677c8b7a0167e802790785388585731315f22c1a64b1982531dd3",
|
|
104
|
+
"sha1": "498122de6d59700f7522cc095b9fa0958baa277a",
|
|
105
|
+
"md5": "a29aad68f0ad4c0ab2232771c9427711"
|
|
106
106
|
}
|
|
107
107
|
]
|
|
108
108
|
},
|
|
@@ -116,13 +116,13 @@
|
|
|
116
116
|
},
|
|
117
117
|
"files": [
|
|
118
118
|
{
|
|
119
|
-
"name": "c06-1.
|
|
120
|
-
"url": "c06-1.
|
|
121
|
-
"size":
|
|
122
|
-
"sha512": "
|
|
123
|
-
"sha256": "
|
|
124
|
-
"sha1": "
|
|
125
|
-
"md5": "
|
|
119
|
+
"name": "c06-1.2.0-javadoc.jar",
|
|
120
|
+
"url": "c06-1.2.0-javadoc.jar",
|
|
121
|
+
"size": 278559,
|
|
122
|
+
"sha512": "f76907ff9d16be331dad19abb505f479ae075cf9915924359239a0d8a7eadae2df80a91efd18976cddcb971285db8113281eba9d4110499cc6e1dba616419214",
|
|
123
|
+
"sha256": "13b1fc8b8006f97deb7459a1ed9ccde2ebecb5f8dfac0b69407cf905eadaff7c",
|
|
124
|
+
"sha1": "05ed4aad207cca3ad70520871bce6047f66fbcaa",
|
|
125
|
+
"md5": "ba3093ec80ef12c5c5e36d0b0ef7f54c"
|
|
126
126
|
}
|
|
127
127
|
]
|
|
128
128
|
}
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
<modelVersion>4.0.0</modelVersion>
|
|
10
10
|
<groupId>finos.sdk.ekyc</groupId>
|
|
11
11
|
<artifactId>c06</artifactId>
|
|
12
|
-
<version>1.
|
|
12
|
+
<version>1.2.0</version>
|
|
13
13
|
<packaging>aar</packaging>
|
|
14
14
|
<name>C06</name>
|
|
15
15
|
<description>Android SDK module: C06</description>
|
|
16
|
-
<url>https://github.com/
|
|
16
|
+
<url>https://github.com/ToanMobile/SDK_Ekyc_KMP</url>
|
|
17
17
|
<dependencies>
|
|
18
18
|
<dependency>
|
|
19
19
|
<groupId>org.jetbrains.kotlin</groupId>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<dependency>
|
|
31
31
|
<groupId>finos.sdk.ekyc</groupId>
|
|
32
32
|
<artifactId>sdkcore</artifactId>
|
|
33
|
-
<version>1.
|
|
33
|
+
<version>1.2.0</version>
|
|
34
34
|
<scope>runtime</scope>
|
|
35
35
|
</dependency>
|
|
36
36
|
</dependencies>
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
<groupId>finos.sdk.ekyc</groupId>
|
|
4
4
|
<artifactId>c06</artifactId>
|
|
5
5
|
<versioning>
|
|
6
|
-
<latest>1.
|
|
7
|
-
<release>1.
|
|
6
|
+
<latest>1.2.0</latest>
|
|
7
|
+
<release>1.2.0</release>
|
|
8
8
|
<versions>
|
|
9
|
-
<version>1.
|
|
9
|
+
<version>1.2.0</version>
|
|
10
10
|
</versions>
|
|
11
|
-
<lastUpdated>
|
|
11
|
+
<lastUpdated>20250929062922</lastUpdated>
|
|
12
12
|
</versioning>
|
|
13
13
|
</metadata>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|