현재 위치 - 회사기업대전 - 기업 정보 조회 - 위챗 애플릿이 사용자 정보를 얻는 방법

위챗 애플릿이 사용자 정보를 얻는 방법

최근 위챗 애플릿을 어떻게 하는지 연구하고 있다. 접촉 후 많은 구덩이가 발견되었다.

예를 들어 브라우저에서 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 _ _

copyright 2024회사기업대전