精伦安全模块-身份证读卡器对接-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

目录
相关文章
|
5月前
|
供应链 安全 开发工具
供应链安全情报 | 恶意py包伪装代理SDK进行后门攻击,目标锁定python开发者
2023年11月28号,悬镜供应链安全实验室在Pypi官方仓库(https://pypi.org)监测到两起伪装成http和socks5代理SDK的开源组件投毒事件。python开发者一旦下载安装这些投毒Py包(libproxy、libsocks5),会触发执行Py包中的恶意代码,最终将导致开发者系统被投毒者植入恶意后门。
45 0
|
8月前
|
物联网 Linux 开发工具
QT移植腾讯云C-SDK结合实现OTA更新
QT移植腾讯云C-SDK结合实现OTA更新
106 0
|
8月前
|
JSON 开发工具 Android开发
apicloud如何对接大牛直播SDK
随着apicloud的普及,越来越多的用户苦于apicloud下没有一款真正靠谱低延迟的rtmp/rtsp直播播放器苦恼。
|
10月前
|
JavaScript Java 开发工具
在Windows系统对接良田高拍仪驱动SDK (EloamView java)
良田高拍仪驱动是能较好的与Java平台交互的,但不知为何官方的SDK驱动中已没有java的samples,但我在2021年使用时是有java的包的,特意记录一下我在IDEA开发工具中测试运行这个demo的过程
682 0
在Windows系统对接良田高拍仪驱动SDK (EloamView java)
|
11月前
|
API 开发工具 开发者
如何对接淘宝开放平台接口 -获取SDK,APPkey
1.首先需要有一个淘宝账户,一般实名认证支付宝之后就可以入住开发者平台。 2.首先确定自己要对接的接口在哪一个应用下面,因为需要下载对应应用的sdk用来调用。确定好是哪一个应用之后创建相对应的应用。 3.创建好应用之后点击前面的sdk小图标会弹出sdk的下载页面,下载sdk保存到本地。在应用管理界面获取到appkey和appSrecet
|
存储 Kubernetes Cloud Native
问脉 SDK: 云原生安全的最强外挂 (上)
云原生安全的最强外挂 「问脉 SDK」的进阶之路。
问脉 SDK: 云原生安全的最强外挂 (上)
|
2月前
|
网络协议 C++
C++ Qt开发:QTcpSocket网络通信组件
`QTcpSocket`和`QTcpServer`是Qt中用于实现基于TCP(Transmission Control Protocol)通信的两个关键类。TCP是一种面向连接的协议,它提供可靠的、双向的、面向字节流的通信。这两个类允许Qt应用程序在网络上建立客户端和服务器之间的连接。Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用`QTcpSocket`组件实现基于TCP的网络通信功能。
38 8
C++ Qt开发:QTcpSocket网络通信组件
|
2天前
|
开发框架 编译器 C++
Qt:一个强大的跨平台C++应用程序开发框架
Qt:一个强大的跨平台C++应用程序开发框架
8 1
|
2天前
|
开发框架 Linux C++
Qt:强大的跨平台C++应用程序开发框架
Qt:强大的跨平台C++应用程序开发框架
12 3
|
5天前
|
开发框架 数据可视化 编译器
Qt的魅力:探索跨平台图形界面开发之旅
Qt的魅力:探索跨平台图形界面开发之旅
17 1