Exemplo n.º 1
0
        public Task <IDCardBackOCRResult> RecognizeIDCardBack(Stream idCardBackImageData)
        {
            var result = new IDCardBackOCRResult
            {
                Issuer      = "Issuer",
                IssueDate   = new DateTime(2008, 2, 21),
                ExpiresDate = new DateTime(2018, 2, 21),
            };

            return(Task.FromResult(result));
        }
Exemplo n.º 2
0
        /// <summary>
        /// 识别身份证背面(国徽面)。
        /// </summary>
        /// <param name="idCardBackImageData"></param>
        /// <returns></returns>
        public async Task <IDCardBackOCRResult> RecognizeIDCardBack(Stream idCardBackImageData)
        {
            string imgBase64;

            using (var ms = new MemoryStream())
            {
                idCardBackImageData.CopyTo(ms);
                imgBase64 = Convert.ToBase64String(ms.ToArray());
            }
            var requestData = new
            {
                image     = imgBase64,
                configure = new
                {
                    side = "back",
                },
            };
            var request = WebRequest.Create(svcUrl);

            request.Method = "POST";
            request.Headers.Add("Authorization", "APPCODE " + appCode);
            request.ContentType = "application/json; charset=UTF-8";
            var requestStream = await request.GetRequestStreamAsync();

            var writer     = new StreamWriter(requestStream);
            var jsonWriter = new JsonTextWriter(writer);

            this.serializer.Serialize(jsonWriter, requestData);
            jsonWriter.Flush();

            var response = await request.GetResponseAsync();

            var responseStream = response.GetResponseStream();
            var result         = this.serializer.Deserialize <dynamic>(new JsonTextReader(new StreamReader(responseStream)));

            if (!(bool)result.success)
            {
                throw new IDCardRecognizeException("Can not recognize");
            }
            var returnResult = new IDCardBackOCRResult
            {
                Issuer      = (string)result.issue,
                IssueDate   = this.parseDate((string)result.start_date),
                ExpiresDate = this.parseDate((string)result.end_date),
            };

            return(returnResult);
        }