เบราว์เซอร์จะไม่ตั้งค่าคุกกี้ ASP.NET_SessionId ตามคำขอการโพสต์ของเกตเวย์การชำระเงินในเว็บไซต์ของเรา
เราประสบปัญหาแปลก ๆ กับกระบวนการชำระเงินของเว็บแอปพลิเคชันซึ่งทำให้ข้อมูลเซสชันสูญหาย ในขั้นตอนนี้หลังจากที่ผู้ใช้หน้าเช็คเอาต์ของเราถูกเปลี่ยนเส้นทางไปยังหน้าของผู้ให้บริการชำระเงินและเปลี่ยนเส้นทางกลับไปที่เว็บไซต์ของเรา (ไปยัง URL ที่เราระบุไว้) ทันทีที่ทำเสร็จ การเปลี่ยนเส้นทางครั้งสุดท้ายนี้กระทำโดยการประเมินโค้ด HTML ของเบราว์เซอร์ของผู้ให้บริการชำระเงินซึ่งโดยทั่วไปจะประกอบด้วยแบบฟอร์มที่โพสต์ไปยังเว็บไซต์ของเราและโค้ดจาวาสคริปต์สองสามบรรทัดที่โพสต์แบบฟอร์มนั้น ณ จุดนี้เบราว์เซอร์ทำให้คำขอโพสต์ แต่ไม่ได้ตั้งค่าคุกกี้ "ASP.NET_SessionId" ซึ่งมีอยู่ในคำขอก่อนหน้านี้ที่ทำกับโดเมนเดียวกันทั้งหมด (โดเมนแอปพลิเคชันของเรา) สิ่งที่แปลกกว่าคือมันตั้งค่าคุกกี้อื่นที่เราใช้ชื่อว่า "AcceptCookie" เพียงเลือกที่จะวางคุกกี้ "ASP.NET_SessionId" เพื่อแสดงให้เห็นถึงสถานการณ์ที่ฉันถ่ายภาพหน้าจอบางส่วน (ในภาพหน้าจอสี่เหลี่ยมสีส้มและสีเขียวมีค่าเดียวกันทั้งหมด) นี่คือคำขอที่เกิดขึ้น (กับแอปพลิเคชันของเรา) เมื่อผู้ใช้กดปุ่ม "ชำระเงิน" หลังจากคำขอนี้ผู้ใช้ถูกเปลี่ยนเส้นทางไปยังหน้าของผู้ให้บริการชำระเงิน คำขอเช็คเอาท์ นี่คือหน้าสุดท้ายที่ให้บริการโดยผู้ให้บริการชำระเงินหลังจากผู้ใช้เสร็จสิ้นแล้ว อย่างที่คุณเห็นมันเป็นเพียงรูปแบบง่าย ๆ ที่โพสต์โดยอัตโนมัติไปยังโดเมนของเราเมื่อโหลดหน้าเว็บ คำตอบสุดท้ายของผู้ให้บริการชำระเงิน แต่คำขอโพสต์นี้ไม่รวมคุกกี้ "ASP.NET_SessionId" ซึ่งส่งผลให้ได้รับรหัสเซสชันใหม่และการสูญเสียข้อมูลเซสชันก่อนหน้า และอีกครั้งเพียงแค่ "ASP.NET_SessionId" หายไปไม่ใช่อีกคนหนึ่งชื่อ "AcceptCookie" คำขอโพสต์ที่นำผู้ใช้กลับสู่เว็บไซต์ของเรา (สร้างด้วย javascript ในขั้นตอนก่อนหน้า) ในที่สุดเราก็พบว่าในเบราว์เซอร์เวอร์ชันเก่าปัญหานี้จะไม่เกิดขึ้น ใน Firefox 52 มันใช้งานได้อย่างมีเสน่ห์ …