22-01-2025, Saat: 11:46
Delphi7'de WDSL import edemezsiniz. Bu kısım doğru çalışmıyor. Ancak D10 ve üzerinde çalışıyor. Bu yüzden aşağıdaki örnekteki gibi gönder al yapıp, gelen XML dosyasını kendiniz işleyeceksiniz. Bunun için SoapUI üzerinden gönderdiğiniz XML dosyasının içini doldurup işlem yapmanız gerekiyor.
mmo1.Lines.Clear;
mmo1.lines.add('<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"');
mmo1.lines.add('xmlns:wsdl="http://schemas.i2i.com/ei/wsdl">');
mmo1.lines.add(' <soapenv:Header/>');
mmo1.lines.add(' <soapenv:Body>');
mmo1.lines.add(' <wsdl:CheckUserRequest>');
mmo1.lines.add(' <REQUEST_HEADER>');
mmo1.lines.add(' <SESSION_ID>'+session+'</SESSION_ID>');
mmo1.lines.add(' <REASON>SORGU</REASON>');
mmo1.lines.add(' <APPLICATION_NAME>HAL</APPLICATION_NAME>');
mmo1.lines.add(' <HOSTNAME>izibiz</HOSTNAME>');
mmo1.lines.add(' <CHANNEL_NAME>izibiz</CHANNEL_NAME>');
mmo1.lines.add(' <SIMULATION_FLAG>0</SIMULATION_FLAG>');
mmo1.lines.add(' <COMPRESSED>N</COMPRESSED>');
mmo1.lines.add(' <ATTRIBUTES NAME="?">');
mmo1.lines.add(' </ATTRIBUTES>');
mmo1.lines.add(' </REQUEST_HEADER>');
mmo1.lines.add(' <USER>');
mmo1.lines.add(' <IDENTIFIER>'+VNo+'</IDENTIFIER>');
mmo1.lines.add(' </USER>');
mmo1.lines.add(' </wsdl:CheckUserRequest>');
mmo1.lines.add(' </soapenv:Body>');
mmo1.lines.add('</soapenv:Envelope>');
stream := TMemoryStream.Create;
SOAP := 'http://schemas.i2i.com/ei/wsdl/EFaturaOIBPort/CheckUserRequest';
MyURL := EFaturaURL;
try
HTTPReqResp1.InvokeOptions := [soIgnoreInvalidCerts];
HTTPReqresp1.URL := MyURL;
HTTPReqResp1.UseUTF8InHeader := true;
HTTPReqResp1.SoapAction := Soap;
HTTPReqResp1.UserName := EFatuser;
HTTPReqresp1.Password := EFatpasw;
HTTPReqresp1.Execute(Mmo1.Text,Stream); // burada oluşturduğumuz xml i post ediyoruz. cevap Stream içinde dönecek
Strstream := Tstringstream.Create(s);
try
Strstream.CopyFrom(stream, 0);
mmo2.Text := xmlDoc.FormatXMLData(UTF8Decode(StrStream.DataString)); //Strstream.DataString; // gelen cevabı memo içinde görebilirsin.
finally strstream.Free;
end;
finally stream. Destroy;
end;
mmo2.Lines.SaveToFile('CheckUser.xml');
mmo1.Lines.Clear;
mmo1.lines.add('<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"');
mmo1.lines.add('xmlns:wsdl="http://schemas.i2i.com/ei/wsdl">');
mmo1.lines.add(' <soapenv:Header/>');
mmo1.lines.add(' <soapenv:Body>');
mmo1.lines.add(' <wsdl:CheckUserRequest>');
mmo1.lines.add(' <REQUEST_HEADER>');
mmo1.lines.add(' <SESSION_ID>'+session+'</SESSION_ID>');
mmo1.lines.add(' <REASON>SORGU</REASON>');
mmo1.lines.add(' <APPLICATION_NAME>HAL</APPLICATION_NAME>');
mmo1.lines.add(' <HOSTNAME>izibiz</HOSTNAME>');
mmo1.lines.add(' <CHANNEL_NAME>izibiz</CHANNEL_NAME>');
mmo1.lines.add(' <SIMULATION_FLAG>0</SIMULATION_FLAG>');
mmo1.lines.add(' <COMPRESSED>N</COMPRESSED>');
mmo1.lines.add(' <ATTRIBUTES NAME="?">');
mmo1.lines.add(' </ATTRIBUTES>');
mmo1.lines.add(' </REQUEST_HEADER>');
mmo1.lines.add(' <USER>');
mmo1.lines.add(' <IDENTIFIER>'+VNo+'</IDENTIFIER>');
mmo1.lines.add(' </USER>');
mmo1.lines.add(' </wsdl:CheckUserRequest>');
mmo1.lines.add(' </soapenv:Body>');
mmo1.lines.add('</soapenv:Envelope>');
stream := TMemoryStream.Create;
SOAP := 'http://schemas.i2i.com/ei/wsdl/EFaturaOIBPort/CheckUserRequest';
MyURL := EFaturaURL;
try
HTTPReqResp1.InvokeOptions := [soIgnoreInvalidCerts];
HTTPReqresp1.URL := MyURL;
HTTPReqResp1.UseUTF8InHeader := true;
HTTPReqResp1.SoapAction := Soap;
HTTPReqResp1.UserName := EFatuser;
HTTPReqresp1.Password := EFatpasw;
HTTPReqresp1.Execute(Mmo1.Text,Stream); // burada oluşturduğumuz xml i post ediyoruz. cevap Stream içinde dönecek
Strstream := Tstringstream.Create(s);
try
Strstream.CopyFrom(stream, 0);
mmo2.Text := xmlDoc.FormatXMLData(UTF8Decode(StrStream.DataString)); //Strstream.DataString; // gelen cevabı memo içinde görebilirsin.
finally strstream.Free;
end;
finally stream. Destroy;
end;
mmo2.Lines.SaveToFile('CheckUser.xml');

