110 lines
3.2 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace Extend\VerifyDun;
use App\Constants\HttpEnumCode;
use App\Exception\BusinessException;
use App\Model\LogIdCard;
use App\Utils\HttpRequest;
use App\Utils\Log;
use GuzzleHttp\Exception\GuzzleException;
/**
* 实证认证
*/
class IdCard extends Base
{
/**
* 实证认证
* @param array $params
* @return string
* @throws GuzzleException
*/
public function checkIdCard(array $params): string
{
try {
// 组合请求地址
$api_url = $this->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());
}
}
}