Curl İle Oturum Açma Sorunu (ÇÖZÜLDÜ)

Web tabanlı uygulama geliştirme araçları(PHP, ASP vb...) ile ilgili konuları buraya yazabilirsiniz.
Cevapla
theSinan02
Üye
Mesajlar: 28
Kayıt: 15 Eyl 2014 11:33

Curl İle Oturum Açma Sorunu (ÇÖZÜLDÜ)

Mesaj gönderen theSinan02 » 10 Mar 2018 08:08

S.a

Php Curl ile Oturum Açmaya Çalışıyorum Oturum Açmıyor Aynı Bilgileri Bir Form Aracılığı ile Karşı Tarafa Gönderdiğimde Sisteme Giriş Yapıyor
Ancak Aynı Bilgileri Php Curl ile Gönderip Oturum Açmaya Çalışıyorum Sisteme Giriş Yapamıyorum


Kod: Tümünü seç

function baglan($url,$tip ) 
	{
	if($tip=='baslangic') 
		{ 
		$ch = curl_init(); 
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 	false); 
		curl_setopt($ch, CURLOPT_REFERER,			"https://odeme.paynet.com.tr/Account/Login");
		curl_setopt($ch, CURLOPT_COOKIEJAR, 		'paynet_cookie.txt'); 
		curl_setopt($ch, CURLOPT_COOKIEFILE,		'paynet_cookie.txt');
		curl_setopt($ch, CURLOPT_USERAGENT,		$_SERVER ["HTTP_USER_AGENT" ] ); 
		curl_setopt($ch, CURLOPT_HEADER , 		1 ); 
		curl_setopt($ch, CURLOPT_COOKIESESSION ,	true );	
		curl_setopt($ch, CURLOPT_URL,			$url); 
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 	1); 
		$calistir = curl_exec($ch); 
		curl_close($ch); 
		$ar1 = '<\input name="__RequestVerificationToken" type="hidden" value="'; 
		$ar2 = '"'; 
		preg_match("/$ar1(.*?)$ar2/s", $calistir,$dizi); 
		$_SESSION['__RequestVerificationToken']=urlencode($dizi[1]);

		}
	else if($tip=='giris')
		{
		$_SESSION['ch'] = curl_init();
		$fields = "__RequestVerificationToken=".$_SESSION['__RequestVerificationToken']."&CustomerCode=".$_SESSION["CustomerCode"]."&Username=".$_SESSION['Username']."&Password=".$_SESSION['Password']; 
		//echo "Url Adresi= $url\n\rGonderilen Post Bilgileri=$fields\n\r  "; 
		curl_setopt($_SESSION['ch'], 	CURLOPT_SSL_VERIFYPEER, 	false); 
		curl_setopt($_SESSION['ch'],	CURLOPT_REFERER,			"https://odeme.paynet.com.tr/Account/Login"); 
		curl_setopt($_SESSION['ch'], 	CURLOPT_COOKIEJAR, 		'paynet_cookie.txt'); 
		curl_setopt($_SESSION['ch'], 	CURLOPT_COOKIEFILE, 		paynet_cookie.txt');
 		curl_setopt($_SESSION['ch'] , 	CURLOPT_COOKIESESSION , 	true );
		curl_setopt($_SESSION['ch'], 	CURLOPT_USERAGENT, 		$_SERVER ["HTTP_USER_AGENT" ] );
		curl_setopt( $_SESSION['ch'] , 	CURLOPT_HEADER , 			1 ); 
		//curl_setopt($_SESSION['ch'], 	CURLOPT_FOLLOWLOCATION, 	1);
		curl_setopt($_SESSION['ch'],	CURLOPT_POST,			1); 
		curl_setopt($_SESSION['ch'], 	CURLOPT_POSTFIELDS,		$fields );
		curl_setopt($_SESSION['ch'],	CURLOPT_URL,				$url);
		curl_setopt($_SESSION['ch'], 	CURLOPT_RETURNTRANSFER, 	1); 
		$output = curl_exec($_SESSION['ch']);
		} 

	}
yukarıdaki Fonksiyon Curl Fonksiyonum
Önce iki Parametre Alıyor Birincisi Url diğeri Tip (Bağlantı Tipi )Önce
baslangic için URL Gönderiyorum Çünkü Formdaki __RequestVerificationToken İnput içeriğini alıp Session atıyorum sonra baglantıda kullanacağım
Fonksiyonu Aşağıdaki Kodlar ile Kulanıyorum


Kod: Tümünü seç

baglan("https://odeme.paynet.com.tr/Account/Login","baslangic" ); 
	$_SESSION["CustomerCode"]	= musteri_kod; 
	$_SESSION["Username"] 		= kullanici_ad;
	$_SESSION["Password"]	= sifre;  
	echo baglan("https://odeme.paynet.com.tr/Account/Login","giris" );
 
Curl ile Oturum açarken

Kod: Tümünü seç

	curl_setopt($_SESSION['ch'], CURLOPT_USERAGENT, $_SERVER ["HTTP_USER_AGENT" ] );
ile tarayıcı bilgilerinide gönderiyorum
başka ne kontrolu yapabilir ki
acaba nerde hata yapıyorum
yardımlarınız için Allah Razı Olsun
En son theSinan02 tarafından 10 Mar 2018 10:45 tarihinde düzenlendi, toplamda 1 kere düzenlendi.

mkysoft
Kıdemli Üye
Mesajlar: 2911
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: Curl İle Oturum Açma Sorunu

Mesaj gönderen mkysoft » 10 Mar 2018 09:32

Belki sorunuza çözüm olmayacak ama, paynet'in apileri mevcut, yapmak istediğinizi api üzerinden sağlayamıyor musunuz?

paynet tarafı c# ile geliştirme yaptığı için session ile ilgili bir sıkıntı olabilir, kodlarınızda cookie set ettiğinizi görüyorum, ancak otomatik değişen bir session id veriliyor olabilir. önce login sayfasını çağırıp gelen cookileri alarak istek yapmanız gerekiyor olabilir.

theSinan02
Üye
Mesajlar: 28
Kayıt: 15 Eyl 2014 11:33

Re: Curl İle Oturum Açma Sorunu

Mesaj gönderen theSinan02 » 10 Mar 2018 10:42

hocam allah razı olsun
sorun session imiş aldım
cekip set edince
ve login oldum benim paynet te direk hesabım yok tedarikci hesabını na pos çekip yerine ürun alıyoruz
tedarikçi adına cekim olunca hem komisyonlarda baya uygun oluyor
şimdi ikinci aşama 3d çekim sonrası musteri ödeme onayı sonrası paynet sayfasına yonlendirecek bakalım onu nasıl çözeceğim
yardımın için allah razı olsun

mkysoft
Kıdemli Üye
Mesajlar: 2911
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: Curl İle Oturum Açma Sorunu (ÇÖZÜLDÜ)

Mesaj gönderen mkysoft » 11 Mar 2018 10:57

Bu süreç yine api ile yapılıyor. Size sağlanan adrese abone numaranızı ve güvenlik anahtarınızı ve ödeme yöntemine dair bilgileri gönderiyorsunuz. Paynet ödeme sayfası açılıyor, ödeme sonrası yine parametre olarak belirttiğiniz adrese sonuç iletiliyor. Tedarikçi dediğiniz Arena mıdır? Yoksa daha alt bayileri mi kullanıyorsunuz?

Cevapla