api_url . $this->version . '/idcard/check'; $this->params['businessId'] = "45a8fd254b4649e9bd25d773ac7ab666"; $this->params = array_merge($this->params,$params); // 获取签名 $this->params['signature'] = $this->gen_signature(); $this->options["form_params"] = $this->params; $result = $this->httpRuest->postRequest($api_url,$this->options); // 记录日志,ca认证要求 Log::getInstance("VerifyDun-IdCard-checkIdCard")->info(json_encode($result,JSON_UNESCAPED_UNICODE)); if (empty($result)){ return "身份证认证失败"; } if ($result['code'] != "200"){ if (!empty($result['msg'])){ return $result['msg']; } return "身份证认证失败"; } if (empty($result['result'])){ return "身份证认证失败"; } // 记录日志 $this->recordLog($params['dataId'],$params['name'],$params['cardNo'],$result); // 处理不通过情况 if ($result['result']['status'] == 2){ switch ($result['result']['reasonType']) { case 2: return "输入姓名和身份证号不一致"; case 3: return "查无此身份证"; case 4: return "身份证照片信息与输入信息不一致"; default: return "身份证认证失败"; } } // 处理status为其他情况 if ($result['result']['status'] != 1){ return "身份证认证失败"; } return ""; } catch (\Exception $e) { throw new BusinessException($e->getMessage()); } } /** * 记录日志 * @param string $data_id * @param string $name * @param string $card_no * @param array $result * @return void */ public function recordLog(string $data_id,string $name,string $card_no,array $result): void { try { $data = array(); $data['name'] = $name; $data['card_no'] = $card_no; $data['status'] = $result['result']['status']; $data['data_id'] = $data_id; $data['task_id'] = $result['result']['taskId']; $data['content'] = json_encode($result,JSON_UNESCAPED_UNICODE); LogIdCard::addLogIdCard($data); }catch (\Throwable $e){ Log::getInstance("VerifyDun-IdCard-checkIdCard")->error($e->getMessage()); } } }