Onfido Smart Capture SDK มอบชุดหน้าจอและฟังก์ชันการทำงานที่ช่วยให้แอปพลิเคชันสามารถใช้ขั้นตอนการยืนยันตัวตนของผู้ใช้ได้ SDK แต่ละรายการประกอบด้วย:
Onfido Smart Capture SDK ทั้งหมดได้รับการจัดการโดยใช้เวิร์กโฟลว์ Onfido Studio โดยมีความแตกต่างในการปรับแต่งเพียงเล็กน้อยระหว่างแพลตฟอร์มที่มีอยู่
มีสองสภาพแวดล้อมเพื่อรองรับการผสานรวม Onfido SDK:
สภาพแวดล้อมที่ใช้ถูกกำหนดโดยโทเค็น API ที่ใช้เพื่อสร้างโทเค็น SDK ที่จำเป็น
เมื่อคุณพอใจกับการบูรณาการและพร้อมที่จะใช้งานจริง โปรดติดต่อฝ่ายสนับสนุนลูกค้าของ Onfido เพื่อขอรับโทเค็น API ที่ใช้งานจริง คุณจะต้องแทนที่โทเค็นแซนด์บ็อกซ์ในโค้ดของคุณด้วยโทเค็นที่ใช้งานจริง
ตรวจสอบว่าคุณป้อนรายละเอียดการเรียกเก็บเงินที่ถูกต้องในแดชบอร์ด Onfido ของคุณก่อนที่จะเผยแพร่
iOS SDK รองรับ:
หมายเหตุ : SDK เวอร์ชันล่าสุดที่รองรับ Xcode 11.5-12 คือ iOS SDK เวอร์ชัน 22, Xcode 14+ คือ iOS SDK เวอร์ชัน 29 มีวิธีแก้ไขปัญหาชั่วคราวสำหรับ Xcode เวอร์ชันเก่า หากจำเป็น โปรดติดต่อทีมสนับสนุนลูกค้าของ Onfido เพื่อขอข้อมูลเพิ่มเติม
หมายเหตุ : iOS SDK ต้องใช้ CoreNFC ในการทำงาน (ไม่ว่าคุณจะใช้ NFC หรือไม่ก็ตาม) ตั้งแต่ Xcode 12 มีข้อผิดพลาดที่ libnfshared.dylib
หายไปจากเครื่องจำลอง โปรดดูวิธีแก้ไขปัญหานี้ใน Stack Overflow
หมายเหตุ : ในกรณีที่คุณปิดใช้งานคุณสมบัติ NFC Apple อาจขอให้คุณจัดเตรียมวิดีโอเพื่อแสดงการใช้งาน NFC เนื่องจากรหัสที่เกี่ยวข้องกับ NFC เป็นส่วนหนึ่งของไบนารี SDK โดยไม่คำนึงถึงการกำหนดค่ารันไทม์ ขณะที่เรากำลังดำเนินการแก้ไขปัญหานี้อย่างถาวร คุณสามารถติดต่อฝ่ายสนับสนุนลูกค้าของ Onfido เพื่อขอรับวิดีโอได้ในระหว่างนี้
SDK ใช้กล้องของอุปกรณ์ของผู้ใช้ (สำหรับการจับภาพเอกสารและใบหน้า) และไมโครโฟน (สำหรับการจับภาพวิดีโอและการเคลื่อนไหว) คุณต้องมีคีย์ต่อไปนี้ในไฟล์ Info.plist
ของแอปพลิเคชันของคุณ:
NSCameraUsageDescription
NSMicrophoneUsageDescription
< key >NSCameraUsageDescription</ key >
< string >Required for document and face capture</ string >
< key >NSMicrophoneUsageDescription</ key >
< string >Required for video capture</ string >
หมายเหตุ : ต้องใช้คีย์ทั้งหมดในการส่งแอป
SDK ใช้งานได้กับ Swift Package Manager และคุณสามารถรวมไว้ในโปรเจ็กต์ของคุณได้โดยการเพิ่ม URL ที่เก็บแพ็คเกจต่อไปนี้:
dependencies: [
. package ( url : " https://github.com/onfido/onfido-ios-sdk.git " , . branch ( " master " ) )
]
SDK ยังมีอยู่บน CocoaPods อีกด้วย และคุณสามารถรวมไว้ในโปรเจ็กต์ของคุณได้โดยเพิ่มสิ่งต่อไปนี้ลงใน Podfile ของคุณ:
pod 'Onfido'
เรียกใช้ pod install
เพื่อรับ SDK
SDK มีอยู่ในแท็บ GitHub Releases ซึ่งคุณสามารถดาวน์โหลดเฟรมเวิร์กที่บีบอัดได้ คุณสามารถค้นหารุ่นล่าสุดได้ที่นี่
Onfido.xcframework
Onfido.xcframework
ไปยังโฟลเดอร์โปรเจ็กต์ของคุณOnfido.xcframework
ที่อยู่ภายในโปรเจ็กต์ของคุณไปยังส่วน Embedded binaries
ในแท็บ General
ของเป้าหมายแอป iOS ของคุณหากแอปของคุณไม่ได้ใช้ Swift คุณต้องสร้างไฟล์ Swift ใหม่ภายในโปรเจ็กต์ของคุณ ไฟล์นี้จำเป็นเพื่อบังคับให้ Xcode ทำแพ็กเกจไลบรารีรันไทม์ Swift ที่จำเป็นสำหรับ Onfido iOS SDK ในการทำงาน
สร้างไฟล์ Swift โดยมีเนื้อหาดังต่อไปนี้:
import Foundation
import AVFoundation
import CoreImage
import UIKit
import Vision
func fixLibSwiftOnoneSupport ( ) {
// from https://stackoverflow.com/a/54511127/2982993
print ( " Fixes dyld: Library not loaded: @rpath/libswiftSwiftOnoneSupport.dylib " )
}
ตั้งค่า Always Embed Swift Standard Libraries
เป็น Yes
ในการกำหนดค่าโปรเจ็กต์ของคุณ
เอกสารการเริ่มต้น SDK ต่อไปนี้ใช้กับเวิร์กโฟลว์การยืนยันตัวตนที่จัดทำโดยใช้ Onfido Studio สำหรับการบูรณาการที่มีการกำหนดและกำหนดค่าขั้นตอนการยืนยันด้วยตนเอง โปรดดูส่วนการปรับแต่งโฟลว์ขั้นสูงด้านล่าง
iOS SDK มีตัวเลือกการเริ่มต้นและการปรับแต่งที่หลากหลายที่ให้ความยืดหยุ่นในการผสานรวมของคุณ ขณะเดียวกันก็ผสานรวมได้ง่าย
Onfido Studio เป็นแพลตฟอร์มที่ใช้ในการสร้างเวิร์กโฟลว์การยืนยันตัวตนที่สามารถนำมาใช้ซ้ำได้อย่างมากเพื่อใช้กับ Onfido SDK สำหรับข้อมูลเบื้องต้นเกี่ยวกับการทำงานกับเวิร์กโฟลว์ โปรดดูคู่มือการเริ่มต้นใช้งานหรือคู่มือผลิตภัณฑ์ Onfido Studio
เซสชัน SDK ได้รับการควบคุมโดย workflow_run_id
เฉพาะเซสชัน ซึ่งได้มาจาก workflow_id
ซึ่งเป็นตัวระบุเฉพาะของเวิร์กโฟลว์ที่กำหนด
สำหรับรายละเอียดเกี่ยวกับวิธีสร้าง workflow_run_id
โปรดดูคำจำกัดความตำแหน่งข้อมูล POST /workflow_runs/
ในการอ้างอิง Onfido API
โปรดทราบ ว่าในบริบทของ SDK คุณสมบัติ
workflow_run_id
เรียกว่าworkflowRunId
เมื่อกำหนดขั้นตอนการทำงานและสร้างการยืนยันตัวตน เราขอแนะนำเป็นอย่างยิ่งให้บันทึก applicant_id
กับผู้ใช้รายใดรายหนึ่งเพื่อนำไปใช้ซ้ำได้ วิธีนี้จะช่วยติดตามผู้ใช้หากคุณต้องการดำเนินการยืนยันตัวตนหลายครั้งกับบุคคลคนเดียวกัน หรือในสถานการณ์ที่ผู้ใช้กลับมาที่ขั้นตอนการยืนยันต่อ
SDK ได้รับการตรวจสอบสิทธิ์โดยใช้โทเค็น SDK Onfido Studio สร้างและเปิดเผยโทเค็น SDK ในเพย์โหลดการรันเวิร์กโฟลว์ที่ส่งคืนโดย API เมื่อมีการสร้างการรันเวิร์กโฟลว์
โทเค็น SDK สำหรับ Studio สามารถใช้ร่วมกับการเรียกใช้เวิร์กโฟลว์เฉพาะที่สร้างขึ้นเท่านั้น และจะยังคงใช้ได้เป็นระยะเวลาห้าสัปดาห์
หมายเหตุ : คุณต้องไม่ใช้โทเค็น API ในส่วนหน้าของแอปพลิเคชันของคุณ เนื่องจากผู้ใช้ที่ประสงค์ร้ายอาจค้นพบโทเค็นเหล่านั้นในซอร์สโค้ดของคุณ คุณควรใช้มันบนเซิร์ฟเวอร์ของคุณเท่านั้น
หากต้องการใช้ SDK คุณจะต้องได้รับอินสแตนซ์ของออบเจ็กต์ไคลเอ็นต์ โดยใช้โทเค็น SDK ที่สร้างขึ้นและ ID การเรียกใช้เวิร์กโฟลว์
let workflowConfiguration = WorkflowConfiguration ( workflowRunId : " <WORKFLOW_RUN_ID> " , sdkToken : " <YOUR_SDK_TOKEN> " )
let onfidoRun = OnfidoFlow ( workflowConfiguration : orchestrationConfig )
customerViewController . present ( try onfidoRun . run ( ) , animated : true , completion : nil )
// listen for the result
หนังสือเดินทาง บัตรประจำตัวประชาชน และใบอนุญาตมีถิ่นที่อยู่ล่าสุดมีชิปที่สามารถเข้าถึงได้โดยใช้ Near Field Communication (NFC) Onfido SDK จัดเตรียมชุดหน้าจอและฟังก์ชันการทำงานเพื่อแยกข้อมูลนี้ ตรวจสอบความถูกต้องของข้อมูล และจัดให้มีการตรวจสอบผลลัพธ์โดยเป็นส่วนหนึ่งของรายงานเอกสาร
ตั้งแต่เวอร์ชัน 29.1.0 เป็นต้นไปของ Onfido iOS SDK NFC จะถูกเปิดใช้งานตามค่าเริ่มต้นและเสนอให้กับผู้ใช้ปลายทางเมื่อทั้งเอกสารและอุปกรณ์รองรับ NFC
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการกำหนดค่า NFC และรายการเอกสารที่รองรับ โปรดดูคู่มือ NFC สำหรับรายงานเอกสาร
คุณลักษณะนี้ต้องใช้ความสามารถ Near Field Communication Tag Reading
ในแอปเป้าหมายของคุณ หากคุณยังไม่เคยเพิ่มมาก่อน โปรดทำตามขั้นตอนในเอกสารประกอบของ Apple
เพื่อรองรับเอกสาร NFC PACE คุณต้องแก้ไขการให้สิทธิ์ของแอป:
Near Field Communication Tag Reader Session Formats
Password Authenticated Connection Establishment (PACE)
จากรายการแบบเลื่อนลง< key >com.apple.developer.nfc.readersession.formats</ key >
< array >
< string >PACE</ string >
< string >TAG</ string >
</ array >
คุณต้องมีคีย์ต่อไปนี้ในไฟล์ Info.plist
ของแอปพลิเคชันของคุณ:
< key >NFCReaderUsageDescription</ key >
< string >Required to read ePassports</ string >
Info.plist
ของเป้าหมายแอปเพื่อให้สามารถอ่านแท็ก NFC ได้อย่างถูกต้อง <key>com.apple.developer.nfc.readersession.felica.systemcodes</key>
<array>
<string>12FC</string>
</array>
<key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key>
<array>
<string>A0000002471001</string>
<string>A0000002472001</string>
<string>00000000000000</string>
<string>D2760000850101</string>
</array>
หากต้องการกำหนดค่า NFC โดยใช้ Onfido Studio คุณสามารถใช้หนึ่งในตัวเลือกต่อไปนี้ในตัวสร้างเวิร์กโฟลว์:
optional
) : จะพยายามอ่าน NFC หากเป็นไปได้ หากต้องการกำหนดค่า NFC ในโค้ด ให้เรียกใช้ฟังก์ชัน withNFC()
ขณะกำหนดค่า OnfidoConfig
(ดูส่วนการปรับแต่งโฟลว์ขั้นสูงด้านล่าง) โดยใช้ตัวเลือกด้านบน
เมื่อกำหนดค่า NFC ตาม required
ด้วยโค้ด ซึ่งต่างจาก Studio ตรงที่ SDK จะไม่กรองประเภทเอกสารที่ไม่รองรับ NFC ออก เพื่อประสบการณ์ที่ดีที่สุดของผู้ใช้ เปิดเผยเฉพาะประเภทเอกสารที่มีความสามารถ NFC ตามที่ระบุไว้ที่นี่ หรือต้องการใช้ Studio
iOS SDK รองรับการปรับแต่งสี แบบอักษร และสตริงที่ใช้ในโฟลว์ SDK
หากต้องการปรับแต่งรูปลักษณ์ของ SDK คุณสามารถส่งค่า CSS ที่จำเป็นไปยังออบเจ็กต์ Appearance
ในรูทของออบเจ็กต์ WorkflowConfiguration
let appearance = Appearance ( )
appearance . primaryColor = < DESIRED_UI_COLOR_HERE >
appearance . primaryTitleColor = < DESIRED_UI_COLOR_HERE >
ONAppearance *appearance = [[ONAppearance alloc ] init ];
appearance.primaryColor = <DESIRED_UI_COLOR_HERE>;
appearance.primaryTitleColor = <DESIRED_UI_COLOR_HERE>;
โปรดดูเอกสารการปรับแต่ง SDK สำหรับรายละเอียดของตัวเลือก UI ที่รองรับที่สามารถตั้งค่าในคุณสมบัตินี้ได้
iOS SDK รองรับการปรับแต่งธีมสีเข้ม ตามค่าเริ่มต้น ธีมอุปกรณ์ที่ใช้งานของผู้ใช้จะถูกนำไปใช้กับ Onfido SDK โดยอัตโนมัติ อย่างไรก็ตาม คุณสามารถเลือกไม่ใช้การสลับธีมแบบไดนามิก ณ รันไทม์ และตั้งค่าธีมแบบคงที่ในเวลาสร้างแทนดังที่แสดงด้านล่าง ในกรณีนี้ โฟลว์จะแสดงในธีมที่เลือกเสมอโดยไม่คำนึงถึงธีมอุปกรณ์ของผู้ใช้
interfaceStyle
ช่วยให้คุณสามารถบังคับโหมดสว่างหรือมืดผ่าน .dark
และ .light
ตามลำดับ โดยค่าเริ่มต้น จะถูกตั้งค่าเป็น .unspecified
ซึ่งจะเป็นไปตามรูปแบบอินเทอร์เฟซของระบบ
หมายเหตุ: แอตทริบิวต์ก่อนหน้านี้ supportDarkMode
เลิกใช้แล้ว โปรดใช้ interfaceStyle
แทน
ตัวอย่างเช่น หากต้องการตั้งค่ารูปแบบอินเทอร์เฟซเป็น .dark
คุณสามารถใช้โค้ดด้านล่างนี้:
let appearance = Appearance ( )
appearance . setUserInterfaceStyle ( . dark )
ONAppearance *appearance = [ONAppearance new ];
[appearance setUserInterfaceStyle: UIUserInterfaceStyleDark];
หากต้องการใช้ลักษณะที่ปรากฏคุณสามารถใช้วิธีการด้านล่าง:
let configBuilder = OnfidoConfig . builder ( )
configBuilder . withAppearance ( appearance )
ONFlowConfigBuilder *configBuilder = [ONFlowConfig builder ];
[configBuilder withAppearance: appearance];
Onfido SDK อนุญาตให้มีตัวเลือกการสร้างแบรนด์ร่วมสองตัวเลือกที่ส่งผลต่อการแสดงโลโก้ Onfido ที่ด้านล่างของหน้าจอ Onfido
cobrand {Object}
- ทางเลือก
วิธีที่มีประสิทธิภาพที่สุดในการเพิ่มแบรนด์ของคุณลงในลายน้ำส่วนท้ายคือการใช้คุณสมบัติ cobrand
ภายใต้ enterpriseFeatures
คุณสมบัตินี้รับพารามิเตอร์ text
let companyName = " MyCompany "
let enterpriseFeatures = EnterpriseFeatures . builder ( )
. withCobrandingText ( companyName )
. build ( )
NSString *companyName = @" MyCompany " ;
ONEnterpriseFeaturesBuilder *enterpriseFeatures = [ONEnterpriseFeatures builder ];
[enterpriseFeatures withCobrandingText: companyName];
[enterpriseFeatures build ];
โปรดทราบ : Onfido ต้องเปิดใช้งานการสร้างแบรนด์ร่วมด้วยข้อความ โปรดติดต่อวิศวกรโซลูชันหรือผู้จัดการความสำเร็จของลูกค้าเพื่อเปิดใช้งานคุณสมบัตินี้
logoCobrand {Object}
- ทางเลือก
อีกทางเลือกหนึ่งแทน cobrand
คุณสามารถระบุชุดรูปภาพที่จะกำหนดในคุณสมบัติ logoCobrand
ภายใต้ enterpriseFeatures
คุณต้องระบุเส้นทางไปยังรูปภาพเพื่อใช้ในโหมด 'มืด' และรูปภาพแยกต่างหากสำหรับโหมด 'สว่าง' รูปภาพทั้งสองต้องมีความละเอียด 144x32
let onfidoEnterpriseFeatures = EnterpriseFeatures . builder ( )
. withCobrandingLogo (
UIImage ( named : " imageName_for_lightmode " ) ! ,
cobrandingLogoDarkMode : UIImage ( named : " imageName_for_darkmode " ) !
)
. build ( )
ONEnterpriseFeaturesBuilder *enterpriseFeatures = [ONEnterpriseFeatures builder ];
[enterpriseFeatures withCobrandingLogo:
[UIImage imageNamed: @" onfido-logo-white " ] cobrandingLogoDarkMode: [UIImage imageNamed: @" onfido-logo-grey " ]
];
[enterpriseFeatures build ];
โปรดทราบ : Onfido จะต้องเปิดใช้งานโลโก้แบรนด์ร่วม โปรดติดต่อวิศวกรโซลูชันหรือผู้จัดการความสำเร็จของลูกค้าเพื่อเปิดใช้งานคุณสมบัตินี้
หากต้องการใช้การสร้างแบรนด์ร่วม ให้เพิ่มออบเจ็กต์ฟีเจอร์ระดับองค์กรไปที่ OnfidoConfig
:
let configBuilder = OnfidoConfig . builder ( )
configBuilder . withEnterpriseFeatures ( enterpriseFeatures )
ONFlowConfigBuilder *configBuilder = [ONFlowConfig builder ];
[configBuilder withEnterpriseFeatures: enterpriseFeatures];
Onfido SDK รองรับและดูแลรักษาการแปลมากกว่า 40 ภาษา
สตริงที่ใช้ภายใน SDK สามารถปรับแต่งได้โดยมี Localizable.strings
ในแอปของคุณสำหรับภาษาที่ต้องการ และโดยการกำหนดค่าโฟลว์โดยใช้เมธอด withCustomLocalization()
บนตัวสร้างการกำหนดค่า
- ( void ) withCustomLocalization {
[ self . configBuilder withCustomLocalization ] ; // will look for localizable strings in your Localizable.strings file
}
สำหรับรายการภาษาที่ Onfido รองรับ โปรดดูเอกสารการปรับแต่ง SDK ของเรา
หมายเหตุ : หากไม่ได้เลือกภาษา SDK จะตรวจจับและใช้การตั้งค่าภาษาในอุปกรณ์ของผู้ใช้ปลายทาง หากไม่รองรับภาษาของอุปกรณ์ SDK จะใช้ภาษาอังกฤษเป็นค่าเริ่มต้น ( en_US
)
SDK ยังสามารถแสดงในภาษาที่กำหนดเองสำหรับสถานที่ซึ่ง Onfido ไม่รองรับในปัจจุบัน คุณสามารถจัดหาคำแปลทั้งหมดหรือบางส่วนได้ สำหรับคีย์ใดๆ ที่ไม่มีการแปล ระบบจะใช้ภาษาเริ่มต้นที่รองรับ
เมื่อเพิ่มการแปลแบบกำหนดเอง คุณต้องเพิ่มคีย์ทั้งชุดที่รวมอยู่ในไฟล์ Localizable.strings
คุณสามารถตั้งชื่อไฟล์สตริงด้วยคีย์ที่แปลได้ตามที่คุณต้องการ แต่จะต้องระบุชื่อของไฟล์ให้กับ SDK เป็นพารามิเตอร์สำหรับเมธอด withCustomLocalization()
:
withCustomLocalization(andTableName: "MY_CUSTOM_STRINGS_FILE")
(รวดเร็ว)[configBuilder withCustomLocalizationWithTableName:@"MY_CUSTOM_STRINGS_FILE"];
(วัตถุประสงค์-C)นอกจากนี้ คุณยังสามารถระบุบันเดิลที่จะอ่านไฟล์สตริงได้:
withCustomLocalization(andTableName: "MY_CUSTOM_STRINGS_FILE", in: myBundle)
(Swift)[configBuilder withCustomLocalizationWithTableName:@"MY_CUSTOM_STRINGS_FILE" in: myBundle];
(วัตถุประสงค์-C)บันทึก :
หากต้องการขอการแปลภาษาใหม่ หรือเสนอข้อเสนอแนะหรือข้อเสนอแนะเกี่ยวกับการแปลที่มีให้ คุณสามารถติดต่อกับฝ่ายสนับสนุนลูกค้าของ Onfido
เมื่อเซสชัน Onfido SDK สิ้นสุดลง ฟังก์ชันการโทรกลับหลายรายการอาจถูกทริกเกอร์
สำหรับการโทรกลับขั้นสูงที่ใช้สำหรับการวิเคราะห์ผู้ใช้และการส่งคืนสื่อที่ส่ง โปรดดูส่วนการโทรกลับขั้นสูงของเอกสารนี้
หากต้องการรับผลลัพธ์จากเวิร์กโฟลว์ที่เสร็จสมบูรณ์ คุณควรส่งการโทรกลับไปยังอินสแตนซ์ของ OnfidoFlow
รหัสต่อไปนี้ให้ไว้เป็นตัวอย่าง:
onfidoRun . with ( responseHandler : { ( response : OnfidoResponse ) in
switch response {
case . success :
// User completed the flow
case . cancel ( let cancellationReason ) :
// Flow cancelled by user
print ( cancellationReason )
case . error ( let error ) :
// Error occurred
print ( error )
}
} ,
dismissFlowOnCompletion : true )
// Dismiss the whole flow when the user completes it, and return back to the integrator view
คุณลักษณะ | หมายเหตุ |
---|---|
.ความสำเร็จ | โทรกลับที่เริ่มทำงานเมื่องานโต้ตอบทั้งหมดในเวิร์กโฟลว์เสร็จสมบูรณ์ เมื่อสำเร็จ หากคุณกำหนดค่า webhooks ไว้ การแจ้งเตือนจะถูกส่งไปยังแบ็กเอนด์ของคุณเพื่อยืนยันว่าการดำเนินการเวิร์กโฟลว์เสร็จสิ้นแล้ว คุณไม่จำเป็นต้องสร้างเช็คโดยใช้แบ็กเอนด์ของคุณ เนื่องจากเวิร์กโฟลว์จะจัดการโดยตรง |
.error(ข้อผิดพลาด) | โทรกลับที่เกิดขึ้นเมื่อเกิดข้อผิดพลาด |
.ยกเลิก | โทรกลับที่เกิดขึ้นเมื่อเวิร์กโฟลว์ถูกออกจากก่อนกำหนดโดยผู้ใช้ สาเหตุอาจเป็น .userExit หรือ .consentDenied |
อ็อบเจ็กต์ Error
ที่ส่งคืนโดยเป็นส่วนหนึ่งของ OnfidoResponse.error(Error)
เป็นประเภท OnfidoFlowError
เป็นแจงนับที่มีหลายกรณี ขึ้นอยู่กับประเภทข้อผิดพลาด
switch response {
case let OnfidoResponse . error ( error ) :
switch error {
case OnfidoFlowError . cameraPermission :
// This happens if the user denies permission to the SDK during the flow
case OnfidoFlowError . failedToWriteToDisk :
// This happens when the SDK tries to save capture to disk, maybe due to a lack of space
case OnfidoFlowError . microphonePermission :
// This happens when the user denies permission for microphone usage by the app during the flow
case OnfidoFlowError . upload ( let OnfidoApiError ) :
// This happens when the SDK receives an error from an API call.
// See https://documentation.onfido.com/api/latest#errors for more information
case OnfidoFlowError . exception ( withError : let error , withMessage : let message ) :
// This happens when an unexpected error occurs.
// Please email [Customer support](mailto:supportonfido.com) when this happens
case OnfidoFlowError . versionInsufficient :
// This happens when you are using an older version of the iOS SDK and trying
// to access a new functionality from workflow. You can fix this by updating the SDK
default : // necessary because of Swift
}
}
แม้ว่า SDK จะรับผิดชอบในการจับภาพและอัปโหลดสื่อและข้อมูลของผู้ใช้ รายงานการยืนยันตัวตนจะถูกสร้างขึ้นตามขั้นตอนการทำงานที่สร้างขึ้นโดยใช้ Onfido Studio
สำหรับคำแนะนำทีละขั้นตอนในการสร้างการยืนยันตัวตนโดยใช้ Onfido Studio และ SDK ของเรา โปรดดูคู่มือเริ่มต้นใช้งานฉบับย่อของเรา
หากแอปพลิเคชันของคุณเริ่มต้น Onfido iOS SDK โดยใช้ตัวเลือกที่กำหนดไว้ในส่วนการปรับแต่งขั้นสูงของเอกสารนี้ คุณสามารถสร้างการตรวจสอบและรับผลลัพธ์รายงานด้วยตนเองโดยใช้ Onfido API คุณยังสามารถกำหนดค่า webhooks เพื่อรับการแจ้งเตือนแบบอะซิงโครนัสเมื่อมีการสร้างผลลัพธ์รายงาน
ส่วนนี้เกี่ยวกับ 'การปรับแต่งขั้นสูง' หมายถึงกระบวนการเริ่มต้น Onfido iOS SDK โดยไม่ใช้ Onfido Studio กระบวนการนี้จำเป็นต้องมีคำจำกัดความด้วยตนเองของขั้นตอนการตรวจสอบและการกำหนดค่า
พารามิเตอร์ขั้นตอนโฟลว์เหล่านี้ใช้ร่วมกันไม่ได้กับ workflowRunId
โดยต้องใช้วิธีอื่นในการสร้างอินสแตนซ์ไคลเอ็นต์และเริ่มต้นโฟลว์
โปรดทราบ ว่า เราไม่แนะนำ กระบวนการเริ่มต้นนี้ เนื่องจากฟีเจอร์ใหม่ส่วนใหญ่จะเผยแพร่สำหรับเวิร์กโฟลว์ Studio โดยเฉพาะ
SDK ได้รับการตรวจสอบสิทธิ์โดยใช้โทเค็น SDK เนื่องจากโทเค็น SDK แต่ละรายการจะต้องเฉพาะเจาะจงสำหรับผู้สมัครและเซสชันที่กำหนด จึงต้องสร้างโทเค็นใหม่ทุกครั้งที่คุณเริ่มต้น Onfido iOS SDK
พารามิเตอร์ | หมายเหตุ |
---|---|
applicant_id | ที่จำเป็น ระบุผู้สมัครสำหรับอินสแตนซ์ SDK |
application_id | ที่จำเป็น รหัสแอปพลิเคชัน (สำหรับ iOS "รหัสชุดแอปพลิเคชัน") ที่ได้รับการตั้งค่าระหว่างการพัฒนา สำหรับ iOS โดยปกติจะอยู่ในรูปแบบ com.your-company.app-name ตรวจสอบให้แน่ใจว่าใช้ application_id ที่ถูกต้อง ไม่เช่นนั้นคุณจะได้รับข้อผิดพลาด 401 |
สำหรับรายละเอียดเกี่ยวกับวิธีสร้างโทเค็น SDK ด้วยตนเอง โปรดดูคำจำกัดความ POST /sdk_token/
ในข้อมูลอ้างอิง Onfido API
หมายเหตุ : คุณต้องไม่ใช้โทเค็น API ในส่วนหน้าของแอปพลิเคชันของคุณ เนื่องจากผู้ใช้ที่ประสงค์ร้ายอาจค้นพบโทเค็นเหล่านั้นในซอร์สโค้ดของคุณ คุณควรใช้มันบนเซิร์ฟเวอร์ของคุณเท่านั้น
expireHandler
เมื่อสร้างโทเค็น SDK ด้วยตนเอง โปรดทราบว่าโทเค็นจะหมดอายุหลังจาก 90 นาที
ด้วยเหตุนี้ เราขอแนะนำให้คุณใช้พารามิเตอร์ expireHandler
ที่ไม่บังคับในฟังก์ชันการกำหนดค่าโทเค็น SDK เพื่อสร้างและส่งโทเค็น SDK ใหม่เมื่อโทเค็นหมดอายุ เพื่อให้แน่ใจว่า SDK จะไหลต่อไปแม้ว่าโทเค็น SDK จะหมดอายุแล้วก็ตาม
ตัวอย่างเช่น:
func getSDKToken ( _ completion : @escaping ( String ) -> Void ) {
// Your network request logic to retrieve SDK token goes here
completion ( myNewSDKtoken )
}
let config = try OnfidoConfig . builder ( )
. withSDKToken ( " <YOUR_SDK_TOKEN> " , expireHandler : getSDKToken )
-( void ) getSDKToken: ( void (^)( NSString *)) handler {
// <Your network request logic to retrieve SDK token goes here>
handler (sdkToken);
}
ONFlowConfigBuilder *configBuilder = [ONFlowConfig builder ];
[configBuilder withSdkToken: @" YOUR_SDK_TOKEN " expireHandler: ^( void (^ handler)( NSString * expireHandler)) {
[ self getSDKToken: handler];
}];
เมื่อคุณได้เพิ่มการพึ่งพา SDK และคุณมีรหัสผู้สมัครแล้ว คุณสามารถกำหนดค่าขั้นตอนโฟลว์ SDK ได้ด้วยตนเอง:
let config = try OnfidoConfig . builder ( )
. withSDKToken ( " <YOUR_SDK_TOKEN> " )
. withWelcomeStep ( )
. withDocumentStep ( )
. withProofOfAddressStep ( )
. withFaceStep ( ofVariant : . photo ( withConfiguration : nil ) )
. build ( )
let onfidoFlow = OnfidoFlow ( withConfiguration : config )
. with ( responseHandler : { results in
// Callback when flow ends
} )
ONFlowConfigBuilder *configBuilder = [ONFlowConfig builder ];
[configBuilder withSdkToken: @" YOUR_SDK_TOKEN " ];
[configBuilder withWelcomeStep ];
[configBuilder withDocumentStep ];
[configBuilder withProofOfAddressStep ];
NSError *variantConfigError = NULL ;
Builder *variantBuilder = [ONFaceStepVariantConfig builder ];
[variantBuilder withPhotoCaptureWithConfig: NULL ];
[configBuilder withFaceStepOfVariant: [variantBuilder buildAndReturnError: &variantConfigError]];
if (variantConfigError == NULL ) {
NSError *configError = NULL ;
ONFlowConfig *config = [configBuilder buildAndReturnError: &configError];
if (configError == NULL ) {
ONFlow *onFlow = [[ONFlow alloc ] initWithFlowConfiguration: config];
[onFlow withResponseHandler: ^(ONFlowResponse *response) {
// Callback when flow ends
}];
}
}
try onfidoRun . run ( from : yourViewController , animated : true )
NSError *runError = NULL ;
[onFlow runFrom: yourViewController animated: YES error: &runError completion: nil ];
if (runError != NULL ) {
// do fallback logic
}
หากต้องการปรับแต่งรูปลักษณ์ของ SDK คุณสามารถส่งค่า CSS ที่จำเป็นไปยังออบเจ็กต์ Appearance
ในรูทของออบเจ็กต์ OnfidoConfig.builder()
ได้
let appearance = Appearance ( )
appearance . primaryColor = < DESIRED_UI_COLOR_HERE >
appearance . primaryTitleColor = < DESIRED_UI_COLOR_HERE >
ONAppearance *appearance = [[ONAppearance alloc ] init ];
appearance.primaryColor = <DESIRED_UI_COLOR_HERE>;
appearance.primaryTitleColor = <DESIRED_UI_COLOR_HERE>;
หากต้องการใช้ลักษณะที่ปรากฏ คุณสามารถใช้วิธีการด้านล่าง:
let configBuilder = OnfidoConfig . builder ( )
configBuilder . withAppearance ( appearance )
ONFlowConfigBuilder *configBuilder = [ONFlowConfig builder ];
[configBuilder withAppearance: appearance];
โปรดดูเอกสารการปรับแต่ง SDK สำหรับรายละเอียดของตัวเลือก UI ที่รองรับที่สามารถตั้งค่าในคุณสมบัตินี้ได้
คุณสามารถปรับแต่งโฟลว์ของ SDK ได้โดยเพิ่มขั้นตอนลงในโฟลว์ SDK
ขั้นตอนที่เป็นไปได้ได้แก่:
ขั้นตอน | คำอธิบาย |
---|---|
withWelcomeStep | หน้าจอต้อนรับที่แสดงต่อผู้ใช้พร้อมคำแนะนำเบื้องต้น ตัวเลือกการปรับแต่งประกอบด้วยการแก้ไของค์ประกอบข้อความและคำแนะนำที่แสดงต่อผู้ใช้ |
withDocumentStep | ชุดหน้าจอที่ควบคุมการถ่ายภาพผ่านภาพถ่ายหรือการอัพโหลดเอกสารของผู้ใช้ มีตัวเลือกการปรับแต่งมากมายเพื่อกำหนดรายการเอกสารที่นำเสนอต่อผู้ใช้และประสบการณ์การจับภาพโดยรวม |
withFaceStep | ชุดหน้าจอที่ควบคุมการถ่ายภาพเซลฟี่ วิดีโอ หรือภาพเคลื่อนไหวของผู้ใช้ ตัวเลือกการปรับแต่งช่วยให้สามารถเลือกรูปแบบการจับภาพได้ |
withProofOfAddressStep | หน้าจอที่ผู้ใช้เลือกประเทศที่ออกและประเภทเอกสารเพื่อยืนยันที่อยู่ |
ขั้นตอนนี้เป็นหน้าจอแนะนำของ SDK โดยจะแนะนำกระบวนการและเตรียมผู้ใช้สำหรับขั้นตอนที่ต้องดำเนินการให้เสร็จสิ้น
แม้ว่าหน้าจอนี้จะเป็น ทางเลือก แต่เราแนะนำให้นำออกเฉพาะในกรณีที่คุณมีหน้าจอต้อนรับสำหรับการยืนยันตัวตนอยู่แล้ว
คุณสามารถแสดงหน้าจอต้อนรับได้โดยการเรียก configBuilder.withWelcomeStep()
ใน Swift หรือ [configBuilder withWelcomeStep]
ใน Objective-C