Ben PHP ve PayPal API kullanarak bir uygulama var. Bir ödeme almak için çalışan temel yolu bir belirteci almak için PayPal'a bir web hizmeti çağrısı yapmak ve sonra bir tarayıcı ödemek için kullanıcı için bu belirteç ile PayPal'a yönlendirmek olduğunu. Ödeme bilgilerini teyit edilmiş sonra, PayPal başlangıçta hizmeti çağrısı ayarlamak URL'ye geri yönlendirir.
Bu, tüm işleri, milyonlarca insan vesaire, her gün kullanabilirsiniz.
Tuhaf bir şey PayPal geri yönlendirir zaman, PHP oturum gitti, olduğunu. Bir well-documented issue bulunuyor.
İlk soru: bu neden oluyor? Hem sayfalar, hem HTTPS kullanın, aynı etki vardır. Oturum PayPal geri yönlendirme kadar tüm istekleri için çalışıyor.
Bağlantılı forum iplik PayPal isteği oturum kimliği kalıcı ve daha sonra geri almak ve geri yüklemek için oturumu, geçici bir çözüm önerir. Büyük, çalışmak için görünmüyor hariç.
Bazı günlük ifadeleri ekleyebilirsiniz:
log(session_id());
öncesi ve çeşitli yönlendirmeler sonra. Geri PayPal gelirken, ben biraz daha açın.
log("session id is " . session_id());
$session_id = get_session_id_from_paypal();
log("setting it back to " . $session_id);
session_id($session_id);
session_start();
log("session id is now " . session_id());
Sonuç Ben ne beklediğiniz hiç değil:
session_id
is fc8f459a186a3f4695ff9ac71b563825
setting it back to 82460dcf8c8ddd538466e7cb89712e72
session_id
is now 360ba3fd99d233e0735397278d2b2e55
İkinci soru: neden session id hiç bunu ayarlanmış nedir? Ben yanlış ne yapıyorum? Ya da, en azından, neden oturum değişkenlerinin hiçbiri geri geliyor?