在微信小程的開發中,登錄問題,一定要按照這樣的順序:
1.小程序請求login,拿到code 然後傳給服務端
2.服務端拿到code 到微信服務器拿到sessionKey
3.然後小程序調用getuserinfo接口拿到encryptedData,iv,然後給服務端
4.服務端拿到客戶端的encryptedData,vi還有之前的sessionKey去解密得到 unionId等用戶信息
注意:客戶端上傳的encryptedData需要encodeURIComponent方法進行URL編碼,對應服務端需要URL解碼
小程序:
encodeURIComponent(data.encryptedData);//一定要把加密串轉成URL編碼
服務端:
<?php //php 端接受數據 時做url解碼 $encryptedData=urldecode($_GET["encryptedData"]);
不然就會出現你這樣的問題,你這種情況偶然出現的原因就是 你在服務端還未去獲取sessionKey的時候你就去調用了getuserinfo,有時候你會比服務端快,有時候你會比服務端慢,所以就出現了偶然性