Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo obtener información del usuario en el subprograma WeChat

Cómo obtener información del usuario en el subprograma WeChat

Recientemente he estado estudiando cómo reproducir miniprogramas de WeChat. Después de contactarlo, encontré muchos obstáculos.

Por ejemplo, en un navegador, podemos obtener el objeto DOM de la página a través de document.getElementById. document.getElementById() error directo getElementById no funciona También estoy borracho. Sin soporte para esto, no se pueden implementar muchas funciones interesantes.

Sin más preámbulos, compartiré mis pensamientos sobre cómo obtener información del usuario.

Existen dos formas de obtener información del usuario.

1. El objeto json openId que no contiene información confidencial (incluida información básica como apodo, avatarUrl, etc.)

2.

La primera solución de adquisición

1. Primero llame a la interfaz wx.login() para permitir al usuario realizar la verificación de autorización, que es lo que observamos a simple vista, ya sea que lo haga. tener información autorizada de xxxxxx, etc.

2. Una vez que la autorización del usuario sea exitosa, llame a la interfaz wx.getUserInfo() para obtener información del usuario.

El código completo es el siguiente

wx.login({

Success: function(){

wx.getUserInfo({

éxito: function(res){

var simpleUser = res.userInfo

console.log(simpleUser.nickName;

}

}

});

}

El segundo método es más complicado, necesitas interactuar con el backend para obtenga la información del usuario, pero los datos están completos. Los datos obtenidos por esta solución están completos (incluido openId).

1. Llame a la autorización de la interfaz wx.login() e incluya el código en la función de éxito.

2. La función exitosa de llamar a la interfaz wx.getUserInfo() contiene encryptedData y iv

3. Pase los parámetros anteriores al backend para analizar y generar información de usuario

El código es el siguiente

js

var request = require("... /. /utils/request.js");

wx.login( {

éxito: función(res_login){

if(res_login.code)

{

wx.getUserInfo ({

withCredentials: verdadero,

éxito: función(res_user){

var requestUrl = "/getUserApi/xxx.php";

var jsonData = {

código: res_login.code,

encryptedData: res_user.encryptedData,

iv: res_user.iv

};

request./sns/jscode2session?appid={$this-gt;wxConfig['appid']}amp;secret={$this-gt;wxConfig['appsecret']} amp;js_code= {$code}&grant_type=authorization_code";

$apiData = json_decode(curlHttp($apiUrl, true), true);

if(!isset($apiData) [' clave_sesión']))

{

echoJson( array(

"código" =gt; 102,

"msg " = gt; "error de curvatura"

), verdadero);

}

$userInfo = getUserInfo($this-gt; wxConfig[' appid' ], $apiData['session_key'], $encryptedData, $iv);

if(! $userInfo)

{

echoJson(array(

"code" =gt; 105,

"msg" =gt; "userInfo no"

));

}

//$userInfo = json_decode($userInfo, true);

//load_user_service

//$userService = load_service("Usuario");

//$userService-gt; checkUser($this- gt; projectId , $userInfo);

echo $userInfo; //WeChat responde con datos json

}

<

p>Función getUserInfo, wxBizDataCrypt. El código fuente de esta función se puede encontrar en mi artículo curlHttp

// Obtener información de los fans

función getUserInfo($appid, $sessionKey, $encryptedData. , $iv){

require_once ROOTPATH ​​​​."/extends/wxUser/wxBizDataCrypt.php";

$data = array()

$pc = new WXBizDataCrypt($appid, $sessionKey);

$errCode = $pc-gt; decryptData($encryptedData, $iv, $data);

if ($errCode == 0) {

devuelve $datos;

} else {

return false;

}

}

Escribe el tuyo propio solicitud de widget. js

var app = getApp();

//Solicitud remota

var __;