新网网站登录不上,企业介绍模板范文,怎么制作网页版简历,如何获取新注册公司电话对接阿里云实人认证-身份二要素核验接口整理 目录
应用场景
接口文档
接口信息
请求参数
响应参数
调试
阿里云openApi平台调试
查看调用结果
查看SDK示例
下载SDK
遇到问题
本地调试
总结 应用场景
项目有一个提现的场景#xff0c;需要用户真实的身份信息。
… 对接阿里云实人认证-身份二要素核验接口整理 目录
应用场景
接口文档
接口信息
请求参数
响应参数
调试
阿里云openApi平台调试
查看调用结果
查看SDK示例
下载SDK
遇到问题
本地调试
总结 应用场景
项目有一个提现的场景需要用户真实的身份信息。
所以需要一个解决方案能验证真正的用户实名信息。
最后采用了阿里云的二要素身份认证。 接口文档
身份二要素核验API_实人认证(ID Verification)-阿里云帮助中心
接口文档如下 接口信息
接口名id2MetaVerify。
服务地址cloudauth.aliyuncs.comIPv4或cloudauth-dualstack.aliyuncs.comIPv6。
请求方法POST和GET。
传输协议HTTPS。
接口说明传入姓名和身份证号返回权威数据源对二要素的校验结果。 请求参数
参数主要三个加密不加密类型身份证号和姓名。具体参数介绍如下 ParamType String 是 加密方式 normal明文不加密 md5MD5加密 重要 所有参数的密文均取32位小写MD5字符串形式。 不同MD5工具得出的密文可能不同如果加密前接口可以调通但加密后不行请尝试更换MD5工具。 normal IdentifyNum String 是 身份证号 paramType 传 normal 时输入身份证号明文。 paramType 传 md5 时身份证号前6位明文出生年月日密文身份证号后4位明文。 明文429001********8211 密文42900132fa7bcd874161bea8ec8fd98f390ec98211 UserName String 是 姓名 paramType 传 normal 时输入姓名明文。 paramType 传 md5 时姓名第一个字密文 姓名其他部分明文。 明文张三 密文6499fc7409049355527ef6a2ba5706b8三 注意需要阿里云账号的AccessKey和Accesskey_secret. 响应参数
通过code判断接口请求是否成功而验证是否通过要使用ResultObject中的BizCode字段。
响应参数具体如下 名称 类型 描述 示例值 RequestId String 请求ID。 130A2C10-B9EE-4D84-88E3-5384FF039795 Message String 接口调用返回信息。 重要 此参数仅表示接口是否异常。 success Code String 返回码200表示成功其他均为失败。 重要 此参数代表是否正确调用了接口详细的返回码说明请参见错误码。 业务核验结果请通过ResultObject中的字段查看。 200 ResultObject BizCode String 身份核验结果 1校验⼀致 2校验不⼀致 3查⽆记录 1 调试
在这部分浪费不少时间这部分我重点介绍一下方便需要的朋友能节省一些不必要的时间浪费。 阿里云openApi平台调试
首先登录阿里云账号
打开阿里云openApi平台直接进行调试。先用明文的方式输入姓名和身份证号。
调用查看是否能够调通。如下 查看调用结果
通过查看BizCode可以看到这个身份证号和姓名通过了验证。 查看SDK示例
这时候就可以查看相应语言下的SDK示例了发现示例中的参数已经加上了。
示例如下 SDK示例代码如下
?php// This file is auto-generated, dont edit it. Thanks.
namespace AlibabaCloud\SDK\Sample;use AlibabaCloud\SDK\Cloudauth\V20190307\Cloudauth;
use \Exception;
use AlibabaCloud\Tea\Exception\TeaError;
use AlibabaCloud\Tea\Utils\Utils;use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Cloudauth\V20190307\Models\Id2MetaVerifyRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;class Sample {/*** 使用AKSK初始化账号Client* return Cloudauth Client*/public static function createClient(){// 工程代码泄露可能会导致 AccessKey 泄露并威胁账号下所有资源的安全性。以下代码示例仅供参考。// 建议使用更安全的 STS 方式更多鉴权访问方式请参见https://help.aliyun.com/document_detail/311677.html。$config new Config([// 必填请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。accessKeyId getenv(ALIBABA_CLOUD_ACCESS_KEY_ID),// 必填请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。accessKeySecret getenv(ALIBABA_CLOUD_ACCESS_KEY_SECRET)]);// Endpoint 请参考 https://api.aliyun.com/product/Cloudauth$config-endpoint cloudauth.aliyuncs.com;return new Cloudauth($config);}/*** param string[] $args* return void*/public static function main($args){$client self::createClient();$id2MetaVerifyRequest new Id2MetaVerifyRequest([paramType normal,identifyNum 你的身份证号,userName 你的姓名]);$runtime new RuntimeOptions([]);try {// 复制代码运行请自行打印 API 的返回值$client-id2MetaVerifyWithOptions($id2MetaVerifyRequest, $runtime);}catch (Exception $error) {if (!($error instanceof TeaError)) {$error new TeaError([], $error-getMessage(), $error-getCode(), $error);}// 此处仅做打印展示请谨慎对待异常处理在工程项目中切勿直接忽略异常。// 错误 messagevar_dump($error-message);// 诊断地址var_dump($error-data[Recommend]);Utils::assertAsString($error-message);}}
}
$path __DIR__ . \DIRECTORY_SEPARATOR . .. . \DIRECTORY_SEPARATOR . vendor . \DIRECTORY_SEPARATOR . autoload.php;
if (file_exists($path)) {require_once $path;
}
Sample::main(array_slice($argv, 1)); 之后可以下载完整的SDK按照SDK示例方式进行调用。 下载SDK
通过查看SDK安装命令如下 在自己所在项目的命令行中执行命令安装SDK
composer require alibabacloud/cloudauth-20190307 3.1.0
注意命令中的3.1.0为SDK的版本号不要修改后面的版本号如果修改了下载的可能与OpenAPI示例不同则可能无法使用。 遇到问题
因为项目的composer.lock锁定了阿里云所需的一部分依赖的版本。
直接使用下载SDK中的带版本的命令无法使用。 如果你也遇到这个问题可以这样解决
在项目的composer.json中直接添加SDK版本包和版本号后
执行composer update命令即可解决。
如下 本地调试
下载完成后在本地的项目中创建控制器或服务层后仿照SDK示例代码进行修改调用
在本地再次调通后就可以加入到项目功能中进行调用了。
示例如下
?phpnamespace AliCardAuth;use AlibabaCloud\SDK\Cloudauth\V20190307\Cloudauth;
use \Exception;use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Cloudauth\V20190307\Models\Id2MetaVerifyRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;class AliCardAuth
{/*** 使用AKSK初始化账号Client* return Cloudauth Client*/protected static function createClient(){// 工程代码泄露可能会导致 AccessKey 泄露并威胁账号下所有资源的安全性。以下代码示例仅供参考。// 建议使用更安全的 STS 方式更多鉴权访问方式请参见https://help.aliyun.com/document_detail/311677.html。$config new Config([// 必填请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。accessKeyId env(ACCESSKEY.ACCESSKEY_ID),// 必填请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。accessKeySecret env(ACCESSKEY.ACCESSKEY_SECRET)]);// Endpoint 请参考 https://api.aliyun.com/product/Cloudauth$config-endpoint cloudauth.aliyuncs.com;return new Cloudauth($config);}/*** 真实名称-身份证号验证* param $username* param $idCard* return array|mixed*/public static function main($username, $idCard){$client self::createClient();$id2MetaVerifyRequest new Id2MetaVerifyRequest([paramType normal,identifyNum $idCard,userName $username]);$runtime new RuntimeOptions([]);try {$response $client-id2MetaVerifyWithOptions($id2MetaVerifyRequest, $runtime);return $response-toMap()[body];} catch (Exception $error) {return [code 400, message $error-getMessage()];// 诊断地址// var_dump($error-data[Recommend]);// Utils::assertAsString($error-message);}}
} 总结
对接阿里云实人认证-身份二要素核验接口整理中间遇到一些困扰的问题不过解决了。