25-12-2020, Saat: 11:48
Merhabalar,
Yaşadığım sorunu detayları ile yazmaya çalışacağım. Biraz uzun olacak fakat sabırla okuyup cevaplayan arkadaşlara şimdiden teşekkür ederim.
Digital Planet (N11 E-Fatura Servisleri) alt yapısını kullanan E-FATURA entegrasyonu yapmaya çalışıyorum.
Uygulamayı "Embarcadero® RAD Studio 10.3 Version 26.0.36039.7899" üzerinde geliştiriyorum ve HTTPRIO üzerinden SOAP servislerini kullanıyorum.
Entegrasyon için 2 adet servis sunulmaktadır. Bunlardan bir tanesi "messageEncoding="Mtom" ve " messageEncoding="text" şeklindedir.
URL bilgileri aşağıdaki şekildedir
"MTom" Servisleri
https://n11integrationtest.digitalplanet....asmx?wsdl
https://n11integrationtest.digitalplanet...rvice.asmx
"Text" Servisleri
https://n11integrationwithoutmtomtest.di....asmx?wsdl
https://n11integrationwithoutmtomtest.di...rvice.asmx
//*******************************************************************************//
Şimdi gelelim yaşadığım sorunlara
Eğer "Text " servisini kullanarak işlem yaparsam Token alma işlemi düzgün olarak çalışmaktadır.
Fakat "Mtom" Servisini kullanmaya kalktığımda "Unsupported Media Type (415) - ..'//n1integrationtest.digitalpln......" diye devam eden bir hata almaktayım.
İnternetten yaptığım incelemelerde SOAP Header yada Soap Content-Type olarak parametre geçmem gerektiği yönünde bilgiler yer alıyor.
Bunları aşağıdaki şekilde farklı yollarla denedim fakat başarılı olamadım.
Belki hatalı bir kullanım yapıyor olabilirim bu konuda nasıl bir yol izlemeliyim.
Teşekkürler
Yaşadığım sorunu detayları ile yazmaya çalışacağım. Biraz uzun olacak fakat sabırla okuyup cevaplayan arkadaşlara şimdiden teşekkür ederim.
Digital Planet (N11 E-Fatura Servisleri) alt yapısını kullanan E-FATURA entegrasyonu yapmaya çalışıyorum.
Uygulamayı "Embarcadero® RAD Studio 10.3 Version 26.0.36039.7899" üzerinde geliştiriyorum ve HTTPRIO üzerinden SOAP servislerini kullanıyorum.
Entegrasyon için 2 adet servis sunulmaktadır. Bunlardan bir tanesi "messageEncoding="Mtom" ve " messageEncoding="text" şeklindedir.
URL bilgileri aşağıdaki şekildedir
"MTom" Servisleri
https://n11integrationtest.digitalplanet....asmx?wsdl
https://n11integrationtest.digitalplanet...rvice.asmx
"Text" Servisleri
https://n11integrationwithoutmtomtest.di....asmx?wsdl
https://n11integrationwithoutmtomtest.di...rvice.asmx
//*******************************************************************************//
Şimdi gelelim yaşadığım sorunlara
Eğer "Text " servisini kullanarak işlem yaparsam Token alma işlemi düzgün olarak çalışmaktadır.
Fakat "Mtom" Servisini kullanmaya kalktığımda "Unsupported Media Type (415) - ..'//n1integrationtest.digitalpln......" diye devam eden bir hata almaktayım.
İnternetten yaptığım incelemelerde SOAP Header yada Soap Content-Type olarak parametre geçmem gerektiği yönünde bilgiler yer alıyor.
Bunları aşağıdaki şekilde farklı yollarla denedim fakat başarılı olamadım.
Belki hatalı bir kullanım yapıyor olabilirim bu konuda nasıl bir yol izlemeliyim.
Teşekkürler
procedure TDigitalPlanetServis.HTTPWebNodeBeforePost(const HTTPReqResp: THTTPReqResp; Client: THTTPClient); begin // Client.CustomHeaders['CorporateCode'] := sComponayCode; // Client.CustomHeaders['LoginName'] := sUser; // Client.CustomHeaders['Password'] := sPassword; // Client.CustomHeaders['timeout'] := IntToStr(TimeOut); // client.Accept := 'application/xml, text/plain; q=0.9, text/html;q=0.8,'; // Client.AcceptCharset := 'utf-8, *;q=0.8'; // client.AcceptEncoding := 'Mtom'; // Client.ContentType := 'application/xml'; // Client.CustomHeaders['textEncoding'] := 'utf-8'; // Client.CustomHeaders['messageEncoding'] := 'Text'; // Client.CustomHeaders['hostNameComparisonMode'] := 'StrongWildcard'; // Client.CustomHeaders['transferMode'] := 'Buffered'; // Client.CustomHeaders['messageEncoding'] := 'Mtom'; end;
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz.


. Yalnız verdiğiniz bu Client.CustomHeaders['Password'] := sPassword; şeklindeki yapı header parametre üzerinde gerekli düzeltmeyi yapsa da servislerim çalışmadı. Delphi 10.2 üzerinden wsdl import ile oluşan unit'i kullanınca servis çalışıyor ama 10.4 ile import edilende bir sıkıntı var. Burada proje Delphi 10.4 e ait, header ile giden isim ve şifre Client.CustomHeaders ile ayarlanıyor. Tek değiştirdiğim 10.4 ile 10.2 nin import sınıflar. Geniş vakit bulursam üzerine biraz düşeceğiz gibi