比如在瀏覽器中,我們可以通過document.getElementById獲取頁面的DOM對象,然而在微信小程序中,妳是無法獲取DOM對象的。Document.getElementById()直接報告錯誤getElementById not function。我也喝醉了。很多有趣的功能不支持這個是無法實現的。
反正我說說我對獲取用戶信息的感受吧。
有兩種獲取用戶信息的方案。
1,沒有敏感信息openId的json對象(包括昵稱、avatarUrl等基本信息)
2.包含敏感信息openId的基本信息。
第壹個獲取方案
1.首先調用wx.login()接口讓用戶授權驗證,也就是我們已經用肉眼觀察到妳是否授權了xxxxx。
2.用戶授權成功後,調用wx.getUserInfo()接口獲取用戶信息。
完整的代碼如下
wx.login({
成功:函數(){
wx.getUserInfo({
成功:函數(res){
var simpleUser = res.userInfo
console.log(簡單用戶.昵稱);
}
});
}
});
第二種更復雜,需要和後臺交互才能得到userInfo,但是這種方案得到的數據是完整的(包括openId)。
1.調用wx.login()接口授權在success函數的參數中包含代碼。
2.調用wx.getUserInfo()接口。success函數包含encryptedData和iv。
3.將以上參數傳到後臺解析生成userInfo。
代碼如下所示
射流研究…
var request = require("../../utils/request . js ");
wx.login({
成功:函數(res_login){
if(res_login.code)
{
wx.getUserInfo({
withCredentials:true,
成功:函數(res_user){
var request URL = "/getuser API/XXX . PHP ";
var jsonData = {
代碼:res_login.code,
encrypted data:RES _ user . encrypted data
四:res_user.iv
};
請求。/sns/jscode2session?appid = { $ this-& gt;wx config[' appid ']} & amp;secret = { $ this-& gt;wx config[' app secret ']} & amp;js _ code = { $ code } & ampgrant _ type =授權_代碼";
$ API data = JSON _ decode(curlHttp($ API URL,true),true);
如果(!isset($apiData['session_key']))
{
echoJson(陣列(
" code " = >;102,
" msg " = >;“卷曲誤差”
),真);
}
$ userInfo = get userInfo($ this-& gt;wxConfig['appid'],$apiData['session_key'],$encryptedData,$ iv);
如果(!$userInfo)
{
echoJson(陣列(
" code " = >;105,
" msg " = >;"用戶信息不是"
));
}
//$ userInfo = JSON _ decode($ userInfo,true);
//加載用戶服務
//$ userService = load _ service(" User ");
//$ userService-& gt;check user($ this-& gt;projectId,$ userInfo);
echo $ userInfo//微信回復了壹個json數據。
}
GetUserInfo函數其中,wxBizDataCrypt.php是微信提供的官方素材包。
curlHttp函數是壹個自定義函數,這個函數的源代碼見我的文章CurlHttp。
//獲取粉絲信息
函數getUserInfo($appid,$sessionKey,$encryptedData,$iv){
require_once根路徑。"/extends/wx user/wxbizdatacrypt . PHP ";
$ data = array();
$pc = new WXBizDataCrypt($appid,$ session key);
$ errCode = $ PC-& gt;decryptData($encryptedData,$iv,$ data);
if ($errCode == 0) {
返回$ data
}否則{
返回false
}
}
我寫了自己的gadget request.js
var app = getApp();
//遠程請求
var _ _