Yardıma ihtiyacım var. Örnek;
Otel rezervasyonu yapılacak. Oda fiyatları elbette farklı. Seçilen odanın rezervasyonu yapılırken rezervasyon tamamlanınca müşteri ödeme sayfasına gidiyor. Ama önceki sayfadan fiyatı nasıl çekeceğim?
Sanap Pos Finansbank.
Kodlar hazır.
Ödeme yapılabiliyor.
3DHosting Pay kullanıyorum. Yani Finansbank altyapısı. Site üzerinden ödeme esnasında kimseden bilgi alınmıyor.
Rezervasyon sonucu kişi devam butonuna tıklayarak finanasbank serverlarına gidip kart bilgilerini giriyor. Bu kısımda fiyat satırı bulunuyor. Bu satırı bana banka tarafından verilen 3Dhosting.php ve 3Dhostingodeme.php dosyalarında görebiliyor ve düzenleyebiliyorum AMA SORUN BURASI Kİ BUNU OTOMATİK ÇEKMEM LAZIM. ZİRA FİYATLAR ÇOK DEĞİŞKEN. BİR SÜRÜ ODA TİPİ BİR SÜRÜ FİYAT VAR. AYRICA GECE SAYISI DEĞİŞTİKÇE FİYATTA DEĞİŞİYOR. KİŞİ SAYISIYLA BİRLİKTE FİYAT DEĞİŞİYOR. yani fiyatı eklediğim dosyalarda görülen amount kısmına otomatik çekmem gerekiyor.
Altta görüldüğü üzere $amount = "9.95"; //tutar şeklinde bir satır var. 9.95 elle yazılmış. Bu şekilde yazıldığı zaman kart bilgilerinin girildiği kısımda ücret bu şekilde yazıyor. ben bunu bir önceki rezervasyon sayfasından otomatik çekebilir miyim.
3DHosting.php kodları
3D PAY
// ASAGIDA 3D SECURE ISLEMI IÇIN GEREKLI ALANLAR VE KULLANIMLARI ILE PHP KOD ÖRNEGI VERILMISTIR. GIRILEN DEGERLER TEST AMAÇLI GIRILMISTIR.
// 3D PAY HOSTING MODEL ÜZERINE DÜZENLENMIS KOD ÖRNEGIDIR. IS YERLERI KENDI DEGERLERIYLE DEGISKENLERI TANIMLAMALIDIR.
// IS YERLERINE REFERANS AMAÇLI OLUSTURULMUSTUR.
// 3D secure için gerekli alanlar 3d modelinde asagidaki alanlar ile birlikte formda yollanan alanlardir.
// Form disindaki alanlarin hidden text olarak post gerekmektedir.
$clientId = "XXXXXXXX"; //Banka tarafindan magazaya verilen isyeri numarasi
$amount = "9.95"; //tutar
$oid = ""; //Siparis numarasi
$okUrl = "http:///3DHostingOdeme.php"; //Islem basariliysa dönülecek isyeri sayfasi (3D isleminin ve ödeme isleminin sonucu)
$failUrl = "http:///3DHostingOdeme.php"; //Islem basarisizsa dönülecek isyeri sayfasi (3D isleminin ve ödeme isleminin sonucu)
$rnd = microtime(); //Tarih ve zaman gibi sürekli degisen bir deger güvenlik amaçli kullaniliyor
$taksit = ""; //Taksit sayisi
$islemtipi="Auth"; //Islem tipi
$storekey = "xxxxxx"; //Isyeri anahtari
$hashstr = $clientId . $oid . $amount . $okUrl . $failUrl . $islemtipi . $taksit . $rnd . $storekey; //güvenlik amaçli hashli deger
$hash = base64_encode(pack('H*',sha1($hashstr)));
?>
Kullanilan Hidden Parametreler
3DHostingodeme.php kodları
3D
3D Ödeme Sayfasi
3D Dönen Parametreler
Parametre Ismi
Parametre Degeri
$odemeparametreleri = array("AuthCode","Response","HostRefNum","ProcReturnCode","TransId","ErrMsg");
foreach($_POST as $key => $value)
{
$check=1;
for($i=0;$i<6;$i++)
{
if($key == $odemeparametreleri[$i])
{
$check=0;
break;
}
}
if($check == 1)
{
echo "".$key." ".$value." ";
}
}
?>
/* Yollanan hash ve gelen parametrelerle yeni olusturulan hash kontrol ediliyor */
$hashparams = $_POST["HASHPARAMS"];
$hashparamsval = $_POST["HASHPARAMSVAL"];
$hashparam = $_POST["HASH"];
$storekey="xxxxxx";
$paramsval="";
$index1=0;
$index2=0;
while($index1 < strlen($hashparams))
{
$index2 = strpos($hashparams,":",$index1);
$vl = $_POST[substr($hashparams,$index1,$index2- $index1)];
if($vl == null)
$vl = "";
$paramsval = $paramsval . $vl;
$index1 = $index2 + 1;
}
$storekey = "xxxxxx";
$hashval = $paramsval.$storekey;
$hash = base64_encode(pack('H*',sha1($hashval)));
if($paramsval != $hashparamsval || $hashparam != $hash)
echo "Güvenlik Uyarisi. Sayisal Imza Geçerli Degil
";
$mdStatus = $_POST["mdStatus"];
$ErrMsg = $_POST["ErrMsg"];
if($mdStatus == 1 || $mdStatus == 2 || $mdStatus == 3 || $mdStatus == 4)
{
echo "3D Islemi basarili
";
?>
Ödeme Sonucu
Parametre Ismi
Parameter Degeri
for($i=0;$i<6;$i++)
{
$param = $odemeparametreleri[$i];
echo "".$param." ".$_POST[$param]." ";
}
?>
$response = $_POST["Response"];
if($response == "Approved")
{
echo "Ödeme Islemi Basarili";
}
else
{
echo "Ödeme Islemi Basarisiz. Hata = ".$ErrMsg;
}
}
else
{
echo "3D Islemi basarisiz
";
}
?>
Bana yardım edebilecek, fiyatları nasıl çekeceğimi gösterebilecek birisi var mı?
Daha önce database'den bilgi çekmişliğim var ama fiyatlar database'e kayıtlanmıyor sanırım. Formdan direk fiyat çekmem gerekli.
Teşekkürler.