首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误代码67 ISO8583

错误代码67 ISO8583
EN

Stack Overflow用户
提问于 2013-10-01 19:22:50
回答 1查看 442关注 0票数 0

因此,现在我正在构建一个ISO8583支付网关应用程序。此应用程序是一个客户端-服务器应用程序,可以充当客户端或服务器。在本例中,我负责处理应用程序的客户端。

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

我不知道它是否有帮助,但以下是查询方法

代码语言:javascript
复制
 /// <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

    }

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

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2014-09-26 07:25:13

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

这指向您的TCP/IP配置,我的猜测是您尝试在可能相同的端口上侦听和通信,因此没有真正完成TCP/IP握手。虽然我相信从技术上讲,您可以在端口上侦听并将其传递给不同的进程,但我认为这不必要地使事情变得复杂。

所以我的猜测是,正在发生的事情和您的问题是,您正在尝试与自己通信,可能没有完全连接,而不是说"91 - Issuer不可用“或"96 - System error”,而是给您奇怪的"67 other error“,因为它可能无法实际发送它。

您是否有跟踪功能,或者是否观看过netstat -a 1或更好的Wireshark的连通性(如果没有跟踪功能来验证是否已完全建立)?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19114887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档