身份证实名认证

本文介绍了一个结合前端与后端技术的身份证实名认证系统。前端负责收集用户输入的姓名及身份证号,并进行初步验证;后端采用PHP语言,通过阿里云提供的API接口完成最终的身份验证。此外,还提供了将验证结果存入数据库的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前端处理:

      页面认证功能:

          姓名(长度)认证:2-15位中文  (js实现)

         身份证验证--初级-格式验证:18位数字或17位数字加x组成;

二、后台处理---使用php

准备工作:

1、阿里云--搜索云市场-选择:全国身份证实名认证-需先购买,不能免费测试。

2、 Api接口--选择:身份证实名认证最新版--

3、 api调用--选择:API 简单身份认证调用方法(APPCODE)

4、编写php

4-1、官方服务--

https://market.aliyun.com/products/56928004/cmapi016424.html?spm=5176.10695662.1996646101.searchclickresult.5fe07f7ee6DUHq#sku=yuncode1042400000


4-1-1、在线接口调用测试

    可以在线测试该服务是否可以达到你的功能需求:输入一个你知道的身份证信息,看是否能验证成功


4-1-2、参考请求示例--参考自上面的连接

 

 

4-2、新建php---

        在php中引入前端页面的数据接口,正常引入即可,完整的php代码如下

<?php
//接口地址
  $url = 'http://1.api.apistore.cn/idcard3';
//请正确填写appcode,如果填写错误阿里云会返回错误
//appcode查看地址 https://market.console.aliyun.com/imageconsole/
  $appCode = '你的appcode';
//引入接口: 姓名 身份证号码
    @$carDno=$_REQUEST["carId"]or die('{"code":-1,"msg":"身份证号码是必须的"}');
    @$carDname=$_REQUEST["uName"]or die('{"code":-1,"msg":"姓名是必须的"}');
$params['cardNo']=$carDno;
//身份证姓名
$params['realName']=$carDname;
//发送远程请求;
$result = APISTORE_POST($url, $params, $appCode);
//返回验证结果判断
if ($result['error_code'] == 0){
    //恭喜您,您的身份证姓名和号码一致
   echo $result['reason'];
} else {
    //验证失败, 信息不一致
    echo $result['reason'];
}
//输出返回结果
//print_r("<pre>");
//print_r($result);
/**
 * APISTORE_POST 获取数据
 * @param $url
 * @param array $params
 * @param $appCode
 * @return mixed
 */
function APISTORE_POST($url, $params = array(), $appCode)
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array (
        'Authorization:APPCODE '.$appCode
    ));
    //如果是https协议
    if (stripos($url, "https://") !== FALSE) {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
        //CURL_SSLVERSION_TLSv1
        curl_setopt($curl, CURLOPT_SSLVERSION, 1);
    }
    //通过POST方式提交
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($params));
    //超时时间
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 60);
    curl_setopt($curl, CURLOPT_TIMEOUT, 60);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    //返回内容
    $callbcak = curl_exec($curl);
    //http状态码
    $httpCode = curl_getinfo($curl,CURLINFO_HTTP_CODE);
    //阿里云http统一状态码,请参阅 https://help.aliyun.com/document_detail/43906.html
    if (in_array($httpCode,array(400,403)))
        die("请确认您的appCode是否正确,或有剩余次数");
    //关闭,释放资源
    curl_close($curl);
    //返回内容JSON_DECODE
    return json_decode($callbcak, true);
}
?>

          上面的php代码执行后返回的过是:验证成功或验证不成功,根据返回结构的length长度去和前端做交互的,length<5则提示实名认证通过,反之;

          如果需要在数据库保存用户的实名认证信息,只需在验证通过的条件下写插入到数据库中php语句即可:下面是关于验证成功后插入到数据库的示例:

//返回验证结果判断
if ($result['error_code'] == 0){
    //恭喜您,您的身份证姓名和号码一致
  // echo $result['reason'];
        header("Content-Type:application/json;charset=utf-8");
        $conn=mysqli_connect("127.0.0.1","root","","mj",3306);
        mysqli_query($conn,"SET NAMES UTF8");
       $sql="INSERT INTO rel_msg VALUES(null,'$carDname','$carDno')";
        $result=mysqli_query($conn,$sql);
             if($result===true){   echo '{"code":1,"msg":"验证成功"}';
             }else{      echo '{"code":-1,"msg":"验证失败"}';  };
} else {
    //验证失败, 信息不一致
    echo $result['reason'];
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值