实现:
用户在注册时,填写的真实姓名要跟身份证号能够匹配的上,才可以进行下一步操作,如果匹配不上,就弹出提示性信息,【代码部分可复制,后期会将所有功能都集合在一个框架中,方便大家就地取材使用】
具体代码部分:
可复制部分
/********************************************************************************************/
html部分
<div>
<p>真实姓名: <input id="u_name" type="text" name="name" οnkeyup="this.value=this.value.replace(/\s+/g,'')"/></p>
<p>身份证号: <input id="idcard" type="text" value="" name="idcard" οnkeyup="this.value=this.value.replace(/\s+/g,'')" /></p>
</div>
/******************************************************************************************/
js部分
<script type="text/javascript">
$("#idcard").blur(function(){
var url = "{{:U('User/check_idcard')}}";
var data = {name:$("#u_name").val(),idcard:$("#idcard").val()};
if($("#idcard").val() == ""){
layer.msg('请填写有效的身份证号',{icon:2});
return;
}
$.post(url,data,function(res){
if(res.resp.code == 0){
//匹配
// layer.msg('您的身份信息匹配',{icon:1})
}else if(res.resp.code == 5){
//不匹配
layer.msg('您的身份信息不匹配,请重新填写真实姓名或身份证号',{icon:2});
$("#idcard").val('');
}else if(res.resp.code == 14){
//无此身份证号码
layer.msg('您的身份信息有误,请重新填写身份证号',{icon:2});
$("#idcard").val('');
}else if(res.resp.code == 96){
//交易失败
layer.msg('交易失败',{icon:2});
$("#idcard").val('');
}
},"json");
})
</script>
/*******************************************************************************************/
php部分
<?php
//身份证实名验证
public function check_idcard(){
$host = "http://idcard.market.alicloudapi.com";
$path = "/lianzhuo/idcard";
$method = "GET";
$appcode = "159a2d3d9a1644f2b75c104bb0ce1088"; //这个是注册的时候返回的appcode值,其他的注册的信息没有在代码中用到,只有appcode在此处用到
$headers = array();
array_push($headers, "Authorization:APPCODE " . $appcode);
$querys = "cardno=".I('idcard')."&name=".I('name'); //这两个参数,即为前台页面传过来的需要匹配的真实姓名以及身份证号
$bodys = "";
$url = $host . $path . "?" . $querys;
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
if (1 == strpos("$".$host, "https://")){
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
}
$ch = curl_exec($curl);
//此处的目的是将head头部响应信息去除掉,仅保留有用的返回的数据,方便前台js部分处理值
if (curl_getinfo($curl, CURLINFO_HTTP_CODE) == '200') {
list($header, $body) = explode("\r\n\r\n", $ch);
}
$res = json_decode($body,true);
$this->ajaxReturn($res);
}
?>