0

我正在尝试在 IQIntAPI 上进行发票请求,但收到以下错误消息

<?xml version="1.0" encoding="UTF-8"?>
<IQ_API_Result>
   <IQ_API_Error>
      <IQ_Error_Code>5</IQ_Error_Code>
      <IQ_Error_Description>Unable to open Data Tables for Company [FMC]</IQ_Error_Description>
      <IQ_Error_Data>
         <IQ_Error_Data_Item>
            <IQ_Error_Code>7</IQ_Error_Code>
            <IQ_Error_Description>IQ_User_Password Is Invalid</IQ_Error_Description>
            <IQ_Error_Extended_Data />
         </IQ_Error_Data_Item>
         <IQ_Error_Data_Item>
            <IQ_Error_Code>5</IQ_Error_Code>
            <IQ_Error_Description>Unable to open Data Tables for Company [FMC]</IQ_Error_Description>
            <IQ_Error_Extended_Data />
         </IQ_Error_Data_Item>
      </IQ_Error_Data>
   </IQ_API_Error>
</IQ_API_Result>

Company_Number、IQ_Terminal_Number、IQ_User_Number 和 IQ_User_Password 对于我尝试运行 REST 服务器的 API 用户是正确的,授予公司文件夹的所有访问权限,但 API 仍然给出相同的错误。以下是我的源代码的一部分:

IntPtr FResult;
            string FResultString;
            int FResultLength;
            string FMessage;
            int FMessageLength;
            int FCallResult;

            StringWriter FStringWriter = new StringWriter();

            using (XmlWriter FWriter = XmlWriter.Create(FStringWriter))
            {
                FWriter.WriteStartDocument();

                FWriter.WriteStartElement("IQ_API");
                FWriter.WriteStartElement("IQ_API_Request_Document_Invoice");
                FWriter.WriteElementString("IQ_Company_Number", "FMC");
                FWriter.WriteElementString("IQ_Terminal_Number", "1");
                FWriter.WriteElementString("IQ_User_Number", "100");
                FWriter.WriteElementString("IQ_User_Password", "KIDD");
                FWriter.WriteEndElement(); //IQ_API_Request_Stock                   
                FWriter.WriteEndElement(); //IQ_API                
                FWriter.WriteEndDocument();
                FWriter.Flush();
            }


            FMessage = FStringWriter.ToString();
            FMessageLength = FMessage.Length;
            FResultLength = 0;

            FCallResult = IQ_API_Request_Document_Invoice(FMessage, FMessageLength, out FResult, ref FResultLength);
            FResultString = Marshal.PtrToStringAnsi(FResult);

            if (FCallResult != 0)
            {
                MessageBox.Show("An Error Occurred. Error Code [" + FCallResult.ToString() + "]");
            }
            lstResult.Text = FormatXML(FResultString.Substring(0, FResultLength));

我的源代码或 IQ 零售设置可能在哪里出错?

4

0 回答 0