วันนี้ฉันเปิดการดีบักของ WeChat JSSDK โดยไม่ตั้งใจและพบว่าข้อมูลการดีบักทำให้เกิดข้อผิดพลาดในลายเซ็นเสมอ "บางครั้ง" ของ API ไม่มีผลเมื่อสองวันก่อนไม่ใช่เพราะรหัสไม่ได้ถูกดำเนินการ แต่เนื่องจากลายเซ็นไม่ถูกต้อง! นี่เป็นข้อผิดพลาดที่ทำซ้ำได้ 100%
แต่ตราบใดที่สปาเพิ่งได้รับการรีเฟรชหรือไม่กระโดดอยู่ตรงกลางหลังจากโหลดลายเซ็นจะถูกต้อง
แต่เมื่อเส้นทางเปลี่ยนไปหลังจากที่เราลงนามหน้า "กระโดด" ใหม่อีกครั้งเราพบข้อผิดพลาดลายเซ็น เห็นได้ชัดว่าลายเซ็นของเราถูกต้อง การใช้พารามิเตอร์ต่าง ๆ ในเครื่องมือตรวจสอบลายเซ็น WeChat JS (http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign) สำหรับการเปรียบเทียบ!
การค้นพบครั้งใหญ่ในภายหลัง - - จริงๆ แล้ว
เพียงลงชื่อเข้าใช้หนึ่งครั้งเมื่อโหลดหน้าเข้าสปาเนื่องจาก URL ที่ลงนามโดย WeChat ดูเหมือนจะจดจำ URL ของหน้าแรกที่โหลดโดย SPA เท่านั้น - - Window.location.href Jump นั้นค่อนข้างคล้ายกับการโหลดสปาอีกครั้ง
ฉันคิดว่าถ้าเส้นทางถูกเปลี่ยนเส้นทางฉันควรใช้ URL ใหม่เพื่อลาออก แต่มันก็เป็นเพราะสิ่งนี้ฉันทำผิดพลาดในการตรวจสอบลายเซ็น -
ดังนั้นทางออกคือ:
เพียงลงชื่อเข้าใช้หน้าโหลดครั้งแรก การกระโดดโดยใช้ UI-Router ดูเหมือนจะเปลี่ยนที่อยู่ - และการปรับเปลี่ยนที่อยู่นี้ - ลายเซ็นของ WeChat ดูเหมือนจะไม่รู้จัก - เขารับรู้ URL ของหน้าแรกที่โหลด
ผ่านบทความนี้ฉันหวังว่ามันจะช่วยเพื่อนที่พบปัญหานี้ได้ ขอบคุณสำหรับการสนับสนุนเว็บไซต์นี้!