#### 1. 前言 --- [阿里云云市場實名認證接口](https://market.aliyun.com/products/57000002/cmapi00037883.html?spm=5176.730005.result.14.49ec3524lCcMdf#sku=yuncode31883000010 "阿里云云市場實名認證接口") 最近在做一個手機 APP 項目,需要用到實名認證接口,這是公司在阿里云云市場找的一個接口 #### 2. 代碼示例 --- 將下面函數中的 appcode 修改為云市場的真實 appcode 即可使用 ```php /** * 阿里云實名認證 API * @param $realName 姓名 * @param $cardNo 身份證號 * @return boolean true|false 認證成功|認證失敗 */ function identityAuth($realName, $cardNo) { $host = "https://zid.market.alicloudapi.com"; $path = "/idcheck/Post"; $method = "POST"; $appcode = ''; if (empty($appcode)) { throw new \Exception("未配置 App Code"); } $headers = [ "Authorization:APPCODE {$appcode}", "Content-Type:application/x-www-form-urlencoded; charset=UTF-8", ]; $bodys = "cardNo={$cardNo}&realName={$realName}"; $url = $host . $path; $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); if (1 == strpos("$" . $host, "https://")) { curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); } curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys); $result = curl_exec($curl); if (empty($result)) { throw new \Exception("實名認證接口異常"); } $array = json_decode($result, true); if ($array['error_code'] == 0 && $array['result']['isok'] === true) { return true; // 認證成功 } else { return false; // 認證失敗 } } ``` 調用示例 ```php // 調用 API 進行實名認證 if (!identityAuth($name, $idcard)) { throw new \Exception("認證失敗,請檢查填寫的信息"); } ``` #### 3. 返回值示例 --- 本文介紹的 API 返回值示例,也就是 `identityAuth()` 函數中的 `$result` 的值 特別注意: error_code 只表示 API 請求成功,實名認證結果必須使用 `result.isok` 判斷 認證成功時的返回值: 當姓名和身份證號碼匹配時, 認證成功,isok 的值為 true ```json { "error_code":0, "reason":"成功", "result":{ "realname":"梁**", "idcard":"410225************", "isok":true, "IdCardInfor":{ "province":"河南省", "city":"開封市", "district":"蘭考縣", "area":"河南省開封市蘭考縣", "sex":"男", "birthday":"1999-10-16" } }, "sn":"0809093446637651130008663231" } ``` 認證失敗時的返回值: 當姓名和身份證號碼錯誤或不匹配時, 返回值如下所示,isok 的值為 false ```json { "error_code":0, "reason":"成功", "result":{ "realname":"張*", "idcard":"410225************", "isok":false, "IdCardInfor":null }, "sn":"080909320535865586360802173" } ```