簡體   English   中英

錯誤代碼67 ISO8583

[英]Error Code 67 ISO8583

因此,現在我正在構建一個ISO8583 Payment Gateway應用程序。 此應用程序是可以充當客戶端或服務器的客戶端-服務器應用程序。 在這種情況下,我正在處理應用程序的客戶端。

首先,我將(client)app連接到外部服務器。 我正在發送查詢消息,並且運行良好(返回成功消息)。 然后,我試圖同時作為客戶端和服務器運行該應用程序(運行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

    }

有人知道是什么問題嗎? 我可能會錯過什么?

謝謝!

我不知道您要嘗試寫入哪個特定的ISO-8583實現,但是基於我看到或未看到的內容以及您的實際問題是幾個猜測。 當它與作為客戶端但不同時作為兩者的遠程服務器通信時,它可以工作似乎特別奇怪。 您的通訊配置在哪里?

這指向您的TCP / IP配置,我的猜測是您正在嘗試在相同的端口上偵聽和通信,因此並沒有真正完成TCP / IP握手。 從技術上來說,我相信您可以偵聽端口並針對不同的進程進行通信,但我認為這不必要地使事情變得復雜。

因此,我的猜測是,正在發生的事情是您的問題,您正在嘗試與自己進行通信,可能未完全連接,而是說“ 91-Issuer Not Available”或“ 96-System error”奇怪的“其他67個錯誤”,因為它實際上可能無法發送。

您是否有跟蹤,或者如果沒有跟蹤來驗證自己已完全建立,是否已經看過netstat -a 1或更好的Wireshark的連接?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM