X
X

Lütfen Para Birimi Seçiniz

Türk Lirası $ US Dollar Euro
X
X

Lütfen Para Birimi Seçiniz

Türk Lirası $ US Dollar Euro

Opencart Samsite Hatası ve Çözümü (iyzico ödeme sorunu)

AnasayfaYazılarOpencart E-Ticaret YazılımıOpencart Samsite Hatası ve Çözümü (...

Opencart Samsite Hatası ve Çözümü (iyzico ödeme sorunu)

 

Merhaba arkadaşlar, 

 

Google Chrome yeni güncellemeleriyle samsite hatası opencart için büyük bir sorun haline gelmektedir. Özellikle sanal pos entegrasyonlarından donra ve alışveriş tamamlama esnasında bankanın 3D güvenlik sayfasında oturumunuzu sonlandırmakta ve ödemeniz yapılsa dahi siparişinizi oluşturmamakta, ayrıca opencart admin paneli üzerinden \'eksik siparişler\' bölümüne düşmektedir. Samsite hatası yüzünden bir çok E-ticaret sitesi sahibi ve E-Ticaret sitesi müşterileri ciddi sorunlar yaşamakta ve ödeme yapılmadı zannederek ödemeyi bir kaç defa gerçekleştirmektedirler.

 

Çoğunlukla bu hatayı, türkiyede ki sanal poslar içerisinde iyzico firmasın da bulabilirsiniz.

 

Bu yazımızda sizinle opencart e-ticaret yazılımının sanalpos entegrasyonun da ve ödeme konusunda sorun yaratan samsite hatasını çözümleme konusunda yardımcı olmaya çalışacağız.

 

Ayrıca Samsite hatası konusunda daha detaylı bilgi almak isterseniz. Aşağıda ki linke tıklayarak daha detaylı bilgi edinebilirsiniz.

 

Samsite Hatası nedir?

 

Samsite Hatasının Çözümü

 

İlk olarak kullanacağınız Php sürümünüz 7.3 versiyonu ve üstü bir sürüm olmasına dikkat etmenizdir. Şuna dikkat etmelisiniz ki bizlerde opencart 2.3. versiyonun da gerekli testleri yaptık ve bu konuda samsite hatasını giderdik. Diğer opencart versiyonlarında sizlerde alt kısımda vereceğimiz kodlara bakarak gerekli yerlerde düzenlemeler yaparak çözüm üretebilirsiniz.

 

Samsite hatası genel olarak session_start() ve setcookie() komutları öncesinde  \'samesite\' => \'None\' ve Secure parametrelerini ekleyerek çözebilirsiniz. 

 

Şimdi sizlere aşağıda değişmesi gereken dosya isimlerini ve dosya içerisindeki kodları paylaşacağım. Sitenizin herhangi bir problemle karşılaşmaması için dosyalarınızı yedek almanızı öneririm. Herhangi bir eksiklik görmeniz durumun da yorum olarak yazarsanız çok memnun oluruz.

 

catalog/controller/startup/startup.php

 

Bul : 

setcookie(\'language\', $code, time() + 60 * 60 * 24 * 30, \'/\', $this->request->server[\'HTTP_HOST\']);

Değiştir :

setcookie(\'language\', $code, [\'expires\' => time() + 60 * 60 * 24 * 30, \'path\' => \'/\', \'domain\' => $this->request->server[\'HTTP_HOST\'], \'samesite\' => \'None\', \'secure\' => true]);

 

Bul :

setcookie(\'currency\', $code, time() + 60 * 60 * 24 * 30, \'/\', $this->request->server[\'HTTP_HOST\']);

Değiştir : 

setcookie(\'currency\', $code, [\'expires\' => time() + 60 * 60 * 24 * 30, \'path\' => \'/\', \'domain\' => $this->request->server[\'HTTP_HOST\'], \'samesite\' => \'None\', \'secure\' => true]);

 

system/library/session.php

 

Bul : 

setcookie($key, $this->session_id, ini_get(\'session.cookie_lifetime\'), ini_get(\'session.cookie_path\'), ini_get(\'session.cookie_domain\'), ini_get(\'session.cookie_secure\'), ini_get(\'session.cookie_httponly\'));

Değiştir :

setcookie($key, $this->session_id, [\'expires\' => ini_get(\'session.cookie_lifetime\'), \'path\' => ini_get(\'session.cookie_path\'), \'domain\' => ini_get(\'session.cookie_domain\'), \'samesite\' => \'None\', \'secure\' => true, \'httponly\' => ini_get(\'session.cookie_httponly\')]);

 

Bul :

setcookie($key, \'\', time() - 42000, ini_get(\'session.cookie_path\'), ini_get(\'session.cookie_domain\'));

Değiştir :

setcookie($key, \'\', [\'expires\' => time() - 42000, \'path\' => ini_get(\'session.cookie_path\'), \'domain\' => ini_get(\'session.cookie_domain\'), \'samesite\' => \'None\', \'secure\' => true]);

 

Yukarıda belirtmiş olduğumuz dosya içerisinde bulunan kodları bularak değiştirmeniz gerelidir. Gerekli değişiklikleri gerçekleştirdikten sonra php.ini dosyanıza aşağıda bulunan kodları eklemelisiniz.

 

session.cookie_secure=On
session.cookie_samesite=\"None\"

 

Ayrıca  system/library/session.php dosyasında bulunan

 

ini_set(\'session.cookie_secure\', \'On\');
ini_set(\'session.cookie_samesite\', \'None\');

 

Kodlarının hemen altına

 

ini_set(\'session.cookie_httponly\', \'On\')

 

Yukarıda vemiş olduğumuz kodu da ekledikten sonra siteniz üzerinden deneme ürün olarak 1 lira değerinde bir ürün oluşturun ve siteniz üzerinden kredi kartı 3D güvenli ödeme gerçekleştirerek test edebilirsiniz herhangi bir sorun yaşamanız durumunda yorum olarak yazarsanız elimizden geldiğince yardımcı olmaktan mutluluk duyarız.




Top