Ödeme geçidi kullanırken IE8 benim oturum verileri kaybeder

3 Cevap php

Bu biraz aralıklı olarak görünen gerçekten garip bir sorun olduğunu (şimdi meydana gelen sürekli başlamış olmasına rağmen - belki nedeniyle Windows Update?).

Benim önce kod görünüşte başka bir tarayıcı ama IE8 IE7 iyi çalıştı, ve Firefox, Chrome çalışmaya devam ediyor, ve oldu.

(Herhangi bir fark yaparsa, Protx / Adaçayı) karşılığında ben benim oturum verilerini referans ihtiyacı olan, bazı oturum verileri belirleme ve daha sonra bir ödeme ağ geçidi kullanıcıyı geçiyorum. Ama benim oturum verileri kaybolur. IFrame yok, sadece bir link aynı tarayıcı penceresinde, ödeme sayfasına kullanıcı alır - Ben ödeme ağ geçidi ekran ile süslü bir şey yapmıyorum.

Bazı okuma yapmış olan, (görünüşte bu IE8 oturum verileri kaybetmenize neden olabilir) benim sayfa uyumluluk modunu zorlamak için aşağıdaki eklemeyi denedim:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

Bu hiçbir etkisi (ama sonra, bildiğim kadarıyla söyleyebilirim, ödeme sayfa uyumluluk modu zorlama değil) vardı.

Orada iframe'ler bu davranışa neden olduğunu söyleyerek oldukça birkaç kişi gibi görünüyor, ancak yine hiçbir iframe'ler kullanılır.

Kalıcı oturum verileri IE8 nasıl göz önüne alındığında - tarayıcısının yeni bir örneği başlatılır IE7 ve diğer tarayıcılar, aksine, tarayıcının başka bir örneğini herhangi bir oturum erişilebilir - nerede ve nasıl oturum verileri görmek için mücadele ediyorum kaybolmuş.

3 Cevap

I've done this kind of thing with Sage Pay before. Here is what I did, it might help:

1. Register the transaction
2. Save the current session Id to database (eg. inside the temporarily stored transaction)
3. Send the user off to sage pay to do the payment
4. Sage pay notifies you and you can load up the temp transaction
5. Pass the session id as a query string parameter for your redirect url
6. On the redirect (completion page) check if there is a session id var in the request and if there is, then call session_id($theIdYouGotFromQueryString) before calling session_start()

ps evet i doğrudan cevap vermez biliyorum. Ama belki bu şekilde yaparak yardımcı olacak?

Ben aynı sorunu vardı ve ne kadar aşağı izlenen olduğunu sen oturumu oluşturmak için bir sayfa kullanmak ve üretilen bir kez o zaman bir başlık (Yer: ...) yaparsak; IE korumalı modda yeni bir oturum oluşturmak gerektiğini düşünüyorum çağırmak ve önceki oturumdan tüm çerezleri düşecek.

Nasıl oturumu depolamak - bir tanımlama veya sayfada bir gizli değişken / form alanında (ikincisi ise, o zaman muhtemelen ödeme ağ geçidi geri dönmedi) gibi.

IE ve oturumları ile geçmişte benzer bir sorun vardı, ama bu IE doğru tanımlama kurtarmak için değil neden olur (örneğin test_site.internal gibi) konak bir çizgi olan geliştirme test alanı aşağı takip edildi.

Ayrıca Charles Proxy Eğer durak geçirilen gereken nokta verileri de görebilirsiniz görmek için Internet Explorer ve sunucu (lar) arasındaki veri akışını izlemek için denemek isteyebilirsiniz.