Session Sorunu
Merhabalar, Bir sanal pos entegrasyonu yaptım ve gayet güzel çalışıyor , ama kart formunda girilen verileri alıp mail olarak göndermem gerekiyor ödeme tutarı ve başarılı olup olmadığını, tutarı pos bana post ile veriyor ama forumda girilen verileri farklı bir sayfada gösterebilmek için session ataması yapmam gerekiyor bu yüzden bunu yaptım ama şöyle bir sorun ortaya çıktı gelen mail de yer almıyor bu sessionlar, ama bu sorun kart bilgilerini yanlış girdiğin de olmuyor çünkü beni pos'a yönlendirmiyor. yönlendirmeden sonra session siliniyor sanırsam ama silinmemesi gerekiyor çünkü bildiğim kadarıyla session tarayıcı kapanana kadar kalır, bunu da test ettim sessionla bir veri oluşturduğum ve web sitenin sekmesini kapatım session göstermek istediğin sayfaya girdiğim de session aldığım veriyi gördüm. bana ne yapmam gerektiğini söyleyebilecek biri var mı ?
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (5)
Deneyeceğim Bahsettiğiniz şeyi. sunucuya veriyi kaydetmek daha mantıklı geldi ama bu sefer sorun where koşulu oldu ben ödemeyi yapan kişiyi sunucuya kaydediyorum ama ödeme durumu ve islem id veremiyorum bu sefer update işlemi tüm kayıtlara uygulanıyor. Bunun için bir öneriniz varsa beklerim where koşulum yok benim ilk defa bir sanal pos entegrasyonu yaptım da. Sizin sorunuza gelecek olursak. sanal pos için ssl sertifikası gerekiyor onun dışında atanmış bir ip adresi de şart yani paylaşımlı hosting ip kullanılmaması gerekiyor. diğer bahsettiğiniz şeyler mantıklı gelmedi free ya da paralı olması fark etmiyor. Sadece Sanal pos için bir özel ip adresine ihtiyaç var çünkü whitelist alıyorlar o ip ve artık ödeme alabiliyorsunuz o ip adresinden. Sanal pos için çalıştığım kurum param ile çalışıyor ve sanırsam başvuru onayından sonra size bir zip dosyası veriyorlar ve içerisinde örnek kodlar vs bulunuyor. ama benden önce yapıldığı için bu entegrasyon ben sadece ön yüzünü güncelledim ve mail gönderme işlemini yapmaya çalışıyorum .
ben yine benzer bir durumu session a oturum açtıgım yerde genel yol tanımı yaparak kurtardım.
bazen sorun sizin yazılımınızda degil server kısıtlamalarında oluyor. her zaman aklınızda bulunsun bi hostingle digeri birbirini tutmuyor. haliyle böyle ayarları bazen elle yapmak gerekiyor.
madem ödeme sistemi ile ilgili bilginiz var bende size birşey danışayım.
bu sanalposlar için bir makale okumuştum. bu sıradan hostinglerde ve ucuz SSL lerle çalışmıyorlarmış. bankalar güvenlik zafiyeti sebebiyle onay vermiyormuş.
bu tarz bi kıstas var mı ? hangi bankayla çalışıyorsunuz? api ve nasıl kullanıldığıyla ilgili banka bir makale yolluyor mu ?
Aslında , yönlendirme dediğimiz şey zaten domain.com/odemesayfaadi adlı ödeme sayfası sanal pos firması başarılı ya da başarısız olduğunda bir sayfaya yönlendirtiyior ben de bunun için 2 sayfa var. o da şöyle domain.com/odemsaydadası/basarli ya da basariz seklinde
buralardan herhangi birine girerse orada mail göndereceğim ama session bilgisi gelmiyor. yönlendirmeden kast ettim şey 3d yönlendiriyor ondan sonra yine siteye geliyor
Şöyle birşey yardımcı olur sanırım.
session_set_cookie_params(3600, '/', '.example.com', true, true, 'Lax');
$lifetime: Oturum çerezinin ömrüdür. Ömrü sıfıra ayarlarsanız, oturum çerezinin ömrü mevcut oturumun bitişine kadar olacaktır. Ömrü sıfırdan büyük bir değer ayarlarsanız, oturum çerezinin ömrü o kadar saniye olacaktır. Varsayılan değer, 0'dır.
$path: Oturum çerezinin hangi URL yollarında kullanılacağını belirtir. Varsayılan değer "/", tüm URL yollarında kullanılabilir olması anlamına gelir.
$domain: Oturum çerezinin hangi alan adlarında kullanılacağını belirtir. Örneğin, ".example.com" olarak ayarlanırsa, "www.example.com" ve "blog.example.com" gibi tüm alt alan adlarında kullanılabilir olur. Varsayılan değer, boştur ve yalnızca geçerli alan adında kullanılabilir.
$secure: Bu parametre, yalnızca HTTPS bağlantıları üzerinden oturum çerezinin gönderilip gönderilemeyeceğini belirler. true olarak ayarlanırsa, yalnızca HTTPS bağlantıları üzerinden gönderilebilir. Varsayılan değer, false'dur.
$httponly: Bu parametre, yalnızca HTTP veya HTTPS üzerinden erişilebilir olup olmadığını belirler. true olarak ayarlanırsa, yalnızca HTTP veya HTTPS üzerinden erişilebilir olacaktır. Bu sayede JavaScript kodları gibi tarayıcı dışı uygulamaların erişimine engel olunur ve oturum çerezinin çalınmasını önler. Varsayılan değer, true'dur.
$samesite: Bu parametre, oturum çerezinin hangi durumlarda tarayıcı tarafından otomatik olarak gönderilebileceğini belirtir. Bu, çerezin kötü amaçlı bir şekilde kullanımını önlemek için son zamanlarda geliştirilen bir özelliktir. None, Lax veya Strict olarak ayarlanabilir. Varsayılan değer, Lax'dir.
Örneğin, aşağıdaki kod, oturum çerezinin ömrünü 1 saat, tüm URL yollarında kullanılabilir olacak şekilde, yalnızca HTTPS bağlantıları üzerinden erişilebilir olacak şekilde, sadece HTTP veya HTTPS üzerinden erişilebilir olacak şekilde ve Lax olarak ayarlar:
session farklı bir domaine yönlendirildiginde okunmaya çalışıyorsa zaten okumaz.
yönlendirme dediginiz http://xxx.com dan https://xxx.com/endpage gibi bir sayfa ise session yolunu session_set_cookie_params(0, '/', '.example.com', true, true); parametresiyle tanımlamanız gerekiyor.