Giriş
EDM E-FATURA GELİŞTİRİCİ KILAVUZU v4.2.1
Önemli
Bu sitedeki bazı kavramlar (Class, Interface, Properties, Fields, Enums) özellikle türkçeleştirilmemiştir. Tercümesi geliştiricilere kavram karışıklığı yaşatacağı düşünülerek olduğu gibi bırakılmıştır
Servis Deklarasyonu
EDM web servisi Microsoft WCF tabanlı web servistir ve SOAP 1.1 ve SOAP 1.2 ile uyumludur.
Test ortamı için endpoint adresi: EFatura Test Web Servisi
Henüz adrese erişim için kullanıcı ve şifreniz yoksa isgelistirme@edmbilisim.com.tr e-posta adresinden size kullanıcı ve şifre tahsis ettirmelisiniz.
Servise erişim için kullanılabilecek servis model parametreleri aşağıdaki gibidir. Servise bağlanırken kullanılacak mesajlajma yöntemi ve ‘binding’ tag içinde verilen kota ayarlarının aşağıdaki gibi yüksek değerlere sahip olması gerekir.
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="EFaturaEDMPort74" closeTimeout="00:20:00" openTimeout="00:20:00" receiveTimeout="00:20:00" sendTimeout="00:20:00" maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
<security mode="Transport"/>
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
REQUEST-RESPONSE
İstisnaları haricinde, her metot kendi ismini taşıyan bir “request” nesnesini parametre olarak alır ve işlem hatasız ise sonucunu yine kendi ismini taşıyan bir “response” nesnesi ile döner.
Servisin olumsuz sonucunda dönüşler REQUEST_ERRORType
tipinde SOAP fault exception ile dönülmektedir.
Tüm istek nesnelerinde, “Login” metodu hariç, oturum bilgisini içeren bir istek-başlık bilgisi REQUEST_HEADER
nesnesi olarak bulunmalıdır
EXCEPTION
Web servis işlemine ait her türlü başarısız durum için REQUEST_ERRORType
tipinde SOAP fault exception dönülmektedir.
İpucu
Tüm client(istemci) metot isteklerinde aşağıdaki gibi bir çağrı mekanizmasının kurulması önerilir. Bu sayede hatanın hangi kanaldan geldiği daha iyi anlaşılmakta ve önlemler daha hızlı alınabilmektedir. Exception yakalama 3 aşamadan oluşur, eğer mantıksal bir hata alırsanız 1. aşamadaki catch‘e yakalanırsınız, 2. aşamada sistemsel bir hatanın olduğunu gösterir, 3. aşama ise genel > hataları yakalamak için eklenmiş olsa da genelde client hataları bu aşamada yakalanır.>
*[SOAP]: Simple Object Access Protocol
*[WSDL]: Web Services Description Language