lostyazilim
tr.link

KPSv2 Sistemi

7 Mesajlar 4.668 Okunma
lstbozum
tr.link

aykutugce aykutugce www.aykutokyay.com.tr Kullanıcı
  • Üyelik 06.03.2012
  • Yaş/Cinsiyet 34 / E
  • Meslek Kodlama Uzmanı
  • Konum Antalya
  • Ad Soyad A** O**
  • Mesajlar 81
  • Beğeniler 11 / 11
  • Ticaret 1, (%100)
KPSv2 kimlik bilgileri sorgulamak istiyorum.
Örnek uygulamaları mevcut fakat php dilinde bulunmuyor. Kendim bir fonksiyon yazdım ama STS servis cevabı alamıyorum. Bana yardımcı olabilir misiniz?

CSharpConsole Örnek Uygulama
https://kpsv2.saglik.gov.tr/assets/samples/KPS_CSharpConsoleApp_SoapRequest.zip


Benim Yazdığım Örnek Kod;

index.php

/**
* Created by PhpStorm.
* User: aykutokyay
* Date: 18.05.2019
* Time: 00:44
*/

ini_set('memory_limit','512M');
error_reporting(E_ALL);
ini_set("display_errors", 1);

require 'KPSRequestSample.php';


$kullanici = 'test_user';
$sifre = 'f6)@6U:l';

$kps = new KPSRequestSample();
$sorgu = $kps->GetSTSToken($kullanici, $sifre);

print_r($sorgu);


KPSRequestSample.php

/**
* Created by PhpStorm.
* User: aykutokyay
* Date: 18.05.2019
* Time: 00:45
*/

class KPSRequestSample
{

//Gerçek Ortam
const kpsUrl = "https://kpsv2.saglik.gov.tr/Router/RoutingService.svc";
const stsUrl = "https://kpsv2.saglik.gov.tr/STS/STSService.svc";

//Test Ortamı
const kpsTestUrl = "https://kpsv2test.saglik.gov.tr/Router/RoutingService.svc";
const stsTestUrl = "https://kpsv2test.saglik.gov.tr/STS/STSService.svc";


public function BilesikKisiSorgula($kimlikNo, $username, $password){

$kpsTestUrl = static::kpsTestUrl;
$stsTestUrl = static::stsTestUrl;

$NewGuid = $this->uuid();
$token = $this->GetSTSToken($username,$password);
$created = $this->getZamanDamgasi();
$expires = $this->getZamanDamgasi(300);

$kpsRequestEnvelope = <<

https://www.saglik.gov.tr/KPS/01/01/2017/IKpsServices/BilesikKisiSorgula
urn:uuid:$NewGuid

http://www.w3.org/2005/08/addressing/anonymous

$kpsTestUrl


$created
$expires

$token




$kimlikNo



XML;

$result = $this->SendSoapRequest($kpsTestUrl, $kpsRequestEnvelope);

return $result;

}

public function GetSTSToken($username,$password){

//Test Ortamı
$kurumKodu = 123456;
$uygulamaKodu = "8353df93-453c-4e23-8be8-2f913dd35313";

$created = $this->getZamanDamgasi();
$expires = $this->getZamanDamgasi(300);

$NewGuid = $this->uuid();

$kpsTestUrl = static::kpsTestUrl;
$stsTestUrl = static::stsTestUrl;

$sorgu = <<

http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/Issue
urn:uuid:$NewGuid

http://www.w3.org/2005/08/addressing/anonymous

$stsTestUrl
$kurumKodu
$uygulamaKodu


$created
$expires
");

$username
$password







$kpsTestUrl


http://docs.oasis-open.org/ws-sx/ws-trust/200512/Bearer
http://docs.oasis-open.org/ws-sx/ws-trust/200512/Issue



EOD;

$tokenSend = $this->SendSoapRequest($stsTestUrl, $sorgu);

return $tokenSend;
}

public function SendSoapRequest($adres, $xml){
date_default_timezone_set('Asia/Istanbul');


$headers = array(
'Content-type: application/soap+xml; charset=utf-8',
'Accept: text/xml',
'Cache-Control: no-cache',
'Pragma: no-cache',
'SOAPAction: '.$adres,
'Content-Length: '.strlen($xml),
);

$options = array(
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => 1, // return web page
CURLOPT_HEADER => 1, // don't return headers
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $xml,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_SSL_VERIFYHOST => 0,
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_VERBOSE => 1,
CURLOPT_TIMEOUT => 10,
);

$soap_do = curl_init($adres);
curl_setopt_array($soap_do, $options);
/*
curl_setopt($soap_do, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($soap_do, CURLOPT_TIMEOUT, 10);
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true );
curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($soap_do, CURLOPT_POST, true );
curl_setopt($soap_do, CURLOPT_POSTFIELDS, $xml);
curl_setopt($soap_do, CURLOPT_HTTPHEADER, $headers);
curl_setopt($soap_do, CURLOPT_VERBOSE, 1);
*/

if(curl_exec($soap_do) === false) {
$err = 'Curl error: ' . curl_error($soap_do);
curl_close($soap_do);
print $err;
} else {
$response = curl_exec($soap_do);
/*
$header_size = curl_getinfo($soap_do, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);
*/
curl_close($soap_do);
return $response;
}

/*
try {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $adres);
curl_setopt($ch, CURLOPT_REFERER, "https://kpsv2test.saglik.gov.tr/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/soap+xml; charset=utf-8',
));
$sonuc = curl_exec($ch);
curl_close($ch);
return $sonuc;
}catch (Exception $e) {
return $e;
}
*/

}

private function getZamanDamgasi($aralik = 0) {
return gmdate("Y-m-d\TH:i:s\Z", time() + $aralik);
}

/**
* Generates UUID
*
* @return string UUID
*/
protected function uuid()
{
return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', //
mt_rand(0, 0xffff), //
mt_rand(0, 0xffff), //
mt_rand(0, 0xffff), //
mt_rand(0, 0x0fff) | 0x4000, //
mt_rand(0, 0x3fff) | 0x8000, //
mt_rand(0, 0xffff), //
mt_rand(0, 0xffff), //
mt_rand(0, 0xffff) //
);
}
}
 

 

wmaraci
reklam

0ktay 0ktay strdex Kullanıcı
  • Üyelik 01.02.2018
  • Yaş/Cinsiyet 26 / E
  • Meslek Yazılım öğrencisi
  • Konum Antalya
  • Ad Soyad O** Ş**
  • Mesajlar 603
  • Beğeniler 25 / 155
  • Ticaret 2, (%100)
Kimlik bilgilerini doğrulamak için nvi api bilgilendirmesini incelemelisiniz, ona örnek olarak github'da bir yığın bununla ilgili içerik mevcut işini görecek bir tane link bırakabilirim.

https://gist.github.com/saltun/439794ab032b7a894d91
 

 

Eğitimin pahalı olduğunu düşünüyorsanız, cehaletin bedelini hesaplayın.

erbasaran erbasaran Yazılım Mühendisi Kullanıcı
  • Üyelik 01.07.2011
  • Yaş/Cinsiyet 34 / E
  • Meslek Yazılım Mühendisi
  • Konum Ankara
  • Ad Soyad R** E**
  • Mesajlar 309
  • Beğeniler 2 / 77
  • Ticaret 70, (%100)
Hocam Sağlık Bakanlığı KPS servisini bildiğim kadarıyla kendi sistemleri için kullanıyorlar. Siz NVI nin servisini kullanmanız gerekmektedir.

https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx?op=TCKimlikNoDogrula
 

 

imza yok...

aykutugce aykutugce www.aykutokyay.com.tr Kullanıcı
  • Üyelik 06.03.2012
  • Yaş/Cinsiyet 34 / E
  • Meslek Kodlama Uzmanı
  • Konum Antalya
  • Ad Soyad A** O**
  • Mesajlar 81
  • Beğeniler 11 / 11
  • Ticaret 1, (%100)

0ktay adlı üyeden alıntı

Kimlik bilgilerini doğrulamak için nvi api bilgilendirmesini incelemelisiniz, ona örnek olarak github'da bir yığın bununla ilgili içerik mevcut işini görecek bir tane link bırakabilirim.

https://gist.github.com/saltun/439794ab032b7a894d91


inceleyeyim kardeşim teşekkürler
 

 

wmaraci
wmaraci

aykutugce aykutugce www.aykutokyay.com.tr Kullanıcı
  • Üyelik 06.03.2012
  • Yaş/Cinsiyet 34 / E
  • Meslek Kodlama Uzmanı
  • Konum Antalya
  • Ad Soyad A** O**
  • Mesajlar 81
  • Beğeniler 11 / 11
  • Ticaret 1, (%100)

erbasaran adlı üyeden alıntı

Hocam Sağlık Bakanlığı KPS servisini bildiğim kadarıyla kendi sistemleri için kullanıyorlar. Siz NVI nin servisini kullanmanız gerekmektedir.

https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx?op=TCKimlikNoDogrula


hocam bende sağlık bakanlığında çalışıyorum. kurum içinde kullanacağım için bu sistemi kullanmam gerekiyor. Teşekkür ederim.
 

 

Mrtcn Mrtcn PrismaCSI Kullanıcı
  • Üyelik 06.09.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek Cyber Sec &amp; Project Manager
  • Konum Ankara
  • Ad Soyad M** G**
  • Mesajlar 3356
  • Beğeniler 481 / 1987
  • Ticaret 10, (%100)
Eskiden SOAP ile https://kps.nvi.gov.tr/mernis.KPS.Web.si/kps.asmx adresine bağlanılırdı, ardından örneğin bizmed kullanılıyor ise /bizMEDWS.asmx?WSDL adresine gönderilirdi, şimdi buna tek fark WS Security eklenip kurum kodu ve Yazılımın uuid si girilmesi gerekiyor. (test ortamı için zaten yazıyor)

Test adasındaki TC de 1111111111 olması lazım.

Şuan bu sistemler üstüne yazılım yapan var mı forumda acaba

ek1: BilesikKisiSorgula ile sorgulayanın tc nosu da gönderilmesi gerekiyordu yanlış hatırlamıyorsam.

https://kpsv2.saglik.gov.tr/assets/samples/KPS%20Teknik%20Dok%C3%BCman%C4%B1.pdf
 

 

aykutugce aykutugce www.aykutokyay.com.tr Kullanıcı
  • Üyelik 06.03.2012
  • Yaş/Cinsiyet 34 / E
  • Meslek Kodlama Uzmanı
  • Konum Antalya
  • Ad Soyad A** O**
  • Mesajlar 81
  • Beğeniler 11 / 11
  • Ticaret 1, (%100)

Mrtcn adlı üyeden alıntı

Eskiden SOAP ile https://kps.nvi.gov.tr/mernis.KPS.Web.si/kps.asmx adresine bağlanılırdı, ardından örneğin bizmed kullanılıyor ise /bizMEDWS.asmx?WSDL adresine gönderilirdi, şimdi buna tek fark WS Security eklenip kurum kodu ve Yazılımın uuid si girilmesi gerekiyor. (test ortamı için zaten yazıyor)

Test adasındaki TC de 1111111111 olması lazım.

Şuan bu sistemler üstüne yazılım yapan var mı forumda acaba

ek1: BilesikKisiSorgula ile sorgulayanın tc nosu da gönderilmesi gerekiyordu yanlış hatırlamıyorsam.

https://kpsv2.saglik.gov.tr/assets/samples/KPS%20Teknik%20Dok%C3%BCman%C4%B1.pdf


Aynen Hocam Kurum Kodu ve Uygulama Kodu Mevcut bu yüzden Token Oluşturmadan sorgulama yapmıyor.

Kodlamamda hata var mı nasıl yapabilirim diye sizlerle paylaşmak istedim. Sorun nereden kaynaklanıyor çözemediğim için yardım istedim.
Hepinize ayrı ayrı teşekkür ederim.

İyi Çalışmalar....
 

 

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al