#### 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" } ```