예를 들어 브라우저에서 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;; Wxconfig ['appid']} & Secret = {$ this-& gt;; Wxconfig ['appsecret']} & Js _ code = {$ code} & ampgrant _ type = 승인 _ 코드 ";
$ apidata = JSON _ decode (curl http ($ API URL, true), true);
만약 (! Isset($apiData['session_key']))
{
EchoJson (어레이 (
"코드" = >; 102,
"msg" = >;; 컬링 오류
), 정말로);
}
$ userinfo = getuserinfo ($ this-> WxConfig['appid'], $apiData['session_key'], $encryptedData, $ iv);
만약 (! $userInfo)
{
EchoJson (어레이 (
"코드" = >; 105,
"msg" = >;; "사용자 정보가 아닙니다."
));
}
//$ userinfo = JSON _ decode ($ userinfo, true);
//사용자 서비스 로드
//$ userservice = load _ service ("user");
///$ userService-& gt;; Checkuser ($ this-> ProjectId, $ userinfo);
Echo $ userInfo// 위챗 이 JSON 데이터에 응답했습니다.
}
GetUserInfo 함수 여기서 wxBizDataCrypt.php 는 위챗 제공 공식 자료 패키지입니다.
CurlHttp 함수는 사용자 정의 함수이며, 이 함수의 소스 코드는 내 문장 CurlHttp 에 나와 있습니다.
//팬 정보 얻기
함수 getUserInfo($appid, $sessionKey, $encryptedData, $iv){
Require_once 루트 경로입니다. "/extends/wxuser/wxbizdatacrypt.php";
$ data = array ();
$pc = new WXBizDataCrypt($appid, $ sessionkey);
$ errCode = $ PC-& gt;; DecryptData($encryptedData, $iv, $ data);
If ($errCode == 0) {
$ data 를 반환합니다
} 그렇지 않으면 {
False 를 반환합니다
}
}
제 자신의 gadget request.js 를 썼습니다
Var app = getapp ();
//원격 요청
Var _ _