Java使用阿里云接口进行身份证实名认证的示例实现

网友投稿 579 2022-12-01


Java使用阿里云接口进行身份证实名认证的示例实现

如今随着互联网产业的多元化发展,尤其是互联网金融,O2O,共享经济等新兴商业形式的兴起,企业对实名认证业务的数据形式和数据质量有了更高的需求。如今也衍生出身份证实名认证业务,通过接口将身份证号码、姓名上传至阿里云,再与全国公民身份信息系统进行匹配,判断信息的一致性。

在使用接口服务的方面我推荐使用技术实力强大的阿里云;

附上:阿里云最高¥2000云产品通用代金券

首先点击:【阿里云API接口】获取相应的订单后在控制台中可以得到您的appcode;

发送数据:

bodys.put("idNo", "340421190210182345");

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

返回数据:

{

"name": "张三",

"idNo": "340421190710145412",

"respMessage": "身份证信息匹配",

"respCode": "0000",

"province": "安徽省",

"city": "淮南市",

"county": "凤台县",

"birthday": "19071014",

"sex": "M",

"age": "111"

}

具体实现类:

public static void main(String[] args) {

String host = "https://idenauthen.market.alicloudapi.com";

String path = "/idenAuthentication";

String method = "POST";

String appcode = "你自己的AppCode";

Map headers = new HashMap();

//最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105

headers.put("Authorization", "APPCODE " + appcode);

//根据API的要求,定义相对应的Content-Type

headers.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");

Map querys = new HashMap();

Map bodys = new HashMap();

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();

}

}

工具类HttpUtils:

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 headers,

Map querys)

throws Exception {

HttpClient httpClient = wrapClient(host);

HttpGet request = new HttpGet(buildUrl(host, path, querys));

for (Map.Ehttp://ntry 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 headers,

Map querys,

Map bodys)

throws Exception {

HttpClient httpClient = wrapClient(host);

HttpPost request = new HttpPost(buildUrl(host, path, querys));

for (Map.Entry e : headers.entrySet()) {

request.addHeader(e.getKey(), e.getValue());

}

if (bodys != null) {

List nameValuePairList = new ArrayList();

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 headers,

Map querys,

String body)

throws Exception {

HttpClient httpClient = wrapClient(host);

HttpPost requevyihwFJlbst = new HttpPost(buildUrl(host, path, querys));

for (Map.Entry 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 headers,

Map querys,

byte[] body)

throws Exception {

HttpClient httpClient = wrapClient(host);

HttpPost request = new HttpPost(buildUrl(host, path, querys));

for (Map.Entry 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

* @paramvyihwFJlb querys

* @param body

* @return

* @throws Exception

*/

public static HttpResponse doPut(String host, String path, String method,

Map headers,

Map querys,

String body)

throws Exception {

HttpClient httpClient = wrapClient(host);

HttpPut request = new HttpPut(buildUrl(host, path, querys));

for (Map.Entry 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 headers,

Map querys,

byte[] body)

throws Exception {

HttpClient httpClient = wrapClient(host);

HttpPut request = new HttpPut(buildUrl(host, path, querys));

for (Map.Entry 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 headers,

Map querys)

throws Exception {

HttpClient httpClient = wrapClient(host);

HttpDelete request = new HttpDelete(buildUrl(host, path, querys));

for (Map.Entry e : headers.entrySet()) {

request.addHeader(e.getKey(), e.getValue());

}

return httpClient.execute(request);

}

private static String buildUrl(String host, String path, Map 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 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);

}

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Jmeter自定义函数base64加密实现过程解析
下一篇:Spring实现源码下载编译及导入IDEA过程图解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~