doğrulama yapmaya çalışıyorum ancak bir türlü başaramadım.Curl ile https bağlantısı kuruyorum ancak değerler boş dönüyor.Kendi uyguladığım kod;
class Tckimlik_dogrula
{
private $tc_no;
private $ad;
private $soy_ad;
private $dogum_yili;
public $soap_cevap;
function __construct($tc_no,$ad,$soy_ad,$dogum_yili)
{
$this->tc_no = $tc_no;
$this->ad = $ad;
$this->soy_ad = $soy_ad;
$this->dogum_yili = $dogum_yili;
$this->soap_istek_yap();
}
private function soap_istek_yap()
{
$c = curl_init();
curl_setopt($c,CURLOPT_URL,'https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx');
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($c, CURLOPT_CAINFO, getcwd() . "sertifika.crt");
curl_setopt($c,CURLOPT_POST,TRUE);
curl_setopt($c, CURLOPT_HTTPHEADER, array('Content-Type: application/soap+xml'));
curl_setopt($c,CURLOPT_POSTFIELDS,'
http://www.w3.org/2001/XMLSchema-instance "; xmlns:xsd=" http://www.w3.org/2001/XMLSchema "; xmlns:soap12=" http://www.w3.org/2003/05/soap-envelo pe">;
;
'.$this->tc_no.'
'.$this->ad.'
'.$this->soy_ad.'
'.$this->dogum_yili.'
');
curl_setopt($c,CURLOPT_RETURNTRANSFER,TRUE);
$cikti = curl_exec($c);
curl_close($c);
$this->soap_isle($cikti);
}
private function soap_isle($cikti)
{
if($cikti )
{
preg_match('#(.*?) #',$cikti ,$kk);
if($kk[1] == 'true')
{
$this->soap_cevap = 'd';
}elseif($kk[1] == 'false')
{
$this->soap_cevap = 'y';
}else
{
$this->soap_cevap = 'tc_yanlis';
}
}
}
}
// Kullanımı
$tc = new Tckimlik_dogrula('tc kimlik no','ad','soyad',dogum tarihi);
if($tc->soap_cevap == 'd')
{
// verilen tc kimlik numarası doğrudur ve diğer bilgiler uyuyor (ad,soyad,doğum tarihi)
echo 'tc kimlik numarası doğrudur';
}elseif($tc->soap_cevap == 'y')
{
// verilen tc kimlik numarası doğrudur fakat diğer bilgiler uymuyor (ad,soyad,doğum tarihi)
echo 'verilen tc kimlik numarasına diğer bilgiler uymuyor (ad,soyad,doğum tarihi)';
}else
{
// verilen tc kimlik numarası yanlıştır.
echo 'verilen tc kimlik numarası yanlıştır';
}
Gerekli sertifikayı siteden alıp bilgisayarıma yükledim.Ve curl ile içeri aldım.
Nerede hata var?
yardımcı olacak arkadaşlara şimdiden teşekkürler.