Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
KPS bağlantısı - 1800 TL ÖDÜLLÜ SORU
#1
Merhaba,

Kimlik paylaşım servisini biliyorsunuz, buna bağlanıp TCKIMLIKNO sorgulayacak ve geriye Nüfus Kayıt Örneğinde kaç birey varsa, "AdSoyad", "TCNo" ve "Yakinlik" bilgisini listeleyecek.

Delphi kodunu yazan kişiye, component fiyatı ödüldür. Yazan kişi benimle irtibata geçerse, birlikte uzak bağlantıyla deneriz. Yazdığı kod çalışırsa, ödülünü alır

- * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * 

Delphi'ye WSDL'i import edince oluşan unit de var, ektedir


.txt   NkoSorgulaService.txt (Dosya Boyutu: 59,14 KB / İndirme Sayısı: 31)

- * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * 

Çalışan Visual Studio c# kodu aşağıdaki gibidir.

Smile


        private void NKObirey_Click(object sender, EventArgs e)
        {
            string userName = "GenelMudurluk";
            string pwd = "Genel_2021_Mudurluk";
            string sorgulayanTC = "35297317801";

            NKOWSintra.NkoTCKimlikNoSorguKriteri[] kriterListV2 = new NKOWSintra.NkoTCKimlikNoSorguKriteri[1];
            kriterListV2[0] = new NKOWSintra.NkoTCKimlikNoSorguKriteri()
            {
                EskiEsListele = true,
                NKOTipi = NKOWSintra.NkoTur.NufusAileKayitOrnekKardesDahil,
                TCKimlikNo = long.Parse(KimlikNo.Text),
                Vukuatli = true
            };

            NKOWSintra.NkoSorgulaResp resp =
                GetService<NKOWSintra.NkoSorgulaServiceClient, NKOWSintra.INkoSorgulaService>
                (userName, pwd, sorgulayanTC).NkoSorgula(new NKOWSintra.NkoSorgulaReq() { KriterListesi = kriterListV2, cacheVeriGecerlilikSuresi = 0 });

            NKOWSintra.NkoSonucu kisiSonuc = resp.SorguSonucu;
            DataTable dt = new DataTable();

            if (kisiSonuc != null)
            {
                NKOWSintra.NkoKisi kisi = new NKOWSintra.NkoKisi();
                if (kisiSonuc.SorguSonucu[0] != null)
                {
                    dt.Columns.Add("AdSoyad", typeof(string));
                    dt.Columns.Add("TCNo", typeof(string));
                    dt.Columns.Add("Yakinlik", typeof(string));
                    for (int i = 0; i < kisiSonuc.SorguSonucu[0].Kisiler.Length; i++)
                    {
                      DataRow dr = dt.NewRow();
                      dr["AdSoyad"] = kisiSonuc.SorguSonucu[0].Kisiler[i].TemelBilgisi.Ad + " " + kisiSonuc.SorguSonucu[0].Kisiler[i].TemelBilgisi.Soyad;
                      dr["TCNo"] = kisiSonuc.SorguSonucu[0].Kisiler[i].TCKimlikNo.ToString();
                      dr["Yakinlik"] = kisiSonuc.SorguSonucu[0].Kisiler[i].YakinlikKod.Aciklama.ToString();
                      dt.Rows.Add(dr);
                    }
                }
                GridView1.DataSource = dt.DefaultView;
            }
        }

        private static TClient GetService<TClient, TChannel>(string username, string password, string uygulamaKullaniciAdi)
        where TClient : ClientBase<TChannel> where TChannel : class
        {
            TClient result = Activator.CreateInstance<TClient>() as TClient;
            ClientBase<TChannel> client = result as ClientBase<TChannel>;
            AddHeaders(client, username, password, uygulamaKullaniciAdi);
            return result;
        }

        public static void AddHeaders<T>(System.ServiceModel.ClientBase<T> client, string username, string password, string uygulamaKullaniciAdi) where T : class
        {
            EndpointAddressBuilder addressBuilder = new EndpointAddressBuilder(client.Endpoint.Address);
            addressBuilder.Headers.Add(AddressHeader.CreateAddressHeader("KullaniciAdi", string.Empty, username));
            addressBuilder.Headers.Add(AddressHeader.CreateAddressHeader("Parola", string.Empty, password));
            addressBuilder.Headers.Add(AddressHeader.CreateAddressHeader("UygulamaKullaniciAdi", string.Empty, uygulamaKullaniciAdi));
            client.Endpoint.Address = addressBuilder.ToEndpointAddress();
        }

- * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *

Türkiye'de en çok erişilen web servislerinden biri KPS Kimlik Paylaşım Servisi...

Şimdiye kadar kimse yazmamış mı ?
Cevapla
#2
Pek çok WEB servis uygulaması yaptım Buna e-Fatura da dahil. Ancak WSDL'linkinde sorun var. Bu tür projelerde ben öncelikle SoapUI ile WEB serivis'i import edip deniyorum. Bu linkte WSDL 'yi import edemiyor.

http://wsintra.ailevecalisma.gov.tr/nvi/...e.svc?wsdl
Cevapla
#3
(01-10-2021, Saat: 21:40)enigma Adlı Kullanıcıdan Alıntı: Pek çok WEB servis uygulaması yaptım Buna e-Fatura da dahil. Ancak WSDL'linkinde sorun var. Bu tür projelerde ben öncelikle SoapUI ile WEB serivis'i import edip deniyorum. Bu linkte WSDL 'yi import edemiyor.

http://wsintra.ailevecalisma.gov.tr/nvi/...e.svc?wsdl

IMPORT edemezsin, çünkü sadece çalıştığım kurumun statik IP adresinden gelen isteklere cevap veriyor.

IP kısıtlaması yani

ancak; ekteki unit + örnek c# kodu ile çalışılabilir

denemek için uzaktan bağlanmaya müsaitsen, özelden mesaj at lütfen

selametle kalın
Cevapla
#4
ip kısıtlaması olmasa bakardım bende ama deneyip takip etmeden olayları bişey diyemicem
Cevapla
#5
(02-10-2021, Saat: 01:20)kofmaster Adlı Kullanıcıdan Alıntı: ip kısıtlaması olmasa bakardım bende ama deneyip takip etmeden olayları bişey diyemicem


Mesaja eklediğim NkoSorgulaService.txt (unit.pas) dosyası + VS.net c# kodu, çalışmak için zaten yeterli ...

Ama yine olan biteni deneyerek görmem lazım derseniz, özelden mesajla bana numaranızı verin, uzaktan bağlantıyla birlikte bakabiliriz

vardığım nokta şu: 
Şimdiye kadar Delphi ile KPS'ye direkt bağlantı yapamamış hiç kimse !

Servisi yazarken çektiğim sıkıntıyı sorayım ; ISOAPHeaders hazırlayarak servis bağlantısı yapan var mı aramızda ?

Bazı Delphi'ciler, İşin kolayına kaçıp; visual studio ile ya servis ya da DLL oluşturmuş... Oluşturduğu servis ya da DLL'i de delphi'de kullanmış. Böylece KPS'yle bağlantı kurmuş...
( ben bu kalıyına kaçmak istemediğim için sembolik bi ödül koydum )

Türkiye'nin en sık kullanılan servislerinden biri olan KPS'ye Delphi ile direkt bağlanamıyoruz yaaaa....

Visual Studio olmadan Delphi'yle bu işi yapamıyoruz yaaa.... daha ne diyeyim....

(01-10-2021, Saat: 21:40)enigma Adlı Kullanıcıdan Alıntı: Pek çok WEB servis uygulaması yaptım Buna e-Fatura da dahil. Ancak WSDL'linkinde sorun var. Bu tür projelerde ben öncelikle SoapUI ile WEB serivis'i import edip deniyorum. Bu linkte WSDL 'yi import edemiyor.

http://wsintra.ailevecalisma.gov.tr/nvi/...e.svc?wsdl

Mesaj kutunuza bakar mısınız ?

Size numaramı gönderdim, bana ulaşın lütfen
Cevapla
#6
(01-10-2021, Saat: 21:40)enigma Adlı Kullanıcıdan Alıntı: Pek çok WEB servis uygulaması yaptım Buna e-Fatura da dahil. Ancak WSDL'linkinde sorun var. Bu tür projelerde ben öncelikle SoapUI ile WEB serivis'i import edip deniyorum. Bu linkte WSDL 'yi import edemiyor.

http://wsintra.ailevecalisma.gov.tr/nvi/...e.svc?wsdl

enigma arkadaşımız uzaktan bağlandı, vakit ayırdı, kendisine çok çok teşekkür ederim

HTTPRIO + service import sonrası oluşan UNIT'deki record yapısını kullanarak çözüm bulan var mı ?
Cevapla
#7
(01-10-2021, Saat: 20:43)otonomi Adlı Kullanıcıdan Alıntı: Merhaba,

Kimlik paylaşım servisini biliyorsunuz, buna bağlanıp TCKIMLIKNO sorgulayacak ve geriye Nüfus Kayıt Örneğinde kaç birey varsa, "AdSoyad", "TCNo" ve "Yakinlik" bilgisini listeleyecek.

Delphi kodunu yazan kişiye, component fiyatı ödüldür. Yazan kişi benimle irtibata geçerse, birlikte uzak bağlantıyla deneriz. Yazdığı kod çalışırsa, ödülünü alır

Bu konu bir zamanlar tartışılmıştı...
https://www.delphican.com/showthread.php?tid=1916

BAĞLANTI YAPABİLEN YOK sonucu çıkmıştı...
WWW
Cevapla
#8
SoapUI ile çalıştı. WSDL'yi import edip çalıştırdık. Ancak dönen cevap XML olarak oldukça uzun. Bunu parse etmek gerekiyor. Bu şekli ile otonomi nickli arkadaş benim işime gelmez dedi. Sonuç olarak B planı olarak kenarda duruyor.
Cevapla
#9
(02-10-2021, Saat: 20:33)enigma Adlı Kullanıcıdan Alıntı: SoapUI ile çalıştı. WSDL'yi import edip çalıştırdık. Ancak dönen cevap XML olarak oldukça uzun. Bunu parse etmek gerekiyor. Bu şekli ile otonomi nickli arkadaş benim işime gelmez dedi. Sonuç olarak B planı olarak kenarda duruyor.

doğrudur...

ancak HTTPRIO + service import sonrası oluşan UNIT'deki record yapısını kullanarak çözüm bulmam lazım... parse işlemi başka sorunlar çıkaracak....


(02-10-2021, Saat: 18:14)csunguray Adlı Kullanıcıdan Alıntı: https://www.delphican.com/showthread.php?tid=1916

BAĞLANTI YAPABİLEN YOK sonucu çıkmıştı...

bu sonuca boyun eğip, biz de delphi ile servis arasına bi visual studio ile DLL yazacağız demek ki... ( acziyet )

en azından şansımı denedim. ancak rahat durmam. ilk fırsatta BTgrubu'na durumu iletip
"sizin getirdiğiniz delphi ile kps'ye bağlanılmıyor" diye arıza çıkaracam

enigma'ya tekrar teşekkürler, uzaktan bağlanıp alternatif çözüm üretti
Cevapla
#10
Denizli'den Ahmet Nuri arkadaşımızın desteği ile SOAPHeader göndermeyi + sonuç getirmeyi başardık

Şimdi bunu makale haline getiriyorum, yakında burada paylaşacağım
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  web servis ile veritabanı bağlantısı nasıl yapılır? alisahin 3 4.296 28-05-2019, Saat: 08:52
Son Yorum: r3n4m3



Konuyu Okuyanlar: