我通过串口将数据发送到“Verifone VX520”支付设备。 这是我与这些设备进行通信的第一次试验
SerialObj.Open();字符串输入= " 02hPUR.10.99._000000000004.634._4761739001010010FFFFF.0808.123456
。 .03h&#34 ;; byte [] asciiBytes = Encoding.ASCII.GetBytes(input); SerialObj.Write(asciiBytes,0,asciiBytes.Length);
根据结构,这条消息应该发送一些金额并显示在机器上,但我得到的只是这条消息“发送确认” 当我试图阅读确认时,我只得到了这个角色
就像是倒挂" T"
那么,有没有办法知道这里出了什么问题。
答案 0 :(得分:3)
大多数Verifone终端使用特殊的消息格式在PC和内部软件之间传输信息。您的付款字符串错误。终端的回复是正确的。 21十进制是15h NAK意味着消息错误或crc错误。 你的字符串必须如下所示" \ 02PUR.10.99._000000000004.634._4761739001010010FFFFF.0808.123456。 \ 03"但我真的怀疑点是真正的点而不是字段分隔符,它们用不同的字符编码(1Ch)。该消息也会在ETX之后错过CRC字符。 与终端通信的最佳方式是获取您尝试从设备制造商或供应商处使用的POS通信协议的手册。如果您详细说明要使用POS设备实现的功能,也会有所帮助...下载软件,使用ECR功能等。