1.前提条件
1.1开通阿里云金融级实人认证服务
1.2设置好接入场景
按提示步骤填写接入场景信息
1.3 如果是开发人员,需要管理者授权RAM用户权限
2.接入步骤
3.api签名机制
如果您自己写的原生请求,则需要构造签名。如果使用阿里云金融级实人认证提供的SDK,则无需构造签名。
对于每一次HTTP或者HTTPS协议请求,系统会根据访问中的签名信息验证访问请求者身份,即使用AccessKey ID和AccessKey Secret对称加密方式进行验证
4.初始化人脸识别
初始化人脸识别api
这个api会返回一个url,以及认证id;
url用于前端直接跳转到人脸识别的页面
认证id用于查询人脸识别认证的结果凭证
$client = self::createClient();
$initFaceVerifyRequest = new InitFaceVerifyRequest([
'sceneId' => env("SCENE_ID"),
'outerOrderNo' => $orderNo, //商户请求的唯一标识
'productCode' => 'ID_PRO', //固定值
/*APP认证方案:参数固定值为ID_PRO
活体人脸验证方案:参数固定值为PV_FV
活体检测方案:参数固定值为LR_FR*/
'certType' => 'IDENTITY_CARD', //证件类型,当前支持身份证
'certName' => $certName,
'certNo' => $certNo,
'OssBucketName' => env('OSS_BUCKET_NAME'),
'returnUrl' => $callback_url,
'metaInfo' => $metaInfo,
]);
$runtime = new RuntimeOptions([]);
$res = [];
try {
// 复制代码运行请自行打印 API 的返回值
$res = $client->initFaceVerifyWithOptions($initFaceVerifyRequest, $runtime);
} catch (Exception $error) {
if (!($error instanceof TeaError)) {
$error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
}
// 如有需要,请打印 error
Utils::assertAsString($error->message);
}
return $res;
5.查询人脸识别认证结果
这里会返回认证的信息,
但是需要注意提示消息一直显示认证成功
$client = self::createClient();
$describeFaceVerifyRequest = new DescribeFaceVerifyRequest([
'sceneId' => env("SCENE_ID"),
'certifyId' => $certifyId, //实人认证唯一标识
// 'pictureReturnType' => 'JPG',
]);
$runtime = new RuntimeOptions([]);
$res = [];
try {
// 复制代码运行请自行打印 API 的返回值
$res = $client->describeFaceVerifyWithOptions($describeFaceVerifyRequest, $runtime);
} catch (Exception $error) {
if (!($error instanceof TeaError)) {
$error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
}
// 如有需要,请打印 error
Utils::assertAsString($error->message);
echo $error;
}
return $res;
6.注意
6.1若不是ram用户,则无法查看控制台,设置接入场景
6.2若是系统需要查看摄像头抓拍的照片,则需要填写下oss空间的地址