精伦安全模块-身份证读卡器对接-Qt调用SDK

简介: 精伦安全模块-身份证读卡器对接-Qt调用SDK

精伦身份证读卡器



SDK


使用的是通用二次开发包V3.2的sdk

Dewlt.dll
JpgDll.dll
SavePhoto.dll
sdtapi.dll
sdtapi.h
Sdtapi.lib
二次开发接口说明V3.2.doc


sdk挺简单,库文件和头文件;


开发文档也挺详细,文档里带了一个c语言的例子,在这个例子基础上,稍作修改就可以拿到身份证信息。


qt调用测试读取身份证


库文件添加


在qtcreater中打开项目文件(.pro),然后右键选择“添加库”:


选择外部库:


点击“浏览”添加库文件,我这边是用window平台,就把linux和mac都去掉了。


然后点下一步、完成即可。


添加后的内容如下:

win32: LIBS += -L$$PWD/card/ -lSdtapi

INCLUDEPATH += $$PWD/card
DEPENDPATH += $$PWD/card


编译器


这些dll库一般是用VS的编译的,所以项目需要使用vs的便器:


测试代码

#include <QCoreApplication>
#include "sdtapi.h"
#include <QDebug>
#include <QTextEncoder>
#include <iostream>
#include <stdio.h>

int readCard()
{
    int ret;
    int iPort=1;

    //初始化
    ret=InitComm(iPort);
    if ( ret )
    {
        //认证
        ret= Authenticate ();
        if (ret)
        {
//            ReadBaseMsg接口调用测试;

            char Msg[200];
            ret= ReadBaseMsg ((unsigned char*)Msg, 0 );
            qDebug()<<"readBaseMsg: "<<ret<<", data: "<<QByteArray(Msg, 200).toHex();

            if (ret > 0 ){
            //显示文字及图片信息
                char buf[64] = {0};
                QByteArray data = QByteArray(Msg, 200);
//                QString strUnicode;
//                QByteArray strUtf8;
//                QTextCodec* gbk = QTextCodec::codecForName("gbk"); //读卡器读出来的中文都是国标编码,如果需要UTF-8的编码,这里可以通过一下步骤转换为UTF-8编码
//                QTextCodec *utf8 = QTextCodec::codecForName("UTF-8");

                //姓名
                memcpy(buf, data.left(31).data(), 31);
//                strUnicode = gbk->toUnicode(buf);
//                strUtf8 = utf8->fromUnicode(strUnicode);
                std::cout<<"name: "<<buf<<std::endl;
                std::cout<<"sex : "<<data.mid(31, 3).data()<<std::endl;


            }


            //ReadBaseInfos接口调用测试
            char name[32] = {0};
            char sex[8] = {0};
            char folk[8] = {0};
            char birth[16] = {0};
            char code[32]  = {0};
            char addr[128] = {0};
            char agency[32]= {0};
            char start[16]  = {0};
            char end[16]  = {0};

            ret= ReadBaseInfos (name, sex,folk,birth,code,addr,agency,start,end );
            if (ret > 0 )
            {
                printf("%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n",name, sex,folk,birth,code,addr,agency,start,end);
            }

        }
    }

    ret= CloseComm();
    return ret;


}
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    readCard();

    return a.exec();
}


编译运行


上面是原始数据,下面是ReadBaseInfos接口返回的分段解析好的数据。


代码上传至git:https://gitee.com/fensnote/demo_code/tree/master/qtCode/readCard

目录
相关文章
|
2月前
|
API 开发工具 计算机视觉
华视 CVR-100UC 身份证读取 Python 二次开发(包含SDK下载地址)
华视 CVR-100UC 身份证读取 Python 二次开发(包含SDK下载地址)
|
2月前
|
安全 Go 开发工具
对象存储OSS产品常见问题之go语言SDK client 和 bucket 并发安全如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
|
7月前
|
供应链 安全 开发工具
供应链安全情报 | 恶意py包伪装代理SDK进行后门攻击,目标锁定python开发者
2023年11月28号,悬镜供应链安全实验室在Pypi官方仓库(https://pypi.org)监测到两起伪装成http和socks5代理SDK的开源组件投毒事件。python开发者一旦下载安装这些投毒Py包(libproxy、libsocks5),会触发执行Py包中的恶意代码,最终将导致开发者系统被投毒者植入恶意后门。
54 0
|
10月前
|
物联网 Linux 开发工具
QT移植腾讯云C-SDK结合实现OTA更新
QT移植腾讯云C-SDK结合实现OTA更新
137 0
|
10月前
|
JSON 开发工具 Android开发
apicloud如何对接大牛直播SDK
随着apicloud的普及,越来越多的用户苦于apicloud下没有一款真正靠谱低延迟的rtmp/rtsp直播播放器苦恼。
|
12月前
|
JavaScript Java 开发工具
在Windows系统对接良田高拍仪驱动SDK (EloamView java)
良田高拍仪驱动是能较好的与Java平台交互的,但不知为何官方的SDK驱动中已没有java的samples,但我在2021年使用时是有java的包的,特意记录一下我在IDEA开发工具中测试运行这个demo的过程
755 0
在Windows系统对接良田高拍仪驱动SDK (EloamView java)
|
2月前
|
JavaScript Java Maven
云效产品使用常见问题之android sdk 构建出aar后,上传到私有maven仓库失败如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
9月前
|
API 开发工具 Android开发
解决 Android App 上架 Google play后 ,签名变更,第三方sdk无法登录
解决 Android App 上架 Google play后 ,签名变更,第三方sdk无法登录
186 0
|
2月前
|
安全 开发工具 Android开发
几个Flutter常见诊断错误与解决Android toolchain - develop for Android devices X Unable to locate Android SDK
几个Flutter常见诊断错误与解决Android toolchain - develop for Android devices X Unable to locate Android SDK
806 0
|
13天前
|
jenkins 持续交付 开发工具
Android使用Jenkins打包自动维护sdk版本号
Android使用Jenkins打包自动维护sdk版本号
15 0

热门文章

最新文章

推荐镜像

更多