
驾驶证OCR识别
企业用户实名使用个人用户实名使用个人用户无法使用
传入驾驶证图片,识别驾驶证基本信息,识别准确率高达99.9%以上,性能更稳定、识别更精准。
价格
¥0元/20次
新用户免费体验,自购买起有效期1个月
选择套餐:

接口名称:驾驶证OCR识别
描述:上传驾驶证,扫描文字返回主页附页信息
请求地址 url:https://api.shuxuntech.com/v1/driving/ocr
请求方式 method:post
请求Content-Type: application/x-www-form-urlencoded
参数:
| 名称 | 参数位置 | 类型 | 是否必填 | 说明 |
|---|---|---|---|---|
| appKey | head | string | 是 | 数勋分配appKey |
| timestamp | head | string | 是 | unix时间毫秒值 |
| sign | head | string | 是 | 签名,说明 |
| image | body | string | 否 | 驾驶证照片base64,不超过1mb |
| imgUrl | body | string | 否 | 驾驶证图片url,不超过1mb |
签名算法说明:
数勋分配的appKey、当前unix时间毫秒值timestamp、数勋分配的appSecret、 按顺序拼接sha256加密得到sign,查看如下示例
appKey = aaa;
timestamp = 1682476904289;
appSecret = bbb;
sign = sha256(appKey+timestamp+appSecret)
正确返回:
{
"code": "0",
"msg": "成功",
"isFee": 1,
"seqNo": "p6khic0rl7fmxxp5lnwbydkn964et28d",
"data": {
"result": 1,
"resultDesc": "识别成功,有数据",
"main": {
"birthday": "1988-04-16",
"issuedBy": "浙江省***市公安局交通警察支队",
"address": "浙江省***市***街道某某小区***室",
"gender": "男",
"validFrom": "",
"version": "2",
"licenseNumber": "3301101988***232",
"validDate": "2013-12-13至2019-12-13",
"nationality": "中国",
"issueDate": "2013-12-13",
"name": "张三",
"category": "C1",
"validFor": ""
},
"second": {
"fileNumber": "3301***215",
"name": "张三",
"licenseNumber": "330110198***232"
}
}
}
错误返回:
{
"code": "1",
"msg": "参数错误",
"isFee": 0,
"seqNo": null,
"data": null
}
返回字段描述:
| 字段名 | 类型 | 描述 |
|---|---|---|
| code | string | 错误码 |
| msg | string | 错误描述 |
| isFee | int | 是否计费(1:计费,0:不计费) |
| seqNo | string | 调用流水号 |
| data | object | 返回数据 |
data对象说明
| 字段名 | 类型 | 描述 |
|---|---|---|
| result | int | 识别结果 |
| resultDesc | string | 识别结果描述 |
| main | object | 主页信息 |
| second | object | 附页信息 |
main对象说明
| 字段名 | 类型 | 描述 |
|---|---|---|
| birthday | string | 生日,yyyy-MM-dd |
| issuedBy | string | 签发机关 |
| address | string | 地址 |
| gender | string | 性别 |
| validFrom | string | 有效日期 |
| version | string | 驾驶证正本版本 |
| licenseNumber | string | 驾驶证号 |
| validDate | string | 有效期限 |
| nationality | string | 国籍 |
| issueDate | string | 初次领证日期 |
| name | string | 姓名 |
| category | string | 准驾车型 |
| validFor | string | 有效年限 |
second对象说明
| 字段名 | 类型 | 描述 |
|---|---|---|
| fileNumber | string | 档案编号 |
| name | string | 姓名 |
| licenseNumber | string | 驾驶证号 |
result扫描结果说明
| 字段值 | 描述 |
|---|---|
| 1 | 识别成功,有数据 |
| 2 | 识别成功,无数据 |
| 3 | 识别失败,无法正确解析、未按要求传入参数、下载图片超时 |
code错误码说明
| code | 说明 |
|---|---|
| 0 | 成功 |
| 1 | 参数错误 |
| 2 | 无记录 |
| 3 | 第三方服务异常 |
| 4 | 签名错误 |
| 5 | 余额不足 |
| 6 | 调用频率超限 |
| 7 | 账号停用 |
| 8 | 接口已停用 |
| 9 | 联系服务商开通接口权限 |
| 10 | ip不在白名单 |
| 11 | 系统异常 |
| 12 | 实名状态错误 |
| 99 | 其他异常,具体返回为准 |
驾驶证OCR
package com.shuxun.data.impl.demo;
import com.shuxun.common.core.util.HttpUtil;
import org.apache.commons.codec.digest.DigestUtils;
import java.util.HashMap;
import java.util.Map;
public class DrivingOcrDemo {
private static final String APP_KEY = "您的appKey";
private static final String APP_SECRET = "您的appSecret";
private static final String API_URL = "https://api.shuxuntech.com/v1/driving/ocr";
public static void main(String[] args) {
String timestamp = System.currentTimeMillis()+"";
String sign = DigestUtils.sha256Hex(APP_KEY + timestamp + APP_SECRET);
Map<String, String> header = new HashMap<>(4);
header.put("appKey", APP_KEY);
header.put("timestamp", timestamp);
header.put("sign", sign);
Map<String, String> params = new HashMap<>(2);
params.put("image", "");
params.put("imgUrl", "");
// 工具类下载地址 https://file.shuxuntech.com/other/code/util.zip
String result = HttpUtil.postForm(API_URL, header, params);
System.out.println("返回结果="+result);
}
}
import requests
import time
import hashlib
appKey = "您的appKey"
appSecret = "您的appSecret"
url = "https://api.shuxuntech.com/v1/driving/ocr"
method = 'POST'
time = time.time()
timestamp = str(round(time * 1000))
print (timestamp)
tmp = appKey + timestamp + appSecret
sign = hashlib.sha256(tmp.encode("utf8")).hexdigest()
headers = {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
'appKey': appKey
'timestamp': timestamp
'sign': sign
}
params = {}
params['image'] = ''
params['imgUrl'] = ''
response = requests.post(url, data = params, headers = headers)
print (response.text)
<?php
$appKey = "您的appKey";
$appSecret= "您的appSecret";
$url = "https://api.shuxuntech.com/v1/driving/ocr";
$method = "POST";
$timestamp = getUnixTimestamp();
var_dump($timestamp);
$sign = hash('sha256',$appKey . $timestamp . $appSecret);
var_dump($sign);
$headers = array();
array_push($headers, "Content-Type" . ":" . "application/x-www-form-urlencoded; charset=UTF-8");
array_push($headers, "appKey" . ":" . $appKey);
array_push($headers, "timestamp" . ":" . $timestamp);
array_push($headers, "sign" . ":" . $sign);
$image = "";
$imgUrl = "";
$bodys = "image=" . $image . "&imgUrl=" . $imgUrl;
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
if (1 == strpos("$".$url, "https://")) {
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
}
var_dump(curl_exec($curl));
function getUnixTimestamp () {
list($s1, $s2) = explode(' ', microtime());
return sprintf('%.0f',(floatval($s1) + floatval($s2)) * 1000);
}
using System;
using System.IO;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Text;
public class ApiDemo {
private const String url = "https://api.shuxuntech.com/v1/driving/ocr";
private const String method = "POST";
private const String appKey = "您的appKey";
private const String appSecret = "您的appSecret";
public static void Main(string[] args) {
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
String timestamp = Convert.ToInt64(ts.TotalMilliseconds).ToString();
String sign = SHA256(appKey + timestamp + appSecret);
HttpWebRequest httpRequest = null;
HttpWebResponse httpResponse = null;
httpRequest = (HttpWebRequest) WebRequest.CreateDefault(new Uri(url));
httpRequest.Method = method;
httpRequest.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
httpRequest.Headers.Add("appKey", appKey);
httpRequest.Headers.Add("timestamp", timestamp);
httpRequest.Headers.Add("sign", sign);
String image = "";
String imgUrl = "";
String params = "image=" + image + "&imgUrl=" + imgUrl;
byte[] data = Encoding.UTF8.GetBytes(params);
using (Stream stream = httpRequest.GetRequestStream()) {
stream.Write(data, 0, data.Length);
}
httpResponse = (HttpWebResponse) httpRequest.GetResponse();
Console.WriteLine(httpResponse.StatusCode);
Stream st = httpResponse.GetResponseStream();
StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
Console.WriteLine(reader.ReadToEnd());
}
public static string SHA256(string str) {
byte[] SHA256Data = Encoding.UTF8.GetBytes(str);
SHA256Managed Sha256 = new SHA256Managed();
byte[] by = Sha256.ComputeHash(SHA256Data);
return BitConverter.ToString(by).Replace("-", "").ToLower();
}
}
java
python
php
c#
产品详情
API文档
示例代码
产品价格










