PHP 實現身份證號實名認證功能

2021-08-20 11:33:02 字數 3329 閱讀 5866

實名認證牽涉公安備案系統,需想公安機關申請介面進行驗證。當然,呼叫其他已向公安機關申請了介面的第三方介面一樣可行。否則,只能用身份證生成規則進行驗證,不完全正確,身份證號和姓名也不匹配。如下:

/*/

# document: 檢查符合 gb11643-1999 標準的身份證號碼的正確性

# file:gb11643_1999.func.php fri mar 28 09:42:41 cst 2008 zxing

# updated:fri mar 28 09:42:41 cst 2008

# note: 呼叫函式 check_id();

#/*///

$id =array();

$id = '370882198601064774';

$id = '420502198611281126';

$id = '370882198601064770';

$id = '370882860106477';

$id = '63212519850703214x';

$id = '429021198203221006';

$id = '429036198203211023';

foreach ($id as $key => $value)

#/*/

/*/# 函式功能:計算身份證號碼中的檢校碼

# 函式名稱:idcard_verify_number

# 參數列 :string $idcard_base 身份證號碼的前十七位

# 返回值 :string 檢校碼

/*/function idcard_verify_number($idcard_base)

$factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); //debug 加權因子

$verify_number_list = array('1', '0', 'x', '9', '8', '7', '6', '5', '4', '3', '2'); //debug 校驗碼對應值

$checksum = 0;

for ($i = 0; $i < strlen($idcard_base); $i++)

$mod = $checksum % 11;

$verify_number = $verify_number_list[$mod];

return $verify_number;

}/*/

# 函式功能:將15位身份證公升級到18位

# 函式名稱:idcard_15to18

# 參數列 :string $idcard 十五位身份證號碼

# 返回值 :string

/*/function idcard_15to18($idcard)elseelse

}$idcard = $idcard . idcard_verify_number($idcard);

return $idcard;

}/*/

# 函式功能:18位身份證校驗碼有效性檢查

# 函式名稱:idcard_checksum18

# 參數列 :string $idcard 十八位身份證號碼

# 返回值 :bool

/*/function idcard_checksum18($idcard)

$idcard_base = substr($idcard, 0, 17);

if (idcard_verify_number($idcard_base) != strtoupper(substr($idcard, 17, 1)))else

}/*/

# 函式功能:身份證號碼檢查介面函式

# 函式名稱:check_id

# 參數列 :string $idcard 身份證號碼

# 返回值 :bool 是否正確

/*/function check_id($idcard)

if(idcard_checksum18($idcard))else

}else

}

網上很多關於實名認證的參考文章,多數用的是聚合資料的認證介面:

參考文章:

而我今天要介紹的是阿里雲的實名認證介面呼叫,優勢在於:簡單、快捷、實惠:

請求方式:get

返回型別:json

請求引數:

名稱型別

是否必須

描述cardno

string

必選身份證號碼

name

string

必選姓名

請求示例:

curl_setopt($curl, curlopt_returntransfer, true);    //此處設定返回頭資訊

curl_setopt($curl, curlopt_header, false);    //是否顯示頭資訊,false為不顯示

返回示例:

身份證號驗證

原文 身份證號驗證 public static boolean isidnumber string idnumber 定義判別使用者身份證號的正規表示式 15位或者18位,最後一位可以為字母 string regularexpression 1 9 d 18 19 20 d 0 1 9 10 11 ...

身份證號驗證

身份證號組成 17位數字 1位校驗碼 位址碼 前六位 出生日期碼 第七位至第十位 順序碼 第十五位至十七位 對同年同月同日生的人便定的順序號,順序號奇數為男生,偶數為女生 檢驗碼 第十八位 0 9 x var acity function iscarid sid d x i.test sid ret...

PHP 精確驗證身份證號

check class check 是數值 if is numeric num else elseelse 省市縣 6位 areanum substr num,0,6 出生年月 8位 datenum substr num,6,8 性別 3位 num substr num,14,3 校驗碼 1位 en...