4

我通过串口向“Verifone VX520”支付设备发送数据。这是我第一次尝试与此类设备进行通信

SerialObj.Open(); 字符串输入=“
02hPUR.10.99._000000000004.634._4761739001010010FFFFF.0808.123456.03h”;byte[] asciiBytes = Encoding.ASCII.GetBytes(input); SerialObj.Write(asciiBytes, 0, asciiBytes.Length);

根据结构,这条消息应该发送一些数量并出现在机器上,但我得到的只是这条消息“Sending Ack”当我尝试阅读确认时,我只得到了这个字符

在此处输入图像描述

就像颠倒的“T”

那么,有什么方法可以知道这里出了什么问题。

4

1 回答 1

3

大多数 Verifone 终端使用特殊的消息格式在 PC 和内部软件之间传输信息。您的付款字符串错误。终端的回复是正确的。十进制的 21 是 15h NAK 表示消息错误或 crc 错误。您的字符串必须看起来像这样“\02PUR.10.99._000000000004.634._4761739001010010FFFFF.0808.123456..\03”,但我真的怀疑这些点真的是点,而不是使用不同字符(1Ch)编码的字段分隔符。该消息在 ETX 之后也丢失了 CRC 字符。首先与终端通信的最佳方式是从设备制造商或供应商处获取您尝试使用的 POS 通信协议的手册。如果您详细说明您尝试使用 POS 设备实现的目标,这也会有所帮助...下载软件、使用 ECR 功能等。

于 2015-05-04T07:00:23.833 回答