网友真实露脸自拍10p,成人国产精品秘?久久久按摩,国产精品久久久久久无码不卡,成人免费区一区二区三区

小程序模板網

【小程序踩坑】 掃普通二維碼調起小程序bug:碼地址傳遞錯誤,傳為歷史地址

發布時間:2018-01-06 11:35 所屬欄目:小程序開發教程

問題: 用戶掃碼二維碼A,小程序onload中傳遞q參數為二維碼地址B,且該二維碼地址為用戶歷史使用二維碼地址。 原因: 微信側掃碼啟動參數錯亂。 用戶使用微信“掃一掃”掃描二維碼A,微信通過系統事件啟動小程序,用 ...

 
 
 

 

問題:

用戶掃碼二維碼A,小程序onload中傳遞q參數為二維碼地址B,且該二維碼地址為用戶歷史使用二維碼地址。

原因:

微信側掃碼啟動參數錯亂。

用戶使用微信“掃一掃”掃描二維碼A,微信通過系統事件啟動小程序,用戶使用完之后,
將小程序退到后臺,一段時間后小程序被系統回收。用戶再次掃描二維碼B,
微信仍然通過系統事件啟動小程序,但是實際上,系統先發出A二維碼的啟動事件,
再發出B二維碼的啟動事件,導致小程序啟動參數錯亂。
理論上,用戶第二次掃碼的時候,系統不應該連續發出兩次事件。

解決方案:

方案1 (覆蓋7-8成用戶):

微信側目前上線了熱修復方案,糾正該問題,保證通過系統事件啟動時傳遞正確的碼地址。但目前該方案僅能覆蓋最近兩個版本,即6.5.20以后的,覆蓋人群不會很高,活躍用戶的七八成。所以仍然存在該bug.

方案2 (解決剩下的2-3成用戶):

目前掃碼啟動小程序的場景,微信會將原始URL通過參數的方式傳給小程序,key為"q"。 后臺改動上線后,會多出一個key為"scancode_time"的UNIX時間戳參數,是用戶掃碼的時間。 用戶掃碼時間和執行onlaod的時間相對比如果在30s以內,可以認為傳遞給我們的碼地址是30s以內剛掃過的碼,可以認為傳遞的非歷史地址。從這個邏輯出發,做了以下校驗:

 

 

ps:第二次將掃碼時間與服務器端時間再次進行校驗的目的:避免部分用戶手動更改手機時間或者本地手機時間差距較大,導致問題出現,故再進行一次服務端時間校驗。

問題雖小,記錄意義更大。



易優小程序(企業版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.xiuhaier.com/wxmini/doc/course/18394.html 復制鏈接 如需定制請聯系易優客服咨詢:800182392 點擊咨詢
QQ在線咨詢
AI智能客服 ×