

var FaceIdClient *faceid.Clientfunc init() {// 初始化客户端配置对下,您可以指定超时时间和其他配置项prof := profile.NewClientProfile()prof.HttpProfile.ReqTimeout = 60// TODO 需要替换成您调用账号的 SecretId 和 SecretKeycredential := cloud.NewCredential("SecretId", "SecretKey")var err error// 初始化调用慧眼人脸核身服务的客户端FaceIdClient, err = faceid.NewClient(credential, "ap-singapore", prof)if nil != err {log.Fatal("FaceIdClient init error: ", err)}}// ApplySdkVerificationToken 获取人脸核身Tokenfunc ApplySdkVerificationToken(w http.ResponseWriter, r *http.Request) {log.Println("get face id token")// 步骤1: 解析请求参数_ = r.ParseForm()var IdCardType = r.FormValue("IdCardType")var NeedVerifyIdCard = false// 步骤2: 初始化请求对象,并给必要的参数赋值request := faceid.NewApplySdkVerificationTokenRequest()request.IdCardType = &IdCardTyperequest.NeedVerifyIdCard = &NeedVerifyIdCard// 步骤3: 通过FaceIdClient调用人脸核身服务response, err := FaceIdClient.ApplySdkVerificationToken(request)// 步骤4: 处理腾讯云API的响应,并构造返回对象if nil != err {log.Println("error: ", err)_, _ = w.Write([]byte("error"))return}SdkToken := response.Response.SdkTokenapiResp := struct {SdkToken *string}{SdkToken: SdkToken}b, _ := json.Marshal(apiResp)// ... 其他业务处理代码//步骤5: 返回服务响应_, _ = w.Write(b)}// GetFaceIdResult 获取人脸核身核验结果func GetSdkVerificationResult(w http.ResponseWriter, r *http.Request) {// 步骤1: ... 解析请求参数_ = r.ParseForm()SdkToken := r.FormValue("SdkToken")// 步骤2: 初始化请求对象,并给必要的参数赋值request := faceid.NewGetSdkVerificationResultRequest()request.SdkToken = &SdkToken// 步骤3: 通过FaceIdClient调用人脸核身服务response, err := FaceIdClient.GetSdkVerificationResult(request)// Step 4: 处理腾讯云API的响应,并构造返回对象if nil != err {_, _ = w.Write([]byte("error"))return}result := response.Response.ResultapiResp := struct {Result *string}{Result: result}b, _ := json.Marshal(apiResp)// ... 其他业务处理代码//步骤5: 返回服务响应_, _ = w.Write(b)}func main() {// 注册http接口路径http.HandleFunc("/api/v1/get-token", ApplySdkVerificationToken)http.HandleFunc("/api/v1/get-result", GetSdkVerificationResult)// 监听端口err := http.ListenAndServe(":8080", nil)if nil != err {log.Fatal("ListenAndServe error: ", err)}
// 设置ndk so架构过滤(以armeabi-v7a为例)ndk {abiFilters 'armeabi-v7a'}dependencies {// Identity verification SDK版本库implementation files("libs/ekyc_android_1.0.x.x_release.aar")// 核身组件库implementation files("libs/huiyansdk_android_1.0.x.x_release.aar")// Ocr组件库implementation files("libs/OcrSDK-common-model-v1.x.x-release.aar")implementation files("libs/OcrSDK-private-v2.x.x-release.aar")// 通用能力组件库implementation files("libs/tencent-ai-sdk-youtu-base-1.0.x.x-release.aar")implementation files("libs/tencent-ai-sdk-common-1.x.x-release.aar")implementation files("libs/tencent-ai-sdk-aicamera-1.x.x-release.aar")// 引入gson三方库implementation 'com.google.code.gson:gson:2.8.5'}
<!-- 摄像头权限 --><uses-permission android:name="android.permission.CAMERA" /><uses-featureandroid:name="android.hardware.camera"android:required="true" /><uses-feature android:name="android.hardware.camera.autofocus" /><!-- SDK需要的权限 --><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><!-- SDK可选权限 --><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
@Overridepublic void onCreate() {super.onCreate();EkycHySdk.init(this);}
// 设置启动的配置EkycHyConfig ekycHyConfig = new EkycHyConfig();// 设置license的名称ekycHyConfig.setLicenseName("ekycLicense.license");ekycHyConfig.setOcrType(OcrRegionType.HK);// 自定义UI配置OcrUiConfig config = new OcrUiConfig();ekycHyConfig.setOcrUiConfig(config);// 具体的启动核验逻辑// sdkToken 是从服务器端获取的当次流程的唯一凭证EkycHySdk.startEkycCheck(sdkToken, ekycHyConfig, new EkycHyCallBack() {@Overridepublic void onSuccess(EkycHyResult result) {Log.e(TAG, "result: " + result.toString());showToast("核身成功: " + result.toString());}@Overridepublic void onFail(int errorCode, String errorMsg, String ekycToken) {Log.e(TAG, "code: " + errorCode + " msg: " + errorMsg + " token: " + ekycToken);showToast("核身失败: " + "code: " + errorCode + " msg: " + errorMsg + " token: " + ekycToken);}});
└── src└── main├── assets│ └── ekycLicense.license
@Overrideprotected void onDestroy() {EkycHySdk.release();super.onDestroy();}
# 需要混淆的对象-keep class com.google.gson.** {*;}-keep class com.tencent.could.** {*;}-keep class com.tencent.youtu.** {*;}-keep class com.tencent.cloud.ocr.** {*;}-keep class com.tencent.cloud.ekyc.** {*;}
├── HuiYanEKYCVerification.framework├── tnn.framework├── tnnliveness.framework├── YTCommonLiveness.framework├── YTFaceAlignmentTinyLiveness.framework├── YTFaceDetectorLiveness.framework├── YTFaceLiveReflect.framework├── YTFaceTrackerLiveness.framework├── YTPoseDetector.framework├── YtSDKKitActionLiveness.framework├── YtSDKKitFramework.framework├── YtSDKKitOcrVideoIdent.framework├── YtSDKKitReflectLiveness.framework├── YtSDKKitSilentLiveness.framework├── tiny_opencv2.framework├── HuiYanOverseasSDK.framework├── IdVerification.framework├── OcrSDKKit.framework├── TXYCommonDevice.framework├── TXYCommonNetworking.framework├── TXYCommonUtils.framework├── YTCv.framework├── YTImageRefiner.framework├── YtSDKKitFrameworkTool.framework└── YTSm.framework
├── AVFoundation.framework├── libc++.tbd├── Accelerate.framework└── CoreML.framework
├── face-tracker-v003.bundle├── huiyan_verification.bundle├── HuiYanSDKUI.bundle└── OcrSDK.bundle
<key>Privacy - Camera Usage Description</key><string>需要访问您的相机权限</string>
#import <HuiYanEKYCVerification/VerificationKit.h>- (void)viewDidLoad {[[VerificationKit sharedInstance] initWithViewController:self];}
VerificationConfig *config = [[VerificationConfig alloc] init];config.licPath = [[NSBundle mainBundle] pathForResource:@"" ofType:nil];config.languageType = HY_EKYC_EN;config.verAutoTimeOut = 30000;//鉴伪超时时间设置config.hyFaceTimeOut = 15000;//人脸单动作超时设置config.ekycToken = @"";[[VerificationKit sharedInstance] startVerifiWithConfig:config withSuccCallback:^(int errorCode, id _Nonnull resultInfo, id _Nullable reserved) {NSLog(@"ErrCode:%d msg:%@",errorCode,resultInfo);} withFialCallback:^(int errorCode, NSString * _Nonnull errorMsg, id _Nullable reserved) {NSLog(@"ErrCode:%d msg:%@ extra:%@",errorCode,errorMsg,reserved);}];
- (void)dealloc {[VerificationKit clearInstance];}
文档反馈