【问题标题】:Error Code 67 ISO8583错误代码 67 ISO8583
【发布时间】:2013-10-01 11:22:50
【问题描述】:

所以现在我正在构建一个 ISO8583 支付网关应用程序。此应用程序是一个客户端-服务器应用程序,可以充当客户端或服务器。在这种情况下,我正在处理应用程序的客户端。

首先,我将(客户端)应用程序连接到外部服务器。我正在发送查询消息并且运行良好(返回成功消息)。然后,我尝试将这个应用程序作为客户端和服务器运行(运行 2 个应用程序并将我的 ip 设置为 ip 主机),一个作为客户端,另一个作为服务器。我正在发送查询消息,它一直返回响应代码 67(其他错误)。同时,当我仅将应用程序作为客户端运行时,它就成功了。

不知道有没有用,这里是查询方法

 /// <summary>
    /// Send Inquiry Message
    /// </summary>
    private void SendInquiryMessage()
    {
        var requestMsg = new Iso8583Message(200);
        DateTime transmissionDate = DateTime.Now;
        requestMsg.Fields.Add(7, string.Format("{0}{1}",
            string.Format("{0:00}{1:00}", transmissionDate.Month, transmissionDate.Day),
            string.Format("{0:00}{1:00}{2:00}", transmissionDate.Hour,
                transmissionDate.Minute, transmissionDate.Second)));
        requestMsg.Fields.Add(11, _sequencer.Increment().ToString());
        requestMsg.Fields.Add((int)ISO8583ProtocolFields.PROCESSING_CODE, "341019");
        requestMsg.Fields.Add((int)ISO8583ProtocolFields.ADDITIONAL_DATA_61, "5271720012002010802012");

        #region Send 0200
        SendRequestHandlerCtrl sndCtrl = _client.SendExpectingResponse(requestMsg, 1000, true, null);
        sndCtrl.WaitCompletion(); // Wait send completion.
        if (!sndCtrl.Successful)
        {
            Console.WriteLine(string.Format("Client: unsuccessful request # {0} ({1}.",
                _sequencer.CurrentValue(), sndCtrl.Message));
            if (sndCtrl.Error != null)
                Console.WriteLine(sndCtrl.Error);
        }
        else
        {
            sndCtrl.Request.WaitResponse();

            if (sndCtrl.Request.IsExpired)
                _expiredRequests++;
            else
                _requestsCnt++;
        }

        latestInquiryMessage = sndCtrl.Request.ReceivedMessage as Iso8583Message;

        Console.WriteLine(latestInquiryMessage.Fields[39].Value);

        #endregion

    }

有人知道问题出在哪里吗?我可能会错过什么?

谢谢!

【问题讨论】:

    标签: c# payment-gateway error-code iso8583


    【解决方案1】:

    我不知道您正在尝试写入哪个特定的 ISO-8583 实现,但根据我看到或没有看到的内容以及您的实际问题是一些猜测。 当它作为客户端与远程服务器通信时,它似乎特别奇怪,但不能同时作为两者。您的通讯配置在哪里?

    这指向您的 TCP/IP 配置,我的猜测是您正尝试在同一个端口上进行侦听和通信,因此并未真正完成 TCP/IP 握手。虽然我相信您在技术上可以侦听端口并将其传达给不同的过程,但我认为它不必要地使事情复杂化。

    所以我的 猜测是正在发生的事情,而您的问题是您正在尝试与自己交流,可能没有完全连接,而不是说“91 - 发行人不可用”或“96 - 系统错误”它给了你奇怪的“67 其他错误”,因为它可能无法实际发送它。

    您是否有跟踪,或者如果您没有跟踪来验证您是否已完全建立,您是否使用 netstat -a 1 甚至更好的 Wireshark 观察了连接?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-09
      • 2014-02-12
      • 1970-01-01
      • 1970-01-01
      • 2016-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多