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

前提条件

安装SDK

关于Go SDK源代码,请参见Go SDK

通过go mod来管理项目依赖:
go get github.com/alibabacloud-go/cloudauth-20200618

示例

  • 方式一:不使用本地证件示例
    package main
    
    import (
        "fmt"
    
        cloudauth "github.com/alibabacloud-go/cloudauth-20200618/client"
        rpc "github.com/alibabacloud-go/tea-rpc/client"
        util "github.com/alibabacloud-go/tea-utils/service"
    )
    
    func main() {
        config := new(rpc.Config)
    
        // 通过以下代码创建Config实例并初始化。
            // 您的AccessKey ID。
        config.SetAccessKeyId("AccessKey").
            // 您的AccessKey Secret。
            SetAccessKeySecret("AccessSecret").
            // 设置RegionId,RegionId为固定值。
            SetRegionId("cn-hangzhou").
            // 设置Endpoint,Endpoint为固定值。
            SetEndpoint("cloudauth.aliyuncs.com")
            // 设置http代理。
            // SetHttpProxy("http://xxx.xxx.xxx.xxx:9999").
            // 设置https代理。
            // SetHttpsProxy("https://username:password@xxx.xxx.xxx.xxx:9999")
    
        client, err := cloudauth.NewClient(config)
        if err != nil {
            panic(err)
        }
    
        // 通过以下代码创建RuntimeObject实例并设置运行参数。
        runtimeObject := new(util.RuntimeOptions).
            // 设置不自动重试。
            SetAutoretry(false).
            // 设置连接超时时间(单位ms)。
            SetConnectTimeout(10000).
            // 设置调用超时时间(单位ms)。
            SetReadTimeout(10000)
    
        // 通过以下代码创建API请求并设置参数。
        request := new(cloudauth.ElementSmartVerifyRequest).
            SetSceneId(200xxxx).
            SetOuterOrderNo("商户请求的唯一标识").
            SetMode("OCR_VERIFY_ID_NAME").
            // 固定值。
            SetCertType("IDENTITY_CARD").
            SetCertUrl("https://www.aliyun.com/test.jpeg")
            // SetCertName("张三").
            // SetCertNo("18位身份证号").
            // SetCertNationalEmblemUrl("https://www.aliyun.com/test.jpeg")
    
        // 通过以下代码发起请求并处理应答或异常。
        response, err := client.ElementSmartVerify(request, runtimeObject)
        if err != nil {
            fmt.Println(err.Error())
        }
        fmt.Println(*response.Message)
        fmt.Println(*response.Code)
        fmt.Println(*response.ResultObject.Passed)
        fmt.Println(*response.ResultObject.CertifyId)
        fmt.Println(*response.ResultObject.SubCode)
        fmt.Println(*response.ResultObject.MaterialInfo)
    }
  • 方式二:使用本地证件示例
    package main
    
    import (
        "fmt"
        "os"
    
        cloudauth "github.com/alibabacloud-go/cloudauth-20200618/client"
        rpc "github.com/alibabacloud-go/tea-rpc/client"
        util "github.com/alibabacloud-go/tea-utils/service"
    )
    
    func main() {
        config := new(rpc.Config)
    
        // 通过以下代码创建Config实例并初始化。
            // 您的AccessKey ID。
        config.SetAccessKeyId("AccessKey").
            // 您的AccessKey Secret。
            SetAccessKeySecret("AccessSecret").
            // 设置RegionId,RegionId为固定值。
            SetRegionId("cn-hangzhou").
            // 设置Endpoint,Endpoint为固定值。
            SetEndpoint("cloudauth.aliyuncs.com")
            // 设置http代理。
            // SetHttpProxy("http://xxx.xxx.xxx.xxx:9999").
            // 设置https代理。
            // SetHttpsProxy("https://username:password@xxx.xxx.xxx.xxx:9999")
    
        client, err := cloudauth.NewClient(config)
        if err != nil {
            panic(err)
        }
    
        // 通过以下代码创建RuntimeObject实例并设置运行参数。
        runtimeObject := new(util.RuntimeOptions).
            // 设置不自动重试。
            SetAutoretry(false).
            // 设置连接超时时间(单位ms)。
            SetConnectTimeout(10000).
            // 设置调用超时时间(单位ms)。
            SetReadTimeout(10000)
    
        // 通过以下代码创建API请求并设置参数。
        file, err := os.Open("本地文件路径")
        if err != nil {
            panic(err)
        }
        request := new(cloudauth.ElementSmartVerifyAdvanceRequest).
            SetSceneId(20022).
            SetOuterOrderNo("商户请求的唯一标识").
            SetMode("OCR_VERIFY_ID_NAME").
            // 固定值。
            SetCertType("IDENTITY_CARD").
            SetCertFileObject(file)
            // SetCertName("张三").
            // SetCertNo("18位身份证号").
            // SetCertNationalEmblemUrl("https://www.aliyun.com/test.jpeg")
    
        // 通过以下代码发起请求并处理应答或异常。
        response, err := client.ElementSmartVerifyAdvance(request, runtimeObject)
        if err != nil {
            fmt.Println(err.Error())
        }
        fmt.Println(*response.Message)
        fmt.Println(*response.Code)
        fmt.Println(*response.ResultObject.Passed)
        fmt.Println(*response.ResultObject.CertifyId)
        fmt.Println(*response.ResultObject.SubCode)
        fmt.Println(*response.ResultObject.MaterialInfo)
    
        // 通过以下代码关闭资源。
        file.Close()
    }