Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
HES Kodu Sorgulaması hakkında
#11
excel VBA projesiyle selenium eklentisi kullanılarak e-devletten HES kodu sorgulanabilir
Cevapla
#12
@r3n4m3 isteği üzerine bir uygulama geliştirmiştim eğer işinize yarayacaksa paylaşayım.

Not: Lütfen eğer istiyorsanız özelden yazmayınız direkt olarak belirtiniz; müsait olunca konu açarak yardımcı olayım.


TuWOl0.png
Yazılım Topluluğumuz -> Tıklayın
Kişisel Tanıtım Sitem -> Tıklayın
20 y/o, sadece öğrenmeye odaklanmış, insancık..
Cevapla
#13
(16-11-2020, Saat: 10:07)Halil Han BADEM Adlı Kullanıcıdan Alıntı: @r3n4m3 isteği üzerine bir uygulama geliştirmiştim eğer işinize yarayacaksa paylaşayım.

Not: Lütfen eğer istiyorsanız özelden yazmayınız direkt olarak belirtiniz; müsait olunca konu açarak yardımcı olayım.


TuWOl0.png


@Halil Han BADEM  hocam müsait olunca ben alabilirim çok teşekkür ederim.
Herhangi bir insan bilgisayarın anlayabileceği kod yazabilir.  İyi programcılar ise insanların da anlayabileceği kodlar yazarlar. 
Martin Fowler / Refactoring 
Cevapla
#14
(16-11-2020, Saat: 11:33)bydelphi Adlı Kullanıcıdan Alıntı:
(16-11-2020, Saat: 10:07)Halil Han BADEM Adlı Kullanıcıdan Alıntı: @r3n4m3 isteği üzerine bir uygulama geliştirmiştim eğer işinize yarayacaksa paylaşayım.

Not: Lütfen eğer istiyorsanız özelden yazmayınız direkt olarak belirtiniz; müsait olunca konu açarak yardımcı olayım.


TuWOl0.png


@Halil Han BADEM  hocam müsait olunca ben alabilirim çok teşekkür ederim.

Birkaç yerini optimize etmem gerek. Excel'i yüklerken çok uzun sürüyor. Şimdi onu ms hızına indirdim. Excel'i import edince tek tek sorgulama yapıp yanına sonucu yazıyor. Sonra isterseniz excel, csv veya xml olarak çıktı alabilirsiniz. Giriş işlemi için kişisel e devlet bilgilerinizi girmeniz gerekiyor. İnternete (3. şahıs) herhangi bir veri göndermiyor. Güvenlik için sniff yapabilirsiniz. Paylaşım linkini projeyi bitirince göndereceğim. (Source kodu henüz göndermeyeceğim.)
Yazılım Topluluğumuz -> Tıklayın
Kişisel Tanıtım Sitem -> Tıklayın
20 y/o, sadece öğrenmeye odaklanmış, insancık..
Cevapla
#15
@Halil Han BADEM bir öneri de bulunmak istiyorum.

"Eğer istenirse paylaşabilirim" demişsin. Bu şekilde genel kullanıma açacağın ve karmaşık olmayan küçük projelerde önerim Delphi ile gelen baz componentleri kullanmalısın.
Bu şekilde projeyi kullanmak isteyen veya değerlendirmek isteyen daha fazla kullanıcıya da kolaylık ve erişim sağlamış olursun. Bu durumda elinde hali hazırda DevEx kurulu olmayan kullanıcı grubu da değerlendirmiş olur.
PostgreSQL - Linux - Delphi, Poliüretan
WWW
Cevapla
#16
(16-11-2020, Saat: 15:01)3ddark Adlı Kullanıcıdan Alıntı: @Halil Han BADEM bir öneri de bulunmak istiyorum.

"Eğer istenirse paylaşabilirim" demişsin. Bu şekilde genel kullanıma açacağın ve karmaşık olmayan küçük projelerde önerim Delphi ile gelen baz componentleri kullanmalısın.
Bu şekilde projeyi kullanmak isteyen veya değerlendirmek isteyen daha fazla kullanıcıya da kolaylık ve erişim sağlamış olursun. Bu durumda elinde hali hazırda DevEx kurulu olmayan kullanıcı grubu da değerlendirmiş olur.

Tabii ki; görünüm bakımından hoş olsun diye devex kullandım. Bunu sadece Delphi IDE ile gelen componentler ile de yapabilirim. Zaten ilk aşamada exeyi dağıtacağım. Kaynak kodda biraz karmaşık değişiklikler yapmak zorunda kalacağım. Exe ile geçici sorunlar çözülsün; source için bu hafta içi veya haftasonu paylaşırım zaten. İsteyen istediği gibi kullansın. Exe için isteyen olursa ibaresini kullandım.
Yazılım Topluluğumuz -> Tıklayın
Kişisel Tanıtım Sitem -> Tıklayın
20 y/o, sadece öğrenmeye odaklanmış, insancık..
Cevapla
#17
(16-11-2020, Saat: 10:07)Halil Han BADEM Adlı Kullanıcıdan Alıntı: @r3n4m3 isteği üzerine bir uygulama geliştirmiştim eğer işinize yarayacaksa paylaşayım.

Not: Lütfen eğer istiyorsanız özelden yazmayınız direkt olarak belirtiniz; müsait olunca konu açarak yardımcı olayım.


TuWOl0.png

Evet Halil yardımcı oldu geçici lazımdı ve bu çözüm ile bizi kurtardı Big Grin. Bunu artık bıraktım çünkü api geldi ve saniyelik olarka 500 er kayit yapabiliyoruz. Fakat apiye sahip olmayanlar bu uygulama yardımcı olabilir.

Kolay gelsin
Cevapla
#18
@Halil Han BADEM Proje bitince gönderirmisiniz.
İyi çalışmalar.
Cevapla
#19
(17-11-2020, Saat: 08:50)Halil Han BADEM Adlı Kullanıcıdan Alıntı: Dün işten eve geçince exeyi düzeltip atacaktım fakat halsizlik ve baş ağrısından dolayı bilgisayara geçemedim. Bu yüzden kusura bakmayın. Bugün mesai arasında veya akşamında exeyi paylaşayım sizlerle.

Tekrar merhaba,

hemen excelden hızlandırma işlemini yapıp; yükledim. Dediğim gibi sizlerde test etmiş olacaksınız bende o ara evde boş olduğum saatlerde birkaç yeri geliştirmem gerekecek sonrasında ise kaynak kodu Github hesabından paylaşacağım.



Kullanım:

  1. Dosyayı indirdikten sonra yanında bulunan exceldeki "HES KODU BURAYA" alanlarına hes kodlarını girebilirsiniz.
  2. Sonrasında uygulamayı açınız.
  3. Excel ile import seçeneğine tıklayıp dosyayı import edin.
  4. İlgili kayıtlar grid üzerinde gözükecektir.
  5. "Giriş Bilgileri" butonu ile E-Devlet bilgileriniz ile giriş yapınız. Boşluklu bir ekranda E-Devlet ekranı gözükecektir zaten oradan takip edebilirsiniz.
  6. Giriş yapıldıktan sonra "HES Modülüne Git" butonu ile ilgili modüle gidiniz.
  7. Sonrasında Sorgulamayı başlat demeniz yeterli olacaktır.
TITJpS.png


TITaxP.png


NOT 

Griddeki alanlar @r3n4m3 hocamızın isteğinden kalmadır. Dediğim gibi düzenleme yapma imkanım olmadı bende birkaç ufak değişiklik yapıp en azından iş görmelik vaziyete  getirdim. Umarım geçici anlamda işinizi görür. Kaynak kodları bir kütüphane tarzında yazmıştım orada dediğim gibi düzenlemeler ve kontroller eklemem gerekecek. Açık kaynak şeklinde Github hesabımdan paylaşacağım inşallah.

Teşekkürler ve Elinize sağlık.
Cevapla
#20
@Halil Han BADEM'i paylaşımları için takdir ediyor ve desteği için teşekkürlerimi sunuyorum.

Bu paylaşımda kendisi de aslında hak verecektir, E-Devlet erişim bilgilerinin kapalı EXE içerisinde sunmak çok ama çok tehlikelidir. 
E-Devlet bilgilerimiz kişiye özel olduğundan yasal olarak da bu tip paylaşımları tasvip etmiyorum. Önce bunun altını çizeyim.

Paylaşım yaptığım ve araştırdığım konu tümüyle, "Sağlık Bakanlığı HES kodu sorgulaması" üzerinden - KİŞİSEL HERHANGİ BİR VERİ GÖNDERMEKSİZİN - HES kodu sorgusu üzerine idi.

Sağlık Bakanlığı bu takibi TCKimlik no üzerinden yapabilecek iken, HES kodu gibi bir çözüme başvurmasının sebeplerinden birisi de bu olmalı diye düşünüyorum.
Bu amaç kişilerin TCKimlik bilgilerini dahi karşı tarafa vermesinin önüne geçilmesi içindir. 

Çözüme ilişkin paylaşımım ise şu şekilde: Sadece kendi projelerinizde kendinizi yazacağı kod olarak değerlendirmenizi salık veririm. Üçüncü parti kullanımlar tümüyle hukuksuzdur.  
Bu yapı forumda da sıkça paylaştığımız basit birer HTML parse işlemidir.

Not: Salt yapıyı veriyorum, kontroller ile donatılabilir.

function HesKoduByEDevlet( TCKimlikNo, EDevletParola: String; HESKoduListesi: String; aWebBrowser: TWebBrowser ): String;
 procedure WaitFor( aKey: String );
 var
   Content : String;
 begin
   Content := '';
   while (Pos( aKey, Content ) = 0) do
   begin
     try Content := aWebBrowser.OleObject.Document.Body.InnerHtml; except end;
     Sleep(100);
     Application.ProcessMessages;
   end;
 end;
Const
 URL_EDevletLogin  = 'https://giris.turkiye.gov.tr/Giris/e-Devlet-Sifresi';
 URL_HesKodu       = 'https://www.turkiye.gov.tr/saglik-bakanligi-hes-kodu-sorgulama';
var
 HESContent  : String;
 aList       : TStringList;
 aIdx        : Integer;
begin
 aList := TStringList.Create;
 aList.Text := HESKoduListesi;
 try
   // Login İşlemi //
   aWebBrowser.Navigate( URL_EDevletLogin );
   while aWebBrowser.ReadyState <> READYSTATE_COMPLETE do
   begin
     Sleep(100);
     Application.ProcessMessages;
   end;
   aWebBrowser.OleObject.Document.GetElementById('tridField').Value    := TCKimlikNo;
   aWebBrowser.OleObject.Document.GetElementById('egpField').Value     := EDevletParola;
   aWebBrowser.OleObject.Document.getElementsByName('submitButton').item(0).click;

 WaitFor( 'Kullanıcı Menüsü' );

   for aIdx := 0 to aList.Count-1 do
   begin
     // HES Kodu Giriş Sayfasına Geçiş İşlemi //
     aWebBrowser.Navigate( URL_HesKodu );
     while aWebBrowser.ReadyState <> READYSTATE_COMPLETE do
     begin
       Sleep(100);
       Application.ProcessMessages;
     end;

     // HES Kodu Sorgulama İşlemi //
     aWebBrowser.OleObject.Document.GetElementById('hes_kodu').Value     := aList[aIdx];
     aWebBrowser.OleObject.Document.forms.item(1).Submit;

   WaitFor( '>Yeni Sorgu<' );

     // HES Kodu Sorgu Sonucu Parse İşlemi //
     HESContent := aWebBrowser.OleObject.Document.Body.InnerHtml;
       System.Delete( HESContent, 1, Pos('>Yeni Sorgu<', HESContent)  + Length('>Yeni Sorgu<')-1  );

     if Pos('>Sağlık Bilgileri<', HESContent ) > 0 then
     begin // Kod Geçerli Detay Bilgi
       System.Delete( HESContent, 1, Pos('>Risk Durumu<', HESContent) + Length('>Risk Durumu<')-1 );
       System.Delete( HESContent, 1, Pos('<dd>', HESContent) + Length('<dd>')-1  );
     end else
     begin // Kod Geçersiz mesajı döndürelim..
       System.Delete( HESContent, 1, Pos('<span>', HESContent) + Length('<span>')-1 );
     end;
     aList[aIdx] :=  aList[aIdx] + '|' + Copy( HESContent, 1, Pos('<', HESContent)-1 );
   end;
   Result := aList.Text;
 finally
   aList.Free;
 end;
end;



Örnek kullanım :
procedure TForm1.BitBtn1Click(Sender: TObject);
var
aListe : TStringList;
begin
aListe := TStringList.Create;
try
  aListe.Add( 'N3X9-5127-12' );
  aListe.Add( 'R7T1-7513-19' );
                               //
  aListe.Text := HesKoduByEDevlet( 'tckimlik_numaranız', 'edevlet_parolanız', aListe.Text, WebBrowser1 );
  Showmessage( aListe.Text );
finally
  aListe.Free;
end;
end;
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  SOAP işlemlerinde TMom yapısı hakkında adelphiforumz 9 592 31-12-2020, Saat: 20:34
Son Yorum: sabanakman
  Tarım Bakanlığı Bitki Koruma Ürünleri Bildirimi Hakkında bünyamin68 7 394 28-12-2020, Saat: 23:46
Son Yorum: hi_selamlar
  Merkez Bankası Döviz Kurları Hakkında adelphiforumz 12 3.900 26-11-2020, Saat: 12:26
Son Yorum: bydelphi
  Com Dll hakkında trpersia 4 470 19-11-2020, Saat: 02:54
Son Yorum: trpersia
  TButtonGroup Hakkında bkantur 7 499 06-11-2020, Saat: 06:52
Son Yorum: bajerli



Konuyu Okuyanlar: 1 Ziyaretçi