本文介绍了卡证核身方案纯服务端集成的PHP SDK调用示例。

前提条件

安装SDK

关于PHP SDK源代码,请参见PHP SDK包

  • 通过Composer来管理项目依赖(推荐)
    composer require alibabacloud/cloudauth-20200618 1.0.3
  • 使用composer.json文件
    {
       "require": {
           "alibabacloud/cloudauth-20200618": "1.0.3"    
        }
    }

如果因网络问题导致无法按照上述操作安装SDK,您可以使用阿里云Composer全量镜像

示例

  • 方式一:不使用本地证件示例
    <?php
    require __DIR__ . '/vendor/autoload.php';
    
    use AlibabaCloud\SDK\Cloudauth\V20200618\Cloudauth;
    use AlibabaCloud\SDK\Cloudauth\V20200618\Models\ElementSmartVerifyRequest;
    use AlibabaCloud\Tea\Rpc\Rpc\Config;
    use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
    
    // 通过以下代码创建Config实例并初始化。
    $config = new Config();
    // 您的AccessKey ID。
    $config->accessKeyId = "AccessKey";
    // 您的AccessKey Secret。
    $config->accessKeySecret = "AccessSecret";
    // 设置您的regionId,regionId为固定值。
    $config->regionId = "cn-hangzhou";
    // 设置您的endpoint,endpoint为固定值。
    $config->endpoint = "cloudauth.aliyuncs.com";
    // 设置http代理。
    //$config->httpProxy = "http://xxx.xxx.xxx.xxx:9999";
    // 设置https代理。
    //$config->httpsProxy = "https://username:password@xxx.xxx.xxx.xxx:9999";
    $client = new Cloudauth($config);
    
    // 通过以下代码创建RuntimeObject实例并设置运行参数。
    $runtime = new RuntimeOptions();
    // 设置连接超时时间(单位ms)。
    $runtime->connectTimeout = 10000;
    // 设置调用超时时间(单位ms)。
    $runtime->readTimeout = 10000;
    
    // 通过以下代码创建API请求并设置参数。
    $request = new ElementSmartVerifyRequest();
    $request->sceneId=2000xxxx;
    //设置商户请求的唯一标识。
    $request->outerOrderNo='xxx';   
    // 模式。
    $request->mode='OCR_VERIFY_ID_NAME';
    $request->certType='IDENTITY_CARD';
    // $request->certName='张三';
    // $request->certNo='18位身份证号';
    // $request->certNationalEmblemUrl='https://www.aliyun.com/test.jpeg';
    $request->certUrl='https://www.aliyun.com/test.jpeg';
    
    // 通过以下代码发起请求并处理应答和异常。
    try {
        $response = $client->elementSmartVerify($request, $runtime);
        var_dump($response->requestId);
        var_dump($response->code);
        var_dump($response->message);
        var_dump($response->resultObject->passed);
        var_dump($response->resultObject->certifyId);
        var_dump($response->resultObject->subCode);
        var_dump($response->resultObject->materialInfo);
    } catch (TeaUnableRetryError $e) {
        var_dump($e->getMessage());
        var_dump($e->getErrorInfo());
        var_dump($e->getLastException());
        var_dump($e->getLastRequest());
    } catch (Exception $e) {
        var_dump($e->getMessage());
        var_dump($e->getCode());
    }
  • 方式二:使用本地证件示例
    <?php
    require __DIR__ . '/vendor/autoload.php';
    
    use AlibabaCloud\SDK\Cloudauth\V20200618\Cloudauth;
    use AlibabaCloud\SDK\Cloudauth\V20200618\Models\ElementSmartVerifyAdvanceRequest;
    use AlibabaCloud\Tea\Rpc\Rpc\Config;
    use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
    use GuzzleHttp\Psr7\Stream;
    
    // 通过以下代码创建Config实例并初始化。
    $config = new Config();
    // 您的AccessKey ID。
    $config->accessKeyId = "AccessKey";
    // 您的AccessKey Secret。
    $config->accessKeySecret = "AccessSecret";
    // 设置您的regionId,regionId为固定值。
    $config->regionId = "cn-hangzhou";
    // 设置您的endpoint,endpoint为固定值。
    $config->endpoint = "cloudauth.aliyuncs.com";
    // 设置http代理。
    //$config->httpProxy = "http://xxx.xxx.xxx.xxx:9999";
    // 设置https代理。
    //$config->httpsProxy = "https://username:password@xxx.xxx.xxx.xxx:9999";
    $client = new Cloudauth($config);
    
    // 通过以下代码创建RuntimeObject实例并设置运行参数。
    $runtime = new RuntimeOptions();
    // 设置连接超时时间(单位ms)。
    $runtime->connectTimeout = 10000;
    // 设置调用超时时间(单位ms)。
    $runtime->readTimeout = 10000;
    
    // 通过以下代码创建API请求并设置参数。
    $request = new ElementSmartVerifyAdvanceRequest();
    $request->sceneId=2000xxx;
    //设置商户请求的唯一标识。
    $request->outerOrderNo='xxx';  
    // 模式。
    $request->mode='OCR_VERIFY_ID_NAME';
    $request->certType='IDENTITY_CARD';
    // $request->certName='张三';
    // $request->certNo='18位身份证号';
    // $request->certNationalEmblemUrl='https://www.aliyun.com/test.jpeg';
    $file = fopen('xxx', 'r');   //设置本地文件路径。
    $request->certFileObject = new Stream($file);
    
    // 通过以下代码发起请求并处理应答。
    try {
        $response = $client->elementSmartVerifyAdvance($request, $runtime);
        var_dump($response->requestId);
        var_dump($response->code);
        var_dump($response->message);
        var_dump($response->resultObject->passed);
        var_dump($response->resultObject->certifyId);
        var_dump($response->resultObject->subCode);
        var_dump($response->resultObject->materialInfo);
    } catch (TeaUnableRetryError $e) {
        var_dump($e->getMessage());
        var_dump($e->getErrorInfo());
        var_dump($e->getLastException());
        var_dump($e->getLastRequest());
    } catch (Exception $e) {
        var_dump($e->getMessage());
        var_dump($e->getCode());
    }
    
    // 通过以下代码关闭资源。
    fclose($file);