对接阿里云实人认证

对接阿里云实人认证-身份二要素核验接口整理

目录

应用场景

接口文档

接口信息

请求参数

响应参数

调试

阿里云openApi平台调试

查看调用结果

查看SDK示例

下载SDK

遇到问题

本地调试

总结


应用场景

项目有一个提现的场景,需要用户真实的身份信息。

所以需要一个解决方案能验证真正的用户实名信息。

最后采用了阿里云的二要素身份认证。

接口文档

身份二要素核验API_实人认证(ID Verification)-阿里云帮助中心

接口文档如下:

 

接口信息

接口名:id2MetaVerify。

服务地址:cloudauth.aliyuncs.com(IPv4)或cloudauth-dualstack.aliyuncs.com(IPv6)。

请求方法:POST和GET。

传输协议:HTTPS。

接口说明:传入姓名和身份证号,返回权威数据源对二要素的校验结果。

请求参数

参数主要三个:加密不加密类型,身份证号和姓名。具体参数介绍如下:

ParamType

String

加密方式:

normal:明文不加密

md5:MD5加密

重要

所有参数的密文均取32位小写MD5字符串形式。

不同MD5工具得出的密文可能不同,如果加密前接口可以调通但加密后不行,请尝试更换MD5工具。

normal

IdentifyNum

String

身份证号:

paramType 传 normal 时:输入身份证号明文。

paramType 传 md5 时:身份证号前6位(明文)+出生年月日(密文)+身份证号后4位(明文)。

明文:429001********8211

密文:42900132fa7bcd874161bea8ec8fd98f390ec98211

UserName

String

姓名:

paramType 传 normal 时:输入姓名明文。

paramType 传 md5 时:姓名第一个字密文+ 姓名其他部分明文。

明文:张三

密文:6499fc7409049355527ef6a2ba5706b8三

注意:需要阿里云账号的AccessKeyAccesskey_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, don't 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 {/*** 使用AK&SK初始化账号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
{/*** 使用AK&SK初始化账号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);}}
}

 

总结

对接阿里云实人认证-身份二要素核验接口整理,中间遇到一些困扰的问题,不过解决了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/60465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于卷积神经网络的车辆损坏部位检测系统带gui

项目源码获取方式见文章末尾&#xff01; 600多个深度学习项目资料&#xff0c;快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【基于CNN-RNN的影像报告生成】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【GAN模型实现二次元头像生成】 4.【CNN模型实现…

CHI atomics 传输——CHI(6)

原子事务&#xff0c;指的是此事务就像原子一样是不可分割的&#xff0c;要么所有操作全部完成&#xff0c;要么全部不执行&#xff0c;不存在执行部分操作的情况。 ALU (Arithmetic Logic Unit) 算术逻辑单元&#xff0c;ALU在HN或SN AddrData&#xff1a;当前memory中的数据…

批量从Excel某一列中找到符合要求的值并提取其对应数据

本文介绍在Excel中&#xff0c;从某一列数据中找到与已知数据对应的字段&#xff0c;并提取这个字段对应数值的方法。 首先&#xff0c;来明确一下我们的需求。现在已知一个Excel数据&#xff0c;假设其中W列包含了上海市全部社区的名称&#xff0c;而其后的Y列则是这些社区对应…

有趣的Midjourney作品赏析(附提示词)

中文提示词&#xff1a;国风少年 C4D软件,高分辨率,超细节,超现实主义, 英文提示词&#xff1a;National Style Youth Cinema4D,high resolution,hyper detailed,surrealism, --niji 6 --ar 1:1 中文提示词&#xff1a;粘土模型&#xff0c;男性穿着中世纪欧洲蓝色盔甲&#x…

SpringBootCloud 服务注册中心Nacos对服务进行管理

介绍 Nacos&#xff08;Naming and Configuration Service&#xff09;是一个开源的、动态的服务发现、配置管理和服务管理平台&#xff0c;特别适用于云原生应用和微服务架构。它可以作为服务注册中心&#xff0c;用于微服务的注册、发现、配置管理等。在微服务架构中&#x…

强化学习入门笔记(Reinforcement Learning,RL) 强推!

由于本人的近期研究方向涉及到强化学习&#xff0c;本科时已经学习过了&#xff0c;但是感觉还是有些概念和算法没有学懂学透&#xff0c;所以想重新系统性的学习一下&#xff0c;记录了整个学习过程&#xff0c;而且对当时没有理解不是特别深刻的内容有了一些更加深刻的理解&a…

【计算机网络】【网络层】【习题】

计算机网络-网络层-习题 文章目录 13. 图 4-69 给出了距离-向量协议工作过程&#xff0c;表&#xff08;a&#xff09;是路由表 R1 初始的路由表&#xff0c;表&#xff08;b&#xff09;是相邻路由器 R2 传送来的路由表。请写出 R1 更新后的路由表&#xff08;c&#xff09;。…

外星人入侵

学习于Python编程从入门到实践&#xff08;Eric Matthes 著&#xff09; 整体目录&#xff1a;外星人入侵文件夹是打包后的不必在意 图片和音效都是网上下载的 音效下载网站&#xff1a;Free 游戏爆击中 Sound Effects Download - Pixabay 运行效果&#xff1a;可以上下左右移…

美国10月CPI符合预期,12月降息稳了?

KlipC报道&#xff1a;当地时间11月13日&#xff0c;美国劳工部公布数据显示&#xff0c;美国10月CPI同比上升2.6%&#xff0c;CPI环比上升0.2%&#xff1b;核心CPI同比上升3.3%&#xff0c;核心CPI环比上升0.3%。 数据公布后&#xff0c;交易员加大了对美联储12月降息的押注。…

游戏引擎学习第四天

视频参考:https://www.bilibili.com/video/BV1aDmqYnEnc/ BitBlt 是 Windows GDI&#xff08;图形设备接口&#xff09;中的一个函数&#xff0c;用于在设备上下文&#xff08;device context, DC&#xff09;之间复制位图数据。BitBlt 的主要用途是将一个图像区域从一个地方复…

堆排序与链式二叉树:数据结构与排序算法的双重探索

大家好&#xff0c;我是小卡皮巴拉 文章目录 目录 引言 一.堆排序 1.1 版本一 核心概念 堆排序过程 1.2 版本二 堆排序函数 HeapSort 向下调整算法 AdjustDown 向上调整算法 AdjustUp 二.链式二叉树 2.1 前中后序遍历 链式二叉树的结构 创建链式二叉树 前序遍历…

Rust语言在系统编程中的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 Rust语言在系统编程中的应用 Rust语言在系统编程中的应用 Rust语言在系统编程中的应用 引言 Rust 概述 定义与原理 发展历程 Ru…

车-路-站-网”信息耦合的汽车有序充电

电动汽车作为一种环保、的交通工具&#xff0c;正逐渐成为未来交通的发展趋势。然而&#xff0c;大规模电动汽车的无序充电可能导致电网负荷波动、电压下降等问题&#xff0c;影响电网的安全稳定运行。为了解决这些问题&#xff0c;需要制定有效的电动汽车有序充电策略&#xf…

42个接受医工交叉领域投稿的二三四区期刊汇总|个人观点·24-11-14

小罗碎碎念 昨天晚上的推文总结了94个接受医工交叉研究投稿的一区期刊&#xff0c;今天这期推文把剩下的二三四区期刊补上。我会按照二三四区的顺序介绍&#xff0c;其中每个区会按照大类进行区分。 同样&#xff0c;由于公众号的排版限制&#xff0c;如下图所示的表格&#…

【更新中】《硬件架构的艺术》笔记(三):处理多个时钟

介绍 单时钟设计更易于实现&#xff0c;也更少出现亚稳态、建立和保持时间违例方面的问题。但在实践中&#xff0c;很少有设计只在一个时钟下运行。 多时钟域 多个始终可以有以下一种或多种时钟关系&#xff1a; 1、时钟频率不同。 2、时钟频率相同&#xff0c;但相位不同…

【vue2.0入门】vue基本语法

目录 引言一、页面动态插值1. 一般用法 二、计算属性computed三、动态class、style绑定四、条件渲染与列表渲染五、事件处理六、表单输入绑定七、总结 引言 本系列教程旨在帮助一些零基础的玩家快速上手前端开发。基于我自学的经验会删减部分使用频率不高的内容&#xff0c;并不…

vuepress+vdoing主题搭建自己的知识管理库

在github上建2个仓库 仓库1&#xff0c;文档源文件&#xff08;markdown&#xff09;&#xff0c;可以是私有或公有仓库。 仓库2&#xff0c;build生成的文件&#xff08;发布为github pages&#xff09;&#xff0c;公有仓库。 克隆模板 https://github.com/xugaoyi/vdoing…

开源项目推荐——OpenDroneMap无人机影像数据处理

实景三维作为GIS最火的课题&#xff0c;最近在想做一套自己的三维构建工具&#xff0c;考察了几个开源项目&#xff0c;把自己的搜索过程用csdn记录下来&#xff0c;希望也能帮助到各位同仁。 OpenDroneMap&#xff08;ODM&#xff09;是一个开源项目&#xff0c;旨在处理无人…

深入浅出《钉钉AI》产品体验报告

1. 引言 随着人工智能技术的迅猛发展&#xff0c;企业协同办公领域迎来了新的变革。钉钉作为阿里巴巴集团旗下的企业级通讯与协同办公平台&#xff0c;推出了钉钉AI助理&#xff0c;旨在提高工作效率&#xff0c;优化用户体验。本报告将对钉钉AI助理进行全面的产品体验分析&am…

夹耳开放式耳机好用吗?夹耳开放式耳机推荐

夹耳式耳机作为开放式耳机的一种&#xff0c;在最近几年里深受大家欢迎。它能够受到大家欢迎的原因主要是其不入耳的特性&#xff0c;既有助于保护听力健康&#xff0c;又能让人尽情享受极致的音乐体验。不过&#xff0c;很多小伙伴不知道夹耳式耳机到底好不好用&#xff1f;夹…