如何对网站用户进行实名认证

2016年国家网信办发布了《移动互联网应用程序信息服务管理规定》,明确了用户实名认证的要求;一是按照“后台实名、前台自愿”的原则,对注册用户进行真实身份信息认证;二是建立健全用户信息安全保护机制;三是建立健全信息内容审核管理机制,对发布违法违规信息内容的,视情采取警示、限制功能、暂停更新、关闭账号等处置措施;四是依法保障用户知情权和选择权;五是尊重和保护知识产权,不得制作、发布侵犯他人知识产权的应用程序;六是记录用户日志信息,并保存六十日。

对于目前主流的互联网系统实名认证方案有以下三种:

一、身份证实名认证

系统强制用户注册时填写个人的姓名和身份证号码,通调用第三方接口核验身份证号和姓名是否一致。这是一种较为简单的实名认证方式,很多验证是否是未成年人的系统多使用这种方案,因为身份证号码内含有出生日期。

发送数据:                          

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

返回数据:

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

 详情:身份证实名认证接口(阿里云)

二、手机号实名认证
当用户在注册时通过短信验证码确认手机号为用户持有后,接下来强制用户填写姓名和身份证号码,然后在后台通过调用第三方接口确认填写的身份证信息是不是该手机号在运营商办理时使用的身份证,以此确认用户信息切实准确。这是一种较准确的实名认证方式,由于办理手机号需要本人持身份证到营业厅办理,能够认证成功表示确系本人操作,也是大多数系统使用的认证方式。

发送数据:

Map<String, String> bodys = new HashMap<String, String>();  
bodys.put("idNo", "350298189012083221");  
bodys.put("name", "张三");  
bodys.put("phoneNo", "13511112222");  

返回数据:

{  
  "name": "张三",  
  "idNo": "359345189012085813",  
  "phoneNo": "13511112222",  
  "respMessage": "身份证信息匹配",  
  "respCode": "0000"  
}  

详情:三网手机号实名认证接口(阿里云)

三、银行卡实名认证

对于金融类系统,代收付业务离不开银行卡,对绑卡认证可以较为准确的核验用户信息,并且确保用户将来使用该银行卡无后顾之忧。具体流程为:先使用手机号注册基本信息,在到主界面绑卡,绑卡时填写银行卡号、姓名、身份证号码再加上已经注册了的手机号4个要素发送至第三方接口进行核验,如果验证通过表明该银行卡为用户本人所有,可以用于收付款业务。为避免套现风险一般绑定借记卡。

发送数据:

Map<String, String> bodys = new HashMap<String, String>();  
bodys.put("ReturnBankInfo", "YES");  
bodys.put("cardNo", "62155811111111111");  
bodys.put("idNo", "340421199922225555");  
bodys.put("name", "张三");  
bodys.put("phoneNo", "13522221111");  

返回数据:

{  
  "name": "张三",  
  "cardNo": "6225756663322156",  
  "idNo": "34042158962596321",  
  "phoneNo": "13699995555",  
  "respMessage": "结果匹配",  
  "respCode": "0000",  
  "bankName": "招商银行",  
  "bankKind": "招商银行信用卡",  
  "bankType": "信用卡",  
  "bankCode": "CMB"  
}  

详情:银行卡四要素实名认证接口(阿里云)

如果用户只有付款需求,绑卡时只验证3要素即可,即:银行卡号、姓名、身份证号码。(银行代付业务一般只需要银行卡号、姓名、身份证号、金额)

发送数据:

 Map<String, String> bodys = new HashMap<String, String>();
bodys.put("cardNo", "62155811111111111");
bodys.put("idNo", "340421199922225555");
bodys.put("name", "张三");

返回数据:

{
  "name": "张三",
  "cardNo": "6215522222222223333",
  "idNo": "3404529999888855551111",
  "respMessage": "信息匹配",
  "respCode": "0000",
  "bankName": "中国工商银行",
  "bankKind": "工商银行",
  "bankType": "借记卡",
  "bankCode": "ICBC"
}

详情:银行卡三要素实名认证接口(阿里云)


每个产品页面中间有对应的接口文档和实例代码,密钥在购买成功了的控制台里查看即可!

如果大家在搬砖过程中遇到此类问题可以加博主QQ:1773542055,共同讨论ヾ(◍°∇°◍)ノ゙

我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。

原文地址:https://www.cnblogs.com/ruidongjun/p/14942489.html