使用阿里灵杰AI开放服务-个人证照识别

  1. 先创建RAM用户然后添加权限
权限 介绍
AliyunOCRFullAccess 文字识别 OCR 的管理权限
AliyunOCRReadOnlyAccess 文字识别 OCR 的只读权限

image.png

  1. 开通服务 image.png
  2. 查看Endpoint区域

    Endpoint 请参考 https://api.aliyun.com/product/ocr-api

  3. 代码实现

     use AlibabaCloud\Credentials\Credential;
     use AlibabaCloud\Credentials\Credential\Config as CredentialConfig;
     use AlibabaCloud\Dara\Models\RuntimeOptions;
     use AlibabaCloud\SDK\Ocrapi\V20210707\Models\RecognizeIdcardRequest;
     use AlibabaCloud\SDK\Ocrapi\V20210707\Ocrapi;
     use AlibabaCloud\Tea\Exception\TeaError;
     use Darabonba\OpenApi\Models\Config;
     use think\Exception;
    
     /**
      * 使用凭据初始化账号 Client
      * @return Ocrapi Client
      */
     public static function createClient()
     {
         // 工程代码建议使用更安全的无 AK 方式,凭据配置方式请参见:https://help.aliyun.com/document_detail/311677.html。
         $credConfig = new CredentialConfig([
             'type' => 'access_key',
             'accessKeyId' => '',
             'accessKeySecret' => '',
         ]);
         $credential = new Credential($credConfig);
         $config = new Config([
             'credential' => $credential,
             // Endpoint 请参考 https://api.aliyun.com/product/ocr-api
             "endpoint" => "ocr-api.cn-hangzhou.aliyuncs.com"
         ]);
         return new Ocrapi($config);
     }
    
     // 使用
     $client = $this->createClient();
     $recognizeIdcardRequest = new RecognizeIdcardRequest([
         "url" => 'https://blog.alonesky.com/storage/cover/2019/04/16/RyX8AjdsULdGcpvB6T3t4UibNFzluEgiCCgU65dt.jpg',
     ]);
     try {
         $response = $client->recognizeIdcardWithOptions($recognizeIdcardRequest, new RuntimeOptions([]));
         $result = $response->body->data;
         $result = json_decode($result, true);
         $data = [
             'name' => $result['data']['face']['data']['name'],
             'sex' => $result['data']['face']['data']['sex'],
             'ethnicity' => $result['data']['face']['data']['ethnicity'],
             'birthDate' => $result['data']['face']['data']['birthDate'],
             'address' => $result['data']['face']['data']['address'],
             'idNumber' => $result['data']['face']['data']['idNumber'],
         ];
         return $this->showSuccess($data, '识别成功');
     } catch (Exception $error) {
         if (!($error instanceof TeaError)) {
             $error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
         }
         // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
         // 错误 message
         var_dump($error->message);
         // 诊断地址
         var_dump($error->data["Recommend"]);
     }
    

相关链接:

阿里云API文档:https://api.aliyun.com/api-tools/sdk/ocr-api?version=2021-07-07&language=php-tea&tab=primer-doc

RAM用户链接:https://ram.console.aliyun.com/users

服务开通:https://ocr.console.aliyun.com/overview

(阿里云另一款云市场应用,非本服务)【阿里官方】身份证OCR文字识别https://market.aliyun.com/detail/cmapi010401#sku=yuncode4401000018