我正在通过串口发送数据到“Verifone VX520”支付设备。这是我第一次尝试用这样的设备进行通信。
字符串输入= "02hPUR.10.99._000000000004.634._4761739001010010FFFFF.0808.123456. .03h";byte[] asciiBytes =Encoding.ASCII.GetBytes(输入);SerialObj.Write(asciiBytes,0,asciiBytes.Length);
根据结构,这条消息应该发送一定数量并显示在机器上,但我得到的只是这条消息“发送Ack”,当我试图读取“确认”时,我只得到了这个字符。

就像颠倒的"T“
所以,有没有办法知道这里到底出了什么问题。
发布于 2015-05-04 07:00:23
大多数Verifone终端使用特殊的消息格式在PC机和内部软件之间传输信息。你的付款线错了。来自终端的答复是正确的。21小数点为15小时NAK意味着信息是错误的或crc错误的。您的字符串必须看起来像这个"\02PUR.10.99._000000000004.634._4761739001010010FFFFF.0808.123456. .\03“,但我真的怀疑这些点实际上是点,而不是用不同字符(1Ch)编码的字段分隔符。该消息还错过了ETX之后的CRC字符。与终端通信的最佳方式首先是从设备制造商或供应商获得POS通信协议手册。如果您详细说明了使用POS device...Download软件实现什么,使用ECR功能等,也会有所帮助。
https://stackoverflow.com/questions/30023721
复制相似问题