2021年10月份国家互联网信息办公室公布《互联网用户账号名称信息管理规定(征求意见稿)》。内容包括,互联网用户账号服务平台应当按照“后台实名、前台自愿”的原则,要求互联网用户账号使用者在注册账号时提供真实身份信息。互联网用户账号使用者不提供真实身份信息或者虚假注册的,互联网用户账号服务平台不得为其提供服务。如何对用户提供的身份证信息进行真实性验证呢?

下面我们就介绍如何使用阿里云的实名认证服务:

1.注册阿里云账号并完成实名制认证(已有阿里云账号请略过):阿里云-上云就上阿里云 (aliyun.com)

2.购买测试套餐:https://market.aliyun.com/products/57126001/cmapi025518.html?#sku=yuncode1951800000https://market.aliyun.com/products/57126001/cmapi025518.html?#sku=yuncode19518000003.获取您的秘钥(appdoce):https://market.console.aliyun.com/imageconsole/index.htm?spm=5176.product-detail.J_3982476530.15.2b6217c1jFWWLt#/?_k=ld57ewhttps://market.console.aliyun.com/imageconsole/index.htm?spm=5176.product-detail.J_3982476530.15.2b6217c1jFWWLt#/?_k=ld57ew4.编写接口代码(本例已java为例,产品页面有其他代码实例):

public static void main(String[] args) {String host = "https://idenauthen.market.alicloudapi.com";String path = "/idenAuthentication";String method = "POST";String appcode = "你自己的AppCode";Map<String, String> headers = new HashMap<String, String>();//最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105headers.put("Authorization", "APPCODE " + appcode);//根据API的要求,定义相对应的Content-Typeheaders.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");Map<String, String> querys = new HashMap<String, String>();Map<String, String> bodys = new HashMap<String, String>();bodys.put("idNo", "340421190210182345");bodys.put("name", "张三");try {/*** 重要提示如下:* HttpUtils请从* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java* 下载** 相应的依赖请参照* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml*/HttpResponse response = HttpUtils.doPost(host, path, method, headers, querys, bodys);System.out.println(response.toString());//获取response的body//System.out.println(EntityUtils.toString(response.getEntity()));} catch (Exception e) {e.printStackTrace();}}

工具类:

package com.netgate.util.send;import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;import org.apache.commons.lang.StringUtils;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;public class HttpUtils {/*** get* * @param host* @param path* @param method* @param headers* @param querys* @return* @throws Exception*/public static HttpResponse doGet(String host, String path, String method, Map<String, String> headers, Map<String, String> querys)throws Exception {        HttpClient httpClient = wrapClient(host);HttpGet request = new HttpGet(buildUrl(host, path, querys));for (Map.Entry<String, String> e : headers.entrySet()) {request.addHeader(e.getKey(), e.getValue());}return httpClient.execute(request);}/*** post form* * @param host* @param path* @param method* @param headers* @param querys* @param bodys* @return* @throws Exception*/public static HttpResponse doPost(String host, String path, String method, Map<String, String> headers, Map<String, String> querys, Map<String, String> bodys)throws Exception {        HttpClient httpClient = wrapClient(host);HttpPost request = new HttpPost(buildUrl(host, path, querys));for (Map.Entry<String, String> e : headers.entrySet()) {request.addHeader(e.getKey(), e.getValue());}if (bodys != null) {List<NameValuePair> nameValuePairList = new ArrayList<NameValuePair>();for (String key : bodys.keySet()) {nameValuePairList.add(new BasicNameValuePair(key, bodys.get(key)));}UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(nameValuePairList, "utf-8");formEntity.setContentType("application/x-www-form-urlencoded; charset=UTF-8");request.setEntity(formEntity);}return httpClient.execute(request);}    /*** Post String* * @param host* @param path* @param method* @param headers* @param querys* @param body* @return* @throws Exception*/public static HttpResponse doPost(String host, String path, String method, Map<String, String> headers, Map<String, String> querys, String body)throws Exception {        HttpClient httpClient = wrapClient(host);HttpPost request = new HttpPost(buildUrl(host, path, querys));for (Map.Entry<String, String> e : headers.entrySet()) {request.addHeader(e.getKey(), e.getValue());}if (StringUtils.isNotBlank(body)) {request.setEntity(new StringEntity(body, "utf-8"));}return httpClient.execute(request);}/*** Post stream* * @param host* @param path* @param method* @param headers* @param querys* @param body* @return* @throws Exception*/public static HttpResponse doPost(String host, String path, String method, Map<String, String> headers, Map<String, String> querys, byte[] body)throws Exception {        HttpClient httpClient = wrapClient(host);HttpPost request = new HttpPost(buildUrl(host, path, querys));for (Map.Entry<String, String> e : headers.entrySet()) {request.addHeader(e.getKey(), e.getValue());}if (body != null) {request.setEntity(new ByteArrayEntity(body));}return httpClient.execute(request);}/*** Put String* @param host* @param path* @param method* @param headers* @param querys* @param body* @return* @throws Exception*/public static HttpResponse doPut(String host, String path, String method, Map<String, String> headers, Map<String, String> querys, String body)throws Exception {        HttpClient httpClient = wrapClient(host);HttpPut request = new HttpPut(buildUrl(host, path, querys));for (Map.Entry<String, String> e : headers.entrySet()) {request.addHeader(e.getKey(), e.getValue());}if (StringUtils.isNotBlank(body)) {request.setEntity(new StringEntity(body, "utf-8"));}return httpClient.execute(request);}/*** Put stream* @param host* @param path* @param method* @param headers* @param querys* @param body* @return* @throws Exception*/public static HttpResponse doPut(String host, String path, String method, Map<String, String> headers, Map<String, String> querys, byte[] body)throws Exception {        HttpClient httpClient = wrapClient(host);HttpPut request = new HttpPut(buildUrl(host, path, querys));for (Map.Entry<String, String> e : headers.entrySet()) {request.addHeader(e.getKey(), e.getValue());}if (body != null) {request.setEntity(new ByteArrayEntity(body));}return httpClient.execute(request);}/*** Delete*  * @param host* @param path* @param method* @param headers* @param querys* @return* @throws Exception*/public static HttpResponse doDelete(String host, String path, String method, Map<String, String> headers, Map<String, String> querys)throws Exception {        HttpClient httpClient = wrapClient(host);HttpDelete request = new HttpDelete(buildUrl(host, path, querys));for (Map.Entry<String, String> e : headers.entrySet()) {request.addHeader(e.getKey(), e.getValue());}return httpClient.execute(request);}private static String buildUrl(String host, String path, Map<String, String> querys) throws UnsupportedEncodingException {StringBuilder sbUrl = new StringBuilder();sbUrl.append(host);if (!StringUtils.isBlank(path)) {sbUrl.append(path);}if (null != querys) {StringBuilder sbQuery = new StringBuilder();for (Map.Entry<String, String> query : querys.entrySet()) {if (0 < sbQuery.length()) {sbQuery.append("&");}if (StringUtils.isBlank(query.getKey()) && !StringUtils.isBlank(query.getValue())) {sbQuery.append(query.getValue());}if (!StringUtils.isBlank(query.getKey())) {sbQuery.append(query.getKey());if (!StringUtils.isBlank(query.getValue())) {sbQuery.append("=");sbQuery.append(URLEncoder.encode(query.getValue(), "utf-8"));}                    }}if (0 < sbQuery.length()) {sbUrl.append("?").append(sbQuery);}}return sbUrl.toString();}private static HttpClient wrapClient(String host) {HttpClient httpClient = new DefaultHttpClient();if (host.startsWith("https://")) {sslClient(httpClient);}return httpClient;}private static void sslClient(HttpClient httpClient) {try {SSLContext ctx = SSLContext.getInstance("TLS");X509TrustManager tm = new X509TrustManager() {public X509Certificate[] getAcceptedIssuers() {return null;}public void checkClientTrusted(X509Certificate[] xcs, String str) {}public void checkServerTrusted(X509Certificate[] xcs, String str) {}};ctx.init(null, new TrustManager[] { tm }, null);SSLSocketFactory ssf = new SSLSocketFactory(ctx);ssf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);ClientConnectionManager ccm = httpClient.getConnectionManager();SchemeRegistry registry = ccm.getSchemeRegistry();registry.register(new Scheme("https", 443, ssf));} catch (KeyManagementException ex) {throw new RuntimeException(ex);} catch (NoSuchAlgorithmException ex) {throw new RuntimeException(ex);}}
}

5.数据实例:

发送数据:

bodys.put("idNo", "340421190210182345");
bodys.put("name", "张三");

返回数据:

{"name": "张三","idNo": "340421190710145412","respMessage": "身份证信息匹配","respCode": "0000","province": "安徽省","city": "淮南市","county": "凤台县","birthday": "19071014","sex": "M","age": "111"
}

阿里云在国内拥有强大的技术沉淀,保证了接口的稳定服务,同时可以在线申请发票、合同等服务也为大家的工作节省大量时间,

希望大家搬砖快乐!

互联网用户账号信息真实性认证(阿里云身份信息实名认证API接口服务)相关推荐

  1. Java 使用阿里云短信的API接口

    亲们上午好,写的不好的地方还望指正.谢谢各位! 引言 短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力,支持快速发送短信验证码.短信通知等.(我这里只讲一个 ...

  2. 阿里云acp认证, 阿里云acp考试介绍

    阿里云acp认证:即阿里云云计算专业认证(ACP级-Alibaba Cloud Certified Professional)是面向使用阿里云云计算产品的架构.开发.运维类人员的专业技术认证,主要涉及 ...

  3. Python+阿里云人脸信息脱敏 实现大量照片批量给人脸打马赛克并保存至本地

    Python+阿里云人脸信息脱敏 实现大量照片批量给人脸打马赛克并保存至本地 前言 1.软件包下载 1.1 单解释器,系统Python环境下载软件包 1.2 多解释器,PyCharm给指定解释器安装软 ...

  4. 阿里云购买域名实名认证及网站备案

    本文主要分享自己在阿里云购买的域名做实名认证及其网站备案的一些过程,重点对其中所遇到的一些问题和解决办法做分享,帮助大家能够绕开这些坑,尽快完成认证和备案工作! 1. 域名实名认证 七月中旬在阿里云官 ...

  5. 在阿里云ECS服务器上搭建FTP服务

    在阿里云ECS服务器上搭建FTP服务 一.简介 二.环境简介 三.搭建FTP服务器步骤 1.配置ECS服务器的安全组策略 2.服务器安装vsftpd软件 3.修改配置文件 4.启动FTP服务 5.Wi ...

  6. 阿里云个人账号实名认证和企业账号实名认证的区别在哪里

    阿里云账号实名认证分为个人实名认证和企业实名认证.之前魏艾斯博客已经分别写过阿里云账号个人实名认证和阿里云企业账号实名认证的操作流程,今天就详细说下二者之间的区别. 注册账号之前点我领取阿里云千元代金 ...

  7. 阿里云账号企业实名认证和个人有什么区别?

    阿里云账号根据实名认证主体分为个人认证和企业认证两种,企业实名认证和个人实名认证有什么区别?区别大了,如果公司的阿里云账号使用员工的个人身份进行实名认证,一旦员工离职,公司账号就找不回来了.阿里云百科 ...

  8. 阿里云账号个人实名认证和企业实名认证有什么区别?

    阿里云账号根据实名认证主体分为个人认证和企业认证两种,企业实名认证和个人实名认证有什么区别?区别大了,如果公司的阿里云账号使用员工的个人身份进行实名认证,一旦员工离职,公司账号就找不回来了.阿里云百科 ...

  9. 阿里云账号企业实名认证和个人实名认证区别详解

    阿里云账号根据实名认证信息主体可以分为企业认证和个人认证,根据有关规定,阿里云账号需要通过实名认证才可以购买云服务器等产品,所以在购买云产品之前必须要对账号进行实名认证,阿小云分享阿里云个人实名认证和 ...

最新文章

  1. mysql2已经存在数据数据导入,在MYSQL中导入已存在的数据库
  2. 微信小程序日期选择器
  3. Java8 CopyOnWriteArrayList 源码分析
  4. python 2 类与对象
  5. 匈牙利算法——最大匹配问题详解
  6. Csla框架之业务与验证规则
  7. [转]形态学操作:膨胀与腐蚀
  8. 1177: 按要求排序(指针专题)_排序算法之快速排序
  9. XidianOJ 1007 易碎的鸟蛋
  10. 北理工珠海学院计算机分数线,北京理工大学珠海学院
  11. mysql 模糊查询 查询条件为多个
  12. 计算四则表达式(中缀式转后缀式,然后计算结果)
  13. 家谱制作软件如何成谱编修流程
  14. Flex弹性布局详细介绍
  15. c++构造函数的定义
  16. el-talbe如何在打印的时候,每页都能有表头?
  17. c语言深度剖析百度云,《C语言深度剖析》笔记
  18. .NET Core Web API 发布IIS 报错 500.31
  19. 支付宝,你在憋什么大招?
  20. 基尔霍夫电流/电压定律

热门文章

  1. matlab优化工具箱笔记(1)
  2. 重回市场第一,易车这次“站稳”了吗?
  3. 华为java敏感异常_JAVA 异常处理
  4. android animate xml,Android Animate旋轉
  5. steam怎么添加idea_如何向您的Steam钱包添加任何金额
  6. ES6、TYPESCRIPT、ATSCRIPT和BABEL是什么玩意儿?
  7. JVM监控:JVM监控指标、JVM监控界面实现、Java监控JVM
  8. 优雅的在latex中插入MATLAB代码 | 解决MATLAB代码中文乱码问题
  9. JS的隐式转换与显式转换
  10. 2022-5-7作业