Kuongeza uthibitisho wa utambulisho kwenye programu ya React Native au Flutter

Charles Archibong, Mwanzilishi mwenza
Simu ya vipengele ndiyo sehemu rahisi. Muunganisho wa simu kwa kiasi kikubwa ni usanidi wa ujenzi wa asili, ruhusa ya kamera, kuweka mtiririko wa kazi wa dashibodi ili mabadiliko yasipite kwenye duka la programu, na kuweka matokeo kwenye seva yako badala ya kwenye simu.

Mambo muhimu
- SDK ya React Native hutuma msimbo asilia, kwa hivyo inahitaji mteja wa msanidi programu au muundo mtupu na haifanyi kazi katika Expo Go.
- Weka mtiririko wa kazi uliochapishwa kwa kutumia kitambulisho ili mabadiliko ya mtiririko yawe uchapishaji upya badala ya toleo la programu-duka.
- onSubmit inamaanisha uthibitisho ulikubaliwa; soma matokeo kwenye sehemu yako ya nyuma kwa kutumia ufunguo wa siri.
- Usomaji wa chipu za NFC hufanya kazi tu katika SDK za simu, na simu isiyo na NFC huruka hatua bila kushindwa.
Kuunganisha uthibitishaji wa utambulisho katika programu ya React Native au Flutter ni mistari michache ya msimbo na kiasi cha kutosha cha usanidi asilia. Toden SDK hutoa mtiririko mzima (ridhaa, uteuzi wa vitambulisho, upigaji picha wa hati, picha ya kujipiga picha na uhalisia unaotumika) na kuuwasilisha kwa ajili yako. Unachomiliki ni usanidi wa muundo, ruhusa ya kamera, ufunguo unaosafirisha, na kile ambacho programu yako hufanya baada ya mwombaji kubonyeza kuwasilisha.
Mbinu inayodumu zaidi ni kuweka mtiririko wa kazi uliojengwa kwenye dashibodi, kupitisha data ya kila mtumiaji kutoka kwa msimbo pekee, na kusoma matokeo kwenye seva yako. Kwa njia hiyo mabadiliko kwenye mtiririko ni kuchapishwa tena badala ya kutolewa kwa programu-duka, na hakuna data ya utambulisho inayohitaji kurudi kwenye simu. Sehemu iliyobaki ya makala haya inashughulikia kila hatua na maamuzi mahususi ya simu njiani.
Unaongeza nini hasa kwenye programu?
SDK zote mbili huendesha uhuishaji asilia kwenye kifaa : Apple Vision kwenye iOS na Google ML Kit kwenye Android. Hiyo ndiyo sababu ya usanidi mwingi. Uhuishaji hapa ni Presence Intelligence (selfie ya moja kwa moja pamoja na changamoto za ishara zisizo na mpangilio, mfuatano wa rangi ya skrini-mwanga, au vyote viwili), na huendesha kwenye fremu za kamera katika msimbo asilia badala ya katika mwonekano wa wavuti.
SDK hizo mbili zina usawa wa vipengele na wavuti SDK kwa mtiririko wa msingi, upachikaji wa mtiririko wa kazi, nyongeza za kunasa (wasiliana OTP , uthibitisho wa anwani, dodoso), uthibitishaji wa biashara na nchi yoyote ya hati za kimataifa. Zinaongeza jambo moja ambalo wavuti haiwezi kufanya: kusoma chip katika pasipoti za kielektroniki na kadi za vitambulisho vya chip juu ya NFC .
Je, miundo inahitaji nini?
Kiwango cha chini kabisa, kutoka kwa React Native (hufunguka kwenye kichupo kipya) na Flutter (hufunguka kwenye kichupo kipya) SDK kurasa:
Mahitaji | Mwitikio wa Asili | Flutter |
|---|---|---|
Kifurushi |
|
|
Mfumo | React Native 0.83+ na Usanifu Mpya; Expo SDK 56 | Flutter 3.27 (Dart 3.6) |
Lengo la usanidi wa iOS | 15.1 | 13.0 |
Android | 24 | 21 |
Muda wa utekelezaji | Mteja wa msanidi programu au muundo mtupu, si Expo Go | Muundo wowote wa Flutter |
Ufungaji wa mtiririko wa kazi kutoka | SDK 2.1.0 | SDK 2.2.0 |
Mstari wa React Native ndio unaovutia timu. SDK hutumia kichakataji cha fremu cha VisionCamera v5 (Nitro), ambacho ni msimbo asilia, kwa hivyo hakiwezi kufanya kazi ndani ya Expo Go. Panga mteja maalum wa usanidi kuanzia siku ya kwanza ya ujumuishaji, sio siku moja kabla ya kutolewa.
Unaisakinishaje?
Kwa programu ya Expo kwenye React Native, sakinisha SDK na wenzake, ongeza programu-jalizi ya usanidi, na ujenge mteja wa usanidi:
npx expo install @myazahq/kyc-sdk-react-native \
react-native-vision-camera react-native-vision-camera-worklets \
react-native-worklets react-native-nitro-modules react-native-nitro-image \
react-native-safe-area-context react-native-svg// app.json
{
"expo": {
"plugins": ["@myazahq/kyc-sdk-react-native"]
}
}npx expo prebuild
npx expo run:ios # or: npx expo run:androidUsiongeze VisionCamera yenyewe kwenyepluginsToleo la 5 halitumii programu-jalizi ya usanidi, na orodha yake huifanyaexpo prebuildkushindwa. Toden programu-jalizi inaongeza kamba ya matumizi ya kamera ya iOS na AndroidCAMERAnaINTERNETruhusa kwako. Programu za Bare React Native huongeza muda wa utekelezaji wa moduli ya Expo nanpx install-expo-modules@latestna kutangaza ruhusa kwa mkono; SDK page ina amri halisi.
Kwa Flutter, ongeza utegemezi na uendesheflutter pub get:
dependencies:
myaza_kyc_sdk_flutter: ^2.2.0Kisha tangaza ruhusa ya kamera mwenyewe:NSCameraUsageDescriptionkatikaios/Runner/Info.plistnaCAMERApamojaINTERNETkatikaAndroidManifest.xml.
Ni ruhusa gani ambazo watumiaji wako wataona?
Kamera, kila wakati. Mahali, tu ikiwa mtiririko wa kazi unatumia hatua ya Akili ya Anwani. Programu-jalizi ya usanidi wa React Native huongeza mifuatano ya eneo kwa chaguo-msingi (pita{ "location": false }kujiondoa); katika Flutter na bare React Native unaziongeza mwenyewe. Kwenye iOS programu huanguka kwa ombi la eneo ikiwaNSLocationWhenInUseUsageDescriptionhaipo, kwa hivyo iongeze wakati wowote hatua ya anwani inapowezekana. Maikrofoni, kamwe: mwongozo wa sauti ni matokeo ya maandishi-kwa-usemi na SDK hairekodi sauti. Hoja hiyo ya mwisho inafaa kuweka majibu yako ya faragha kwenye duka la programu.
Ni moduli zipi za hiari za React Native muhimu?
Nneexpo-*Moduli ni za hiari kwa wenzao, na kila moja hununua uwezo. Kile ambacho timu nyingi hukosa niexpo-document-picker: bila hiyo, hatua za uthibitisho wa anwani na hati ya biashara hukubali kupigwa picha kwa kamera pekee, kwa hivyo PDF taarifa ya benki haiwezi kuwasilishwa kabisa.expo-devicehuboresha alama za vidole vya kifaa vinavyotumiwa na akili ya kifaa,expo-applicationhurekodi toleo la programu yako kwenye uwasilishaji, naexpo-localizationhutoa SDK eneo la kifaa.
Unapaswa kuwekaje mtiririko?
Weka mtiririko wa kazi uliochapishwa kwa kutumia kitambulisho chake. Mtiririko wa kazi hubeba nchi, aina za vitambulisho, hatua za kunasa, chapa na nakala, na inaweza kubeba sheria za uamuzi upande wa seva pia. React Native:
import { MyazaKYC } from "@myazahq/kyc-sdk-react-native";
export default function VerifyScreen() {
return (
<MyazaKYC
apiKey="pk_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
workflowId="wf_AbC123dEf456"
userId="user_42"
userData={{ firstName: "Jane", lastName: "Doe" }}
metadata={{ requestId: "order_1001" }}
onSubmit={(submission) => console.log("submitted", submission.verificationId)}
onError={(err) => console.error(err.code, err.message)}
onClose={() => console.log("closed")}
>
Verify Identity
</MyazaKYC>
);
}Flutter hufungua mtiririko sawa na karatasi ya modal. Kumbuka kwambacontextni kigezo kilichopewa jina na virejeshi vya simu viko kandoconfig, si ndani yake:
MyazaKYC.show(
context: context,
config: const MyazaKYCConfig(
apiKey: 'pk_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
workflowId: 'wf_AbC123dEf456',
userId: 'user_42',
userData: UserData(firstName: 'Jane', lastName: 'Doe'),
metadata: {'requestId': 'order_1001'},
),
onSubmit: (submission) => debugPrint('Submitted: ${submission.verificationId}'),
onError: (error) => debugPrint('Error: ${error.code}: ${error.message}'),
onClose: () => debugPrint('KYC closed'),
);Maelezo matatu katika vipande hivyo ni ya makusudi.
Ufunguo unaweza kuchapishwa. Nipk_ufunguo ni wa programu. Flutter hupata mazingira kutoka kwa kiambishi awali chake (pk_test_ni Sandbox,pk_live_ni Uzalishaji), kwa hivyo kubadili hadi uzalishaji ni mabadiliko muhimu. Ufunguo unaoweza kuchapishwa unaweza kuanza uthibitishaji lakini hauwezi kusoma matokeo yake.
userId,userDatanametadataEndelea kutumia msimbo. Mtiririko wa kazi ni kiolezo kinachoshirikiwa na kila mgeni, kwa hivyo hakiwezi kubeba thamani kwa kila mtumiaji.userDatainafaa kupitishwa: ni jina unaloamini mtumiaji analo, ikilinganishwa na jina lililosomwa kwenye hati yao ili kutoadataMatch. Acha nje nadataMatchinarudinull.
metadata.requestIdInapaswa kutoka kwenye rekodi yako mwenyewe. Ni ufunguo wa kutojiamini kwa uwasilishaji, kwa hivyo itoe kutoka kwa rekodi ya kuingia ambayo ni yake badala ya kutoa mpya kila wakati skrini inapowekwa.
Kwa nini mtiririko wa kazi badala ya vifaa? SDK zote mbili zinakubali usanidi kamili kama vifaa, na hiyo inafanya kazi kwa mtiririko usiobadilika. Lakini kwenye simu kila mabadiliko ya vifaa ni toleo la programu na mzunguko wa ukaguzi, na matoleo ya zamani ya programu hubaki yamesakinishwa kwa miezi kadhaa. Kwa mtiririko wa kazi, kuongeza aina ya kitambulisho au kuimarisha kizingiti kinacholingana na uso hufikia kila toleo lililosakinishwa wakati mwingine mtiririko unapofunguliwa. Ukurasa wa bidhaa wa Workflows unaelezea mjenzi.
Nini kitatokea baada ya mwombaji kuwasilisha maombi?
onSubmitHuwashwa wakati seva inakubali uthibitishaji. Sio matokeo. Ukaguzi huendeshwa bila kusawazisha, na matokeo hufikia sehemu yako ya nyuma kwa kutumia webhook, au kwa simu ya ufunguo wa siri kwaGET /api/kyc/verifications/:id.onErrorhutumika kwa makosa ya kiufundi pekee (mtandao, uthibitishaji, salio, upakiaji), kamwe kwa uthibitishaji uliokataliwa.
Kwa hivyo muundo kwenye simu ni: umewashwaonSubmit, tumaverificationIdKwenye sehemu yako ya nyuma, onyesha skrini ya "tunaangalia maelezo yako", na acha sehemu yako ya nyuma iambie programu nini cha kuonyesha wakati mtandao unapofika. Usilete matokeo kamili kutoka kwa programu. Inahitaji ufunguo wa siri, na ufunguo wa siri katika sehemu ya pili ya programu ni ufunguo wa siri ambao mtu mwingine anao.
Lini NFC Je, usomaji wa chip una maana?
Wakati waombaji wako wana pasipoti za kielektroniki au kadi za vitambulisho vya chip na unataka kiwango cha uhakika chenye nguvu zaidi. SDK za simu husoma chip kupitia njia yake salama, na seva huendesha uthibitishaji tulivu: huangalia tena hash ya kila kundi la data dhidi ya kitu cha usalama kilichosainiwa cha chip na kuthibitisha kwamba msaini huunganisha cheti cha hali ya utoaji kinachoaminika ( CSCA Chipu inayothibitika kuwa imebadilishwa hushindwa kuthibitishachip_not_authentic.
Mipaka minne ya kubuni, kuanzia NFC nyaraka za chipu (hufunguka kwenye kichupo kipya) :
Ufikiaji hufuata vyeti. Hatua ya chipu hutolewa kwa nchi zilizo kwenye Toden Orodha ya vyeti vyake, ambayo inashughulikia nchi 138 ikiwa ni pamoja na Nigeria, Ghana, Kenya, Misri, Ethiopia na Senegal.
GET /configripotisupportsNfckwa kila aina ya kitambulisho kwa akaunti yako.Baadhi ya chipsi haziwezi kusomwa na mtu yeyote. Kadi mahiri ya kitambulisho cha Afrika Kusini, Kitambulisho cha Emirates na MyKad ya Malaysia hutumia programu za chipsi za kibinafsi. Nyaraka hizo bado zinathibitisha kupitia ukaguzi wa hati.
Simu zisizo na NFC ruka hatua , na kuruka hakukosei uthibitisho. Chipu inayokosekana au isiyosomeka inarudi kwenye ukaguzi wa hati na rekodi za serikali.
Hatua ya chipu huendelea baada ya kuchanganua hati , kwa sababu ufunguo unaofungua njia salama ya chipu hutokana na eneo linaloweza kusomwa na mashine la hati.
Ni vitambulisho vipi vinavyoweza kutumia chipu vinavyotoa hatua hii, na kama watumiaji wanaweza kuiruka, ni mipangilio ya mtiririko wa kazi katika mjenzi NFC paneli.
Unawezaje kudumisha ukubwa wa programu unaofaa?
Kwenye Android, utambuzi wa uso na utambuzi wa maandishi hutumia Google ML Kit, na SDK inategemea aina za Huduma za Google Play zinazopakua aina zao mara ya kwanza kuzitumia badala ya kuziunganisha. Kuziunganisha huongeza upakuaji mkubwa kwa kila kifaa, ndiyo maana aina zilizochukuliwa ndizo chaguo-msingi. Tofauti ni kwamba aina za Huduma za Google Play hazifanyi kazi kwenye vifaa bila Huduma za Google Play, kama vile Huawei. Ukizisafirisha kwa hizo, wekaext { myazaKycBundledMlKit = true }katika mzizi wakobuild.gradleili kuunganisha modeli badala yake.
Kusafirisha Kifurushi cha Programu ya Android badala ya cha jumla APK , na kuwezesha R8 pamoja na kupungua kwa rasilimali, hupunguza upakuaji zaidi. SDK husafirisha sheria zake za watumiaji kwa R8.
Orodha ya ukaguzi kabla ya kutolewa
React Native: mteja wa msanidi programu au muundo mtupu katika CI, kamwe Expo Go; Usanifu Mpya umewezeshwa.
Ruhusa ya kamera imetangazwa; mfuatano wa eneo umetangazwa ikiwa mtiririko wowote wa kazi utakusanya anwani; hakuna ruhusa ya maikrofoni.
expo-document-pickerimewekwa ikiwa mtiririko wowote wa kazi unakusanya hati kama faili.Mtiririko wa kazi uliochapishwa uliowekwa na Kitambulisho;
userId,userDatana zizimetadata.requestIdimepitishwa kutoka kwa msimbo.A
pk_test_muhimu katika ujenzi wa maendeleo napk_live_ufunguo katika miundo ya kutolewa, kamwe si ufunguo wa siri.onSubmitmikonoverificationIdkwenye sehemu yako ya nyuma; matokeo yanatoka kwenye webhooks.NFC chanjo imechunguzwa dhidi ya
supportsNfckwa nchi unazotumikia.
Jaribu njia nzima katika Sandbox kwanza ukitumia vitambulisho vya majaribio vilivyochapishwa, kisha ubadilishe kitufe. Kitovu cha msanidi programu huunganisha zote mbili SDK viongozi.
Vyanzo

Charles Archibong
Mwanzilishi mwenza
Charles Archibong ndiye mwanzilishi mwenza wa Toden. Anaandika kuhusu uthibitishaji wa utambulisho, teknolojia ya kifedha, na kazi ya vitendo ya kujenga huduma za kidijitali zinazoaminika.


