PAKET TRANSFER SİSTEMİ



Benzer belgeler
PAKET TRANSFER SİSTEMİ

PAKET TRANSFER SİSTEMİ

PAKET TRANSFER SİSTEMİ

PAKET TRANSFER SİSTEMİ

PAKET TRANSFER SİSTEMİ

VIDEOCELL API. Versiyon 1.0.0

BOTAŞ EBT BİLGİ YÖNETİM SİSTEMİ WEB SERVİSLERİ

BOTAŞ EBT BİLGİ YÖNETİM SİSTEMİ WEB SERVİSLERİ

MOBILEPAX ENTERPRISE API (WEB SERVİS)

TC KİMLİK NO SMS GÖNDERİM SOAP API

Açıklama Bölüm Kılavuzun ilk yayım tarihi

Doküman JETSMS XML Mesaj Đşlemleri Yardım Dokümanı Tarih Sürüm 1.1.0

TÜRKİYE ELEKTRONİK FON ALIM SATIM PLATFORMU WEB SERVİS İŞLEMLERİ

FIRAT ÜNİVERSİTESİ BİLGİSAYAR MÜH.

GELİR İDARESİ BAŞKANLIĞI Uygulama ve Veri Yönetimi Daire Başkanlığı E-Fatura Uygulaması (Yazılım Standartları ve Nesne Yapısı) Ocak 2010 Versiyon :

Medula Eczane Stok Bilgileri Web Servisleri Kullanım Kılavuzu

TÜİK e-vt. Web Servis Kılavuzu

SİRKÜLER İstanbul, Sayı: 2015/ 051 Ref: 4/051. Konu: ELEKTRONİK DEFTER UYGULAMASININ WEBSERVİS KILAVUZUNDA GÜNCELLEME YAPILMIŞTIR

TC KİMLİK NO SMS GÖNDERİM XML API

C# ile e-posta Göndermek

MOBILEPAX SOAP PRODUCT API KULLANIM ŞEKLİ


Tel : 0(532) Web : E-Posta : info@kayikcioglugrup.com. İLETİ PAKETİ API (Entegrason) Dökümanı

SOAP API. Mobildev Toplu Mesajlaşma API

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

GELİR İDARESİ BAŞKANLIĞI Uygulama ve Veri Yönetimi Daire Başkanlığı E-Fatura Uygulaması (Yazılım Standartları ve Nesne Yapısı) Ocak 2010 Versiyon :

Submit metodu birden fazla numaraya aynı içerikli kısa mesaj gönderimi için kullanılmaktadır.

ICE BİLİŞİM TEKNOLOJİLERİ WEB SERVİS KILAVUZU. SERVİS LİNK: DÜZENLEME TABLOSU

XML API. İçindekiler. Toplu SMS Sistemlerinde Güvenilir Çözüm Ortağınız 1. AMAÇ KULLANIM ŞEKLİ Genel Hata Kodları.

JAVA API v2.0 Belge sürümü: 2.0.2

AÇIKLAMALARI SEBEP ÇÖZÜM

3G Sms&MMS GateWay Xml Interface

NETGSMSMS. VER 5.6.0

MOBILEPAX XML PRODUCT API KULLANIM ŞEKLİ

AJANS İLETİŞİM API XML API v İçindekiler. 1. AMAÇ - Sayfa 2

COM API v2.0 Belge sürümü : 2.0.3

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

JETSMS XML Mesaj İşlemleri Yardım Dokümanı Tarih Sürüm XML ile Mesaj İşlemleri

e-logo e-fatura Özel Entegratör Sistemi

ÇÖZÜM BİLGİSAYAR KOLAY RANDEVU RANDEVU WEB SERVİSLERİ YAZILIM FİRMALARI ENTEGRASYON KILAVUZU Sürüm: 1.0

%20dolor%20sit%20amet&receipents= , &sender=PROAKTIF

MMS API v1.0 Belge sürümü : 1.0.0

Medula Eczane E-Reçete Web Servislerinin Kullanım Kılavuzu (Test amaçlıdır, ödemeye esas teşkil etmeyecektir)

PTS ÇALIŞMA PRENSİPLERİ

COM API v.1.1 BELGE SÜRÜMÜ : 1.1

T.C. SAĞLIK BAKANLIĞI ĐLAÇ VE ECZACILIK GENEL MÜDÜRLÜĞÜ

um%20dolor%20sit%20amet&receipents= , &sender=ILETICELL İstekte gönderilen parametrelerin açıklamaları aşağıdaki gibidir:

2 Kullanıcı Yönetimi ve Yetkilendirme Tüm kullanıcıların Kullanıcı Adı ve Parola bilgisi Sağlık.Net sisteminde kullandığı veriler olmalıdır.

Axis2 ile Web Servis Đstemci Örnekleri (Java, Delphi, C Sharp)


HTTP/HTTPS API v2.0 Belge sürümü : 2.0.0

MARKAM SMS SMS GÖNDERİM WEB SERVİSLERİ VERSİYON 1.2

SMSEXPLORER XML API. XML API KILAVUZU v.1.0

T.C.SOSYAL GÜVENLİK KURUMU. Genel Sağlık Sigortası Medula Optik E-rapor Web Servisleri Kullanım Kılavuzu

XML API v2.0 Belge sürümü : 2.0.2

Liskov Substitution Principle (LSP) Liskov un Yerine Gecme Prensibi KurumsalJava.com

08/12/2017

MOKA ÖDEME SERVİSİ BAYİ İŞLEMLERİ ENTEGRASYON DOKÜMANI

Üst Düzey Programlama

Görsel Programlama DERS 12. Görsel Programlama - Ders12/

T.C AİLE, ÇALIŞMA VE SOSYAL HİZMETLER BAKANLIĞI İŞ SAĞLIĞI VE GÜVENLİĞİ BİLGİ YÖNETİM SİSTEMİ (İBYS) WEB SERVİS KULLANIM KILAVUZU V1.

"Şirket" Sunucusu ve Başarı Mobile Arasındaki HTTP Veri Aktarımı için Etkileşim Teknik Protokolü

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

Medula Eczane E-Reçete Web Servislerinin Kullanım Kılavuzu (Test amaçlıdır, ödemeye esas teşkil etmeyecektir)

MARKAM SMS SMS GÖNDERİM WEB SERVİSLERİ VERSİYON 1.4

Global Haberleşme API Kullanıcı Notları

BİL132 Bilgisayar Programlama II

3G SMS & MMS GateWay Xml Interface

8. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

T.C.SOSYAL GÜVENLİK KURUMU. Genel Sağlık Sigortası Medula Optik E-reçete Web Servisleri Kullanım Kılavuzu

T.C.SOSYAL GÜVENLİK KURUMU. Genel Sağlık Sigortası Medula Optik E-rapor Web Servisleri Kullanım Kılavuzu

EK1 PortalPLUS GİB arayüzü ile kullanım kılavuzu

MARKAM SMS SMS GÖNDERİM WEB SERVİSLERİ VERSİYON 1.6

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

Yazılım Kodlama ve İ simlendirme Standartları v1.0

EC-485. Ethernet RS485 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat

Basit bir web uygulaması

MARKAM SMS SMS GÖNDERİM WEB SERVİSLERİ VERSİYON 1.1

Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür.

BİL-141 Bilgisayar Programlama I (Java)

TARİHÇE. Versiyon Tarih Düzenleyen Açıklama Engin DURMAZ İlk versiyon

Spring Security Framework Harezmi Bilişim Çözümleri

T.C.SOSYAL GÜVENLİK KURUMU. Genel Sağlık Sigortası Medula Optik E-rapor Web Servisleri Kullanım Kılavuzu

«BM364» Veritabanı Uygulamaları

Swing ve JDBC ile Database Erişimi

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Öğr. Gör. Serkan AKSU 1

Mobil Cihazlardan Web Servis Sunumu

PAKET TRANSFER SİSTEMİ

w w w. e - t o p l u s m s. c o m

BOTAŞ EBT BİLGİ YÖNETİM SİSTEMİ WEB SERVİSLERİ

Xml Arayüzleri. 6. Sms To Multisenders (Farklı Mesajların Farklı Numaralara Yollanması)

BLGM 354 DENEY 1 * GİRİŞ

Sunum İçeriği. Programlamaya Giriş

MOKA ÖDEME SERVİSİ ÖDEME İSTEĞİ GÖNDERME BAYİ ENTEGRASYON DOKÜMANI

Android e Giriş. Öğr.Gör. Utku SOBUTAY

ABONELİK MERKEZİNE GİRİN

MOKA ÖDEME SERVİSİ ORTAK ÖDEME SAYFASI ENTEGRASYON DOKÜMANI V

Transkript:

İLAÇ TAKİP SİSTEMİ ŞUBE MÜDÜRLÜĞÜ PAKET TRANSFER SİSTEMİ Kullanıcı Dökümanı Version 1.2 1

1. Revizyonlar... 1 2. Giriş... 1 2.1 Kapsam... 1 2.2 Hedef Kitle... 1 3. Gereksinimler... 1 3.1 Yazılım Gereksinimleri... 1 4. Paket Gönderme ve Paket Alma Servisleri... 1 4.1 Paket Gönderme Servisi... 1 4.1.1 Paket Gönderme İşlemi... 1 4.2 Paket Alma Servisi... 2 5. Çalışma Ortamı... 3 5.1 Paket Alma Servisi Çalışma Ortamı... 3 5.1.1 Genel Bakış... 3 5.2 Paket Alma Servisi Çalışma Ortamı... 3 5.2.1 Genel Bakış... 3 6. Örnek İstemci (Client) Kodları... 3 6.1 Java Programlama Dili... 3 6.1.1 Paket Gönderme Servisi... 3 6.1.2 Paket Alma Servisi... 4 6.2 C# Programlama Dili... 4 6.2.1 Paket Gönderme Servisi... 4 6.2.2 Paket Alma Servisi... 4 7. EK 1... 4 8. EK 2... 7 9. EK 3... 9 10. EK 4... 10 1

1. Revizyonlar No Tarih Revizör Değişiklikler 1.0 12.09.2011 Musa ÖĞÜTLÜ İlk Sürüm 1.1 27.09.2011 Musa ÖĞÜTLÜ 6.2, Ek 3, Ek 4 1.2 30.10.2011 İsmail Taha AYKAÇ Mehmet Elgin AKPINAR Yeni servis metodlarına göre güncelleme yapıldı. 1

2. Giriş 2.1 Kapsam Paket Transfer Sistemi paydaşlar arasında gerçekleşen transferlerin sanal ortamda kolay bir şekilde takip edilmesini amaçlamaktadır. Bunun için Paket Gönderme Servisi ve Paket Alma Servisi olmak üzere Java tabanlı iki web servisi hazırlanmıştır. Bu Web Servislerin kullanılabilmesi için istemci (client) tarafının geliştirilmesi gerekmektedir. 2.2 Hedef Kitle Bu doküman paydaşların yazılım geliştirme birimlerine hitap etmektedir. 3. Gereksinimler 3.1 Yazılım Gereksinimleri Paket Transfer Sistemi için geliştirilecek web servis istemcileri aşağıdaki standartlara uygun olmalıdır: SOAP 1.1 Web Services Description Language (WSDL) 1.1 1

4. Paket Gönderme ve Paket Alma Servisleri Paket Transfer Sistemi; Paket Gönderme Servisi ve Paket Alma Servisi arayüzleri için Web Servisi Tanımlama Dili (Web Service Definition Language - WSDL) kullanılır. WSDL lerin en son sürümüne aşağıdaki linklerden ulaşabilirsiniz. Paket Gönderme Servisi :http://pts.saglik.gov.tr/pts/packagesenderwebservice?wsdl Paket Alma Servisi:http://pts.saglik.gov.tr/PTS/PackageReceiverWebService?wsdl Bu WSDL ler beklenen mesaj yapısını, mesajı oluşturan elemanların tiplerini gösterir.detaylı açıklama için daha önceden yayımlanmış PAKET TRANSFER SİSTEMİ - Çalışma Prensipleri dökümanına başvurabilirsiniz. Paket Transfer Sistemi kapsamındaki servisleri kullanacak istemciler HTTP Basic Authentication yöntemi ile kimliklerini bildirmelidirler. 4.1 Paket Gönderme Servisi 4.1.1 Paket Gönderme İşlemi Paket gönderme işlemini gerçekleştirmek için sendfile veya sendfilestream metotları kullanılabilir. Bu metotlar paket dosyasının gönderim yöntemi dışında bir fark içermemektedir. Detaylı bilgiler aşağıda verilmiştir. sendfile metodu kaynak GLN, hedef GLN ve gönderilecek paket(dosya) parametrelerine ihtiyaç duyar. 1. Paket Zip dosyası olmalıdır ve tek seferde yalnız bir dosya gönderilebilir. 2. Paket MIME eklentisi olarak gelmelidir. 3. GLN ler, GLN formatına uygun olmalıdır (bkz: PAKET TRANSFER SİSTEMİ - Çalışma Prensipleri dökümanı) 4. Servisi çağıran kullanıcı, kaynak GLN adına işlem yapabilecek yetkiye sahip olmadır. 5. Paydaş kendi kendine paket gönderemez. 1

sendfilestream metodu diğer metotta olduğu gibi kaynak GLN, hedef GLN ve gönderilecek paket(dosya) parametrelerine ihtiyaç duyar. 1. Paket Zip dosyası olmalıdır ve tek seferde yalnız bir dosya gönderilebilir. 2. Paket Binary Stream olarak gelmelidir. 3. GLN ler, GLN formatına uygun olmalıdır (bkz: PAKET TRANSFER SİSTEMİ - Çalışma Prensipleri dökümanı) 4. Servisi çağıran kullanıcı, kaynak GLN adına işlem yapabilecek yetkiye sahip olmadır. 5. Paydaş kendi kendine paket gönderemez. Her iki metot da işlem sonuçunda transfer id döner. Bu id yi kullanarak, işlem esnasında gönderilen hedef GLN adına işlem yapma yetkisine sahip olan paydaş, gönderilen paketi (Paket Alma Servisini kullanarak) alabilir. 1. Transfer id ile yalnızca bir pakete ulaşılabilir. 2. Transfer id paketi gönderen istemci tarafından kayıt altına alınmalıdır. 3. Transfer id paketin gönderildiği paydaşa bildirilmelidir. sendfile ve sendfilestream metotlarının doğru çalışabilmesi için GLN ler formata uygun ve geçerli (sistemde kayıtlı bir paydaşa ait) olmalıdır. Gönderilen dosya Zip formatında olmalıdır, aksi takdirde servis hata mesajı döner. 4.2 Paket Alma Servisi Paket alma işlemini gerçekleştirmek için receivefile veya recievefilestream metotları kullanılabilir. Bu metotlar paket dosyasının alım yöntemi dışında bir fark içermemektedir. Detaylı bilgiler aşağıda verilmiştir. receivefile ve receivefilestream metotları kaynak GLN ve Transfer id parametrelerine ihtiyaç duyar. 1. Kaynak GLN, GLN formatına uygun olmalıdır (bkz: PAKET TRANSFER SİSTEMİ - Çalışma Prensipleri dökümanı) 2. Servisi çağıran kullanıcı, kaynak GLN adına işlem yapabilecek yetkiye sahip olmadır. receivefile ve receivefilestream metotları sonuç olarak paket(dosya) döner. 1. Sadece bir dosya beklenmelidir. 2. Dosya receivefile metodunda MIME eklentisi, receivefilestream metodunda ise Binary Stream olarak gelecektir. 3. Eğer dosya kayıt altına alınacaksa, kayıt yeri ve dosya ismi istemci(client) tarafından belirlenmelidir. receivefile ve receivefilestream metotlarının doğru çalışabilmesi için kaynak GLN formata uygun ve geçerli (sistemde kayıtlı bir paydaşa ait) olmalıdır. Transfer id, servisi çağıran paydaşa gönderilmiş bir pakete ait olmalıdır; aksi takdirde servis hata mesajı döner. 2

5. Çalışma Ortamı Paket Transfer Sistemi Çalışma Ortamı kullanılarak; Paket Transfer Sistemi çalışma ortamına olan ağ bağlantısı kontrol edilebilinecek. Web Servisleri için oluşturulan veri formatlarının doğruluğu kontrol edilebilinecek. Hatalı gönderilen veri formatları için karşılaşılabilinecek hata mesajları görülebilinecek. Paydaşlar için Paket Gönderme ve Paket Alma servisleri için gerçek ortam kullanıcı hesaplarını kullanacaklar. 5.1 Paket Alma Servisi Çalışma Ortamı 5.1.1 Genel Bakış Formatlara uygun parametrelerin gönderilmesi durumunda gönderilen paket(dosya) kayıt altına alınır ve istemciye transfer id bilgisi dönülür. Herhangi bir parametre uygun olmadığı zaman paket(dosya) kayıt edilmez, hata mesajı dönülür. 5.2 Paket Alma Servisi Çalışma Ortamı 5.2.1 Genel Bakış Paydaş kendisi için gönderilmiş olan paketi(dosyayı) transfer id ve GLN parametreleriyle ister.bu transfer id ile kendisine gönderilmiş bir paket varsa servis bunu mesaj eklentisi olarak döner. Paydaş parametre olarak gönderdiği transfer id ile kendisine gönderilmiş bir dosya yoksa yada paydaş dosya almaya yetkili olmadığı bir GLN yi parametre olarak göndermişse hata mesajı dönülür. 6. Örnek İstemci (Client) Kodları 6.1 Java Programlama Dili Bu bölümde Java programlama dili ile servislere ulaşımı sağlayan örnek kodlara yer verilmiştir. Kodlar Java SE Development Kit (JDK) 6 kütüphanesi kullanılarak geliştirilmiştir.eklerde Paket Gönderme ve Alma Servisleri için metotlar verilmiştir. 6.1.1 Paket Gönderme Servisi 3

sendfile metodu için örnek metot Ek 1 de mevcuttur. 6.1.2 Paket Alma Servisi receivefile metodu için örnek metot Ek 2 de mevcuttur. 6.2 C# Programlama Dili Bu bölümde C# programlama dili ile servislere ulaşımı sağlayan örnek kodlara yer verilmiştir. Örnek kodlar sendfile ve receivefile metodları için yazılmıştır bu metodlarda eklentiler mime attachment olarak gönderildiğinden 3. parti araçlar kullanmak gerekmektedir. sendfile ve receivefile metodlarının aksine paket dosylarının Binary Stream olarak SOAP zarfı içerisinde gönderilmesine olanak sağlayan sendfilestream ve receivefilestream metodları mevcuttur. Bu metodlar kullanmak için herhangi 3. parti araç kullanmaya ihtiyaç yoktur! Servis Web Referans olarak eklendiğinde oluşan nesnelerle kolaylıkla çağırılabilmektedir. Ekteki kodlarda sendfile ve recievefile metodları AÇIK KAYNAK kodlu PocketSOAP bileşeni kullanılarak çağırılmıştır. 6.2.1 Paket Gönderme Servisi sendfile metodu için örnek metot Ek 3 de mevcuttur. 6.2.2 Paket Alma Servisi receivefile metodu için örnek metot Ek 4 de mevcuttur. 7. EK 1 private String sendpackage( String username, String pwd, String filepath, String frgln, String togln) throws SOAPException, MalformedURLException MessageFactory factory = MessageFactory.newInstance(); 4

SOAPMessage message = factory.createmessage(); MimeHeaders hd = message.getmimeheaders(); String authorization = new BASE64Encoder().encode((username + ":" + pwd).getbytes()); hd.addheader("authorization", "Basic " + authorization); SOAPBody body = message.getsoapbody(); QName sendfileparambodyname = new QName("http://its.iegm.gov.tr/pts/sendpackage", "sendfileparameters", "sendfile"); SOAPBodyElement sendfileparambodyelement = body.addbodyelement(sendfileparambodyname); QName frnane = new QName("sourceGLN"); SOAPElement frelement = sendfileparambodyelement.addchildelement(frnane); frelement.addtextnode(frgln); QName toname = new QName("destinationGLN"); SOAPElement toelement = sendfileparambodyelement.addchildelement(toname); toelement.addtextnode(togln); SOAPConnectionFactory soapconnectionfactory = SOAPConnectionFactory.newInstance(); SOAPConnection connection = soapconnectionfactory.createconnection(); java.net.url endpoint = new URL("http://pts.saglik.gov.tr/PTS/PackageSenderWebService"); File myfile = new File(filePath); DataSource ds = new FileDataSource(myfile); DataHandler datahandler = new DataHandler(ds); AttachmentPart attachment = message.createattachmentpart(datahandler); attachment.setcontentid("<filepart=12@pts.org>"); message.addattachmentpart(attachment); SOAPMessage soapresponse = connection.call(message, endpoint); SOAPBody soapresponsebody = soapresponse.getsoapbody(); if (soapresponsebody.hasfault()) SOAPFault newfault = soapresponsebody.getfault(); QName faultdetailcode = new QName("faultcode"); java.util.iterator itcode = newfault.getchildelements(faultdetailcode); SOAPBodyElement faultdetailcodeelement = (SOAPBodyElement) itcode.next(); QName faultdetailstring = new QName("faultstring"); 5

java.util.iterator itstring = newfault.getchildelements(faultdetailstring); SOAPBodyElement faultdetailstringelement = (SOAPBodyElement) itstring.next(); QName faultdetailbodyname = new QName("detail"); java.util.iterator iterato = newfault.getchildelements(faultdetailbodyname); SOAPBodyElement faultbodyelement = (SOAPBodyElement) iterato.next(); QName faultbodyname = new QName("http://its.iegm.gov.tr/pts/sendpackage", "packagetransfererror", "ns2"); java.util.iterator iterator = faultbodyelement.getchildelements(faultbodyname); SOAPBodyElement faultdetailelement = (SOAPBodyElement) iterator.next(); QName responsefaultcodename = new QName("faultCode"); java.util.iterator iterator1 = faultdetailelement.getchildelements(responsefaultcodename); SOAPBodyElement faultcodeelement = (SOAPBodyElement) iterator1.next(); //Fault Code String faultcode = faultcodeelement.getvalue(); QName responsefaultmessagename = new QName("faultMessage"); java.util.iterator iterator2 = faultdetailelement.getchildelements(responsefaultmessagename); SOAPBodyElement faultmessageelement = (SOAPBodyElement) iterator2.next(); //Fault Message String faultmessage = faultmessageelement.getvalue(); return faultcode + " " + faultmessage ; QName responsebodyname = new QName("http://its.iegm.gov.tr/pts/sendpackage", "sendfileresponse", "ns2"); java.util.iterator iterator = soapresponsebody.getchildelements(responsebodyname); SOAPBodyElement responsebodyelement = (SOAPBodyElement) iterator.next(); QName responsetransferidname = new QName("transferId"); java.util.iterator iterator1 = responsebodyelement.getchildelements(responsetransferidname); SOAPBodyElement responsetransferidelement = (SOAPBodyElement) iterator1.next(); //Tranfer Id String transferid = responsetransferidelement.getvalue(); connection.close(); return transferid; 6

8. EK 2 private String reveicepackage( String username, String pwd, String frgln, String transferid, String filepathwithfilename) throws SOAPException, MalformedURLException MessageFactory factory = MessageFactory.newInstance(); SOAPMessage message = factory.createmessage(); SOAPHeader header = message.getsoapheader(); MimeHeaders hd = message.getmimeheaders(); String authorization = new BASE64Encoder().encode((username + ":" + pwd).getbytes()); hd.addheader("authorization", "Basic " + authorization); SOAPBody body = message.getsoapbody(); QName getfileparambodyname = new QName("http://its.iegm.gov.tr/pts/receivepackage", "receivefileparameters", "receivefile"); SOAPBodyElement getfileparambodyelement = body.addbodyelement(getfileparambodyname); QName frname = new QName("sourceGLN"); SOAPElement frelement = getfileparambodyelement.addchildelement(frname); frelement.addtextnode(frgln); QName transferidname = new QName("transferId"); SOAPElement transferidelement = getfileparambodyelement.addchildelement(transferidname); transferidelement.addtextnode(transferid); SOAPConnectionFactory soapconnectionfactory = SOAPConnectionFactory.newInstance(); SOAPConnection connection = soapconnectionfactory.createconnection(); java.net.url endpoint = new URL("http://pts.saglik.gov.tr/PTS/PackageReceiverWebService"); SOAPMessage soapresponse = connection.call(message, endpoint); SOAPBody soapresponsebody = soapresponse.getsoapbody(); if (soapresponsebody.hasfault()) SOAPFault newfault = soapresponsebody.getfault(); QName faultdetailbodyname = new QName("detail"); 7

java.util.iterator iterato = newfault.getchildelements(faultdetailbodyname); SOAPBodyElement faultbodyelement = (SOAPBodyElement) iterato.next(); QName faultbodyname = new QName("http://its.iegm.gov.tr/pts/receivepackage", "packagetransfererror", "ns2"); java.util.iterator iterator = faultbodyelement.getchildelements(faultbodyname); SOAPBodyElement faultdetailelement = (SOAPBodyElement) iterator.next(); QName responsefaultcodename = new QName("faultCode"); java.util.iterator iterator1 = faultdetailelement.getchildelements(responsefaultcodename); SOAPBodyElement faultcodeelement = (SOAPBodyElement) iterator1.next(); String faultcode = faultcodeelement.getvalue(); QName responsefaultmessagename = new QName("faultMessage"); java.util.iterator iterator2 = faultdetailelement.getchildelements(responsefaultmessagename); SOAPBodyElement faultmessageelement = (SOAPBodyElement) iterator2.next(); String faultmessage = faultmessageelement.getvalue(); return faultcode + " : " + faultmessage; FileOutputStream outputfile = null; Iterator it = soapresponse.getattachments(); while (it.hasnext()) AttachmentPart part = (AttachmentPart) it.next(); try outputfile = new FileOutputStream(filePathWithFileName); part.getdatahandler().writeto(outputfile); return "Dosya kaydedildi: " + filepathwithfilename; catch (IOException ex) Logger.getLogger(ReceiverServlet.class.getName()).log(Level.SEVERE, null, ex); return ex.getmessage(); finally try outputfile.flush(); outputfile.close(); connection.close(); catch (IOException ex) Logger.getLogger(ReceiverServlet.class.getName()).log(Level.SEVERE, null, ex); return null; 8

9. EK 3 private static string sendfile(string sourcegln, string destinationgln, string username, string pwd, string filepath) string result = ""; // create the envelope CoEnvelope e = new CoEnvelopeClass(); e.setmethod("sendfileparameters", "http://its.iegm.gov.tr/pts/sendpackage"); // create attachments manager CoAttachmentManager mgr = new CoAttachmentManagerClass(); mgr.format = AttachmentFormat.formatMime; // create the parameter, and point it at the attachment e.parameters.create("sourcegln", sourcegln, "", null, null); e.parameters.create("destinationgln", destinationgln, "", null, null); // create and configure the transport IHTTPTransport t = new HTTPTransportClass(); ((HTTPTransport)t).Authentication(userName, pwd); CoSoapAttachment att = mgr.request.create(@filepath, TypeNameFormat.tnfAbsoluteURI, "application/zip"); att.contentid = "filepart=123@swa.pocketsoap.com"; CoSoapNode n = e.parameters.create("filepart", null, "", null, null); n.href = att.uri; t.soapaction = ""; mgr.transport = t; ISOAPTransport st = mgr as ISOAPTransport; st.send("http://pts.saglik.gov.tr/pts/packagesenderwebservice", e.serialize()); string enc = ""; try e.parse(st, enc); CoSoapNode response = e.parameters.get_item(0); long transferid = long.parse(response.value.tostring()); result = "Transfer Id : " + transferid; catch (Exception ex) try CoSoapNode detailfault = e.parameters.get_itembyname("detail", ""); CoSoapNode packagetransfererror = detailfault.nodes.get_itembyname("packagetransfererror", ""); CoSoapNode faultcode = packagetransfererror.nodes.get_itembyname("faultcode", ""); CoSoapNode faultmsg = packagetransfererror.nodes.get_itembyname("faultmessage", ""); 9

result = "Hata : " + faultcode.value + " " + faultmsg.value; catch (Exception ex1) result = ex.message; return result; 10. EK 4 private static string getandsavefile(string sourcegln, long transferid, string username, string pwd, string filepathwithfilename) string result = ""; // create the envelope CoEnvelope e = new CoEnvelopeClass(); e.setmethod("receivefileparameters", "http://its.iegm.gov.tr/pts/receivepackage"); // create attachments manager CoAttachmentManager mgr = new CoAttachmentManagerClass(); mgr.format = AttachmentFormat.formatMime; // create the parameter, and point it at the attachment e.parameters.create("sourcegln", sourcegln, "", null, null); e.parameters.create("transferid", transferid, "", null, null); // create and configure the transport IHTTPTransport t = new HTTPTransportClass(); ((HTTPTransport)t).Authentication(userName, pwd); t.soapaction = ""; mgr.transport = t; ISOAPTransport st = mgr as ISOAPTransport; st.send("http://pts.saglik.gov.tr/pts/packagereceiverwebservice", e.serialize()); string enc = ""; try e.parse(st, enc); // get the returned attachment and dump some info about it CoSoapAttachment att = mgr.response.get_item(1); if ("application/zip".equals(att.typename)) att.save(filepathwithfilename + ".zip"); 10

else att.save(filepathwithfilename); result = "File : " + filepathwithfilename; catch (Exception ex) try CoSoapNode detailfault = e.parameters.get_itembyname("detail", ""); CoSoapNode packagetransfererror = detailfault.nodes.get_itembyname("packagetransfererror", ""); CoSoapNode faultcode = packagetransfererror.nodes.get_itembyname("faultcode", ""); CoSoapNode faultmsg = packagetransfererror.nodes.get_itembyname("faultmessage", ""); result = "Hata : " + faultcode.value + " " + faultmsg.value; catch (Exception ex1) result = ex.message; return result; 11