请教银联读卡器和金属键盘实现刷卡消费(来者给分) 请教银联读卡器和金属键盘实现刷卡消费;读卡器读到银行卡信息之后是怎么与银行、金属键盘关联在一起输入密码的?希望做过的朋友能详细说说中间的通讯步骤,谢谢!.net C# 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没做过这方面的东西,不了解不乱发话在网上找到一个类似的帖子,不知道能不能帮到楼主请问c# 可以开发像刷卡机、Ic卡 这样的程序吗???http://bbs.bccn.net/thread-118755-1-1.html 不是做嵌入式的。接口函数都是C++的,看不明白。MC_ReadTrack函数怎么用的,看不明白读磁轨数据。1. int APIENTRY MC_ReadTrack(HANDLE ComHandle, BYTE _mode, BYTE _track, BYTE _BlockData[]) //参数: // ComHandle:串口句柄。// _mode:数据模式。读卡模式: 0x30 以ASCII码读卡数据 0x31 以二进制码读卡数据// _track:磁轨。指定轨道号: 0x30 磁卡三轨都不读 0x31 读磁卡一轨 0x32 读磁卡二轨 0x33 读磁卡三轨 0x34 读磁卡一二轨 0x35 读磁卡二三轨 0x36 读磁卡一三轨 0x37 读磁卡一二三轨// _BlockData:数据内容。其中每轨数据包格式如下:轨数据起始字+读卡状态字+卡轨道数据轨道起始字: 0x1F 读卡状态字: 0x59 读该轨数据读正确,卡轨道数据为该轨信息数据 0x4E 读卡不正确,卡轨道数据为错误信息 0x4F 该轨道不读,卡轨道数据为0xE0;错误信息: 0xE1 读该轨数据错误,没有起始位STX 0xE2 读该轨数据错误,没有结束位ETX 0xE3 读该轨数据错误,位校验错误VRC 0xE4 读该轨数据错误,字节校验位错误LRC 0xE5 读该轨数据错误,该轨是空白信息磁道*二进制读卡传送的数据格式是:一轨:b0,b1,b2,b3,b4,P 二轨,三轨:b0,b1,b2 b3,P *注意:当设置以ASCII码读卡时将卡每一轨信息的别换成一个字节ASCII码上传达卡数据。如:一轨数据第一字节为: 0x03 (HEX) 上传数据时卡轨道数据包为: 0x33 ( ASCII ) 当设置成二进制读卡时将卡每一轨信息的每一字节数据按每4位转成一个字节以ASCII码形式上传数据。Model No. CRT-310 读卡器 SPECIFICATION Date 2007/04/10 Ver. v20070404 动态库说明 Page 11/47如:一轨数据第一字节为: 0x03 (HEX) 上传数据时卡轨道数据包为: 0x30 0x3 //返回值: // 如果函数调用成功,返回值为0。// 如果函数调用失败,返回值为非0。= ‘E’ (0x45) 卡机无卡= ‘W’ (0x57) 卡不在允许操作的位置上例: BYTE Trackdata[500]; memset(Trackdata,0x00,sizeof(Trackdata)); rc=MC_ReadTrack(hCom,0x30,0x37,Trackdata); if(rc==1) AfxMessageBox("No Find Card!"); else if(rc!=0) AfxMessageBox("ERR!"); else { CString str,t; int n; for(n=0; n<sizeof(Trackdata); n++) { if (0==Trackdata[n]) break; //无效数据时则退出循环 t.Format("%02x",Trackdata[n]); str += t; t=""; } m_list1.AddString ("返回执行结果数据为如下所示:\n"); m_list1.AddString (str); AfxMessageBox("OK"); } /////////////////////// 首先你需要具备一些相关资料,包括读卡器和密码键盘接口信息以及银联或者银行的通讯报文格式。另外你需要了解,读卡器和密码键盘如何和你进行通讯以及你如何和银联或者银行进行通讯。一般性流程:主机调用读卡器吞入卡片读取信息-》主机调用密码键盘获取密码信息-》主机组织银联报文进行交易-》主机调用读卡器吐出卡片。以上是一般性流程,可以根据实际需要进行调整。另外:与银联进行通讯需要相关的密钥其他问题:向你这种方式的银联交易需要银联或者银行批准(特别使用的是WINDOWS系统)。包括使用的读卡器和密码键盘也都需要是经过银联认证的设备 再次感谢CSDN朋友们的帮助,谢谢。结贴给分! c#关于操作XML文件问题 实现检测端口是否打开的功能!请前辈们指教。 没有人会弄出来 简单的C#问题 值得注意 C#启动浏览器 splitcontainer焦点问题 C#的winform怎样能在1秒内向数据库中添加10000条数据? 超级菜鸟问题。 vs2005 自定义类引用的问题。 直觉软件 怎样自动实现listview的按任意标题自动排序? C#怎么获取样优酷的视频? 如何实现画流程图
在网上找到一个类似的帖子,不知道能不能帮到楼主
请问c# 可以开发像刷卡机、Ic卡 这样的程序吗???http://bbs.bccn.net/thread-118755-1-1.html
1. int APIENTRY MC_ReadTrack(HANDLE ComHandle, BYTE _mode, BYTE _track, BYTE _BlockData[])
//参数:
// ComHandle:串口句柄。
// _mode:数据模式。
读卡模式: 0x30 以ASCII码读卡数据
0x31 以二进制码读卡数据
// _track:磁轨。
指定轨道号: 0x30 磁卡三轨都不读
0x31 读磁卡一轨
0x32 读磁卡二轨
0x33 读磁卡三轨
0x34 读磁卡一二轨
0x35 读磁卡二三轨
0x36 读磁卡一三轨
0x37 读磁卡一二三轨
// _BlockData:数据内容。
其中每轨数据包格式如下:
轨数据起始字+读卡状态字+卡轨道数据
轨道起始字: 0x1F
读卡状态字: 0x59 读该轨数据读正确,卡轨道数据为该轨信息数据
0x4E 读卡不正确,卡轨道数据为错误信息
0x4F 该轨道不读,卡轨道数据为0xE0;
错误信息:
0xE1 读该轨数据错误,没有起始位STX
0xE2 读该轨数据错误,没有结束位ETX
0xE3 读该轨数据错误,位校验错误VRC
0xE4 读该轨数据错误,字节校验位错误LRC
0xE5 读该轨数据错误,该轨是空白信息磁道
*二进制读卡传送的数据格式是:
一轨:b0,b1,b2,b3,b4,P
二轨,三轨:b0,b1,b2 b3,P
*注意:
当设置以ASCII码读卡时将卡每一轨信息的别换成一个字节ASCII码上传达卡数据。
如:一轨数据第一字节为: 0x03 (HEX)
上传数据时卡轨道数据包为: 0x33 ( ASCII )
当设置成二进制读卡时将卡每一轨信息的每一字节数据按每4位转成一个字节以ASCII码形式上传数据。Model No. CRT-310 读卡器 SPECIFICATION Date 2007/04/10
Ver. v20070404 动态库说明 Page 11/47
如:一轨数据第一字节为: 0x03 (HEX)
上传数据时卡轨道数据包为: 0x30 0x3
//返回值:
// 如果函数调用成功,返回值为0。
// 如果函数调用失败,返回值为非0。
= ‘E’ (0x45) 卡机无卡
= ‘W’ (0x57) 卡不在允许操作的位置上
例: BYTE Trackdata[500];
memset(Trackdata,0x00,sizeof(Trackdata));
rc=MC_ReadTrack(hCom,0x30,0x37,Trackdata);
if(rc==1) AfxMessageBox("No Find Card!");
else if(rc!=0) AfxMessageBox("ERR!");
else
{
CString str,t;
int n;
for(n=0; n<sizeof(Trackdata); n++)
{
if (0==Trackdata[n]) break; //无效数据时则退出循环
t.Format("%02x",Trackdata[n]);
str += t;
t="";
}
m_list1.AddString ("返回执行结果数据为如下所示:\n");
m_list1.AddString (str);
AfxMessageBox("OK");
}
///////////////////////
一般性流程:
主机调用读卡器吞入卡片读取信息-》主机调用密码键盘获取密码信息-》主机组织银联报文进行交易-》主机调用读卡器吐出卡片。
以上是一般性流程,可以根据实际需要进行调整。另外:与银联进行通讯需要相关的密钥其他问题:
向你这种方式的银联交易需要银联或者银行批准(特别使用的是WINDOWS系统)。
包括使用的读卡器和密码键盘也都需要是经过银联认证的设备