我正在通过串行端口向“verifone vx520”支付设备发送数据。
这是我第一次尝试用这种设备通信
serialobj.open();字符串输入=
“02hpur.10.99.-000000000004.634.-4761739001010010fffff.0808.123456.
.03h“byte[]asciibytes=encoding.ascii.getbytes(输入);
serialobj.write(腹水细胞,0,腹水细胞长度);
根据结构,这条消息应该发送一些数量并出现在机器上,但我得到的只是这条消息“sending ack”
当我试着读致谢信的时候,我只得到了这个角色
就像倒着的“T”
那么,有没有办法知道这里出了什么问题。
最佳答案
大多数Verifone终端使用特殊的消息格式在PC机和内部软件之间传输信息。您的付款字符串错误。终端回复正确。21十进制为15h NAK,表示消息错误或CRC错误。
字符串必须像这样“\02pur.10.99.\u000000000004.634.\u4761739001010010fffff.0808.123456。
“..03”但我真的怀疑这些点是真正的点,而不是用不同字符(1ch)编码的字段分隔符。在ETX之后,该消息也会丢失CRC字符。
首先与终端通信的最佳方式是从设备制造商或供应商处获取您尝试使用的POS通信协议的手册。如果你详细说明你想用POS设备实现什么,它也会有帮助…下载软件,使用ECR功能,等等。
关于c# - 与串行端口“Verifone VX520”进行通信,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30023721/