• 如何对用户的绑定的身份证真实性进行实名认证(java)


    现在随着对用户实名制的要求,因此用户提交的身份证信息经查需要检查是否为真实信息,我们需要对用户提交的身份证信息进行核验,具体操作步骤如下:

    第一步

    到认证平台注册账号:云亿互通--实名认证服务 (yunyidata.com),然后即可获取秘钥。

    第二步

    调试程序,下面依据java为例:

    import net.sf.json.JSONObject;
    
    import org.apache.http.HttpEntity;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    
    import com.netgate.util.MD5;
    
    // 公民身份证实名认证实例代码
    public class IDTest {
    
        public static void main(String[] args) {
            
            // 创建默认的httpClient实例
            CloseableHttpClient httpclient = HttpClients.createDefault();
            HttpPost httppost = new HttpPost("https://service.yunyidata.com/idAuthentic");
            
            // 创建参数队列
            String merNo = "26001";
            String name = "张三";
            String idNo = "350783199806195231";
            String md5Key = "12345678";   // 在【管理后台-->安全管理-->秘钥信息】里面获取
            String MD5Info = "";
            
            MD5 md5 = new MD5();
            String signStr = "merNo=" + merNo + "&name=" + name + "&idNo=" + idNo + "&" + md5Key;
            MD5Info = md5.getMD5Info(signStr);
    
            List<NameValuePair> formparams = new ArrayList<NameValuePair>();
            formparams.add(new BasicNameValuePair("merNo", merNo));
            formparams.add(new BasicNameValuePair("name", name));
            formparams.add(new BasicNameValuePair("idNo", idNo));
            formparams.add(new BasicNameValuePair("MD5Info", MD5Info));
            
            UrlEncodedFormEntity uefEntity;
            try {
                uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8");
                httppost.setEntity(uefEntity);
                System.out.println("executing request " + httppost.getURI());
                CloseableHttpResponse response = httpclient.execute(httppost);
                try {
                    HttpEntity entity = response.getEntity();
                    if (entity != null) {
                        String entitys = EntityUtils.toString(entity, "UTF-8");
                        System.out.println("--------------------------------------");
                        System.out.println("Response content: " + entitys);
                        System.out.println("--------------------------------------");
                        
                        Map<String, String> data = new LinkedHashMap<String, String>();
                        JSONObject json = JSONObject.fromObject(entitys);
                        Iterator<?> it = json.keys();
                        // 遍历jsonObject数据,添加到Map对象
                        while(it.hasNext()){
                            String key = String.valueOf(it.next());
                            String values = String.valueOf(json.get(key));
                            if(key.equals("respMessage") || "MD5Info".equals(key)){
                                continue;
                            }
                            data.put(key, values);
                        }
                        String respMessage = (String) json.get("respMessage");
                        String matchMessage = (String) json.get("matchMessage");
                        System.out.println("respMessage: " + respMessage);
                        System.out.println("matchMessage: " + matchMessage);
                    }
                } finally {
                    response.close();
                }
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (UnsupportedEncodingException e1) {
                e1.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                // 关闭连接,释放资源
                try {
                    httpclient.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    
    }

    上线前建议与客服沟通下,确认无误即可上线啦!

  • 相关阅读:
    无限极分类查找所有子孙节点的改进算法
    递归方式将数组变对象
    中文编码与解码
    MYSQL数据库
    python之进程池与线程池
    ORM介绍
    python之协程
    windows10如何将python2和python3添加到环境变量中
    互斥锁、死锁现象、递归锁、信号量
    python之GIL(Global Interpreter Lock)
  • 原文地址:https://www.cnblogs.com/ruidongjun/p/16210729.html
Copyright © 2020-2023  润新知