Maison interface Web js tutoriel Exemple de méthode d'obtention d'informations utilisateur dans l'applet WeChat

Exemple de méthode d'obtention d'informations utilisateur dans l'applet WeChat

May 12, 2018 pm 05:04 PM
信息 实例 小程序

Cet article présente principalement en détail comment l'applet WeChat obtient les informations sur les utilisateurs. Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer. J'espère qu'il pourra aider tout le monde.

Par exemple, dans un navigateur, nous pouvons obtenir l'objet DOM de la page via document.getElementById. Cependant, l'objet DOM ne peut pas être obtenu dans l'applet WeChat. document.getElementById() signale directement une erreur getElementById ne fonctionne pas. Je suis aussi ivre. Sans cette prise en charge, de nombreuses fonctionnalités intéressantes ne peuvent pas être implémentées.
Pour en revenir aux choses sérieuses, permettez-moi de vous parler de mes réflexions sur l'obtention d'informations sur les utilisateurs.

Il existe deux manières d'obtenir des informations sur les utilisateurs.
1. Un objet json qui ne contient pas d'informations sensibles openId (y compris des informations de base telles que le pseudo, l'avatarUrl, etc.)
2 Contient des informations de base telles que des informations sensibles openId.

La première solution d'acquisition

1. Appelez d'abord l'interface wx.login() pour permettre la vérification de l'autorisation de l'utilisateur, ce que nous observons avec le nu. eye S'il faut autoriser ce type d'informations à xxxxx.
2. Une fois l'utilisateur autorisé avec succès, appelez l'interface wx.getUserInfo() pour obtenir des informations sur l'utilisateur.

Le code complet est le suivant

wx.login({
 success:function(){
 wx.getUserInfo({
  success:function(res){
  var simpleUser = res.userInfo;
  console.log(simpleUser.nickName);
  }
 });
 }
});
Copier après la connexion

Le deuxième type est plus compliqué et nécessite une interaction avec l'arrière-plan pour obtenir des informations utilisateur, mais les données obtenues par cette solution est complète (contient openId).

1. Appelez l'interface wx.login() pour autoriser et inclure du code dans les paramètres de la fonction success.
2. Appelez la fonction de réussite de l'interface wx.getUserInfo(), qui contient selectedData et iv
3. Passez les paramètres ci-dessus en arrière-plan pour analyse et générez userInfo

Le code est. comme suit
js

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

wx.login({
 success:function(res_login){
  if(res_login.code)
  {
  wx.getUserInfo({
   withCredentials:true,
   success:function(res_user){
   var requestUrl = "/getUserApi/xxx.php";
   var jsonData = {
    code:res_login.code,
    encryptedData:res_user.encryptedData,
    iv:res_user.iv
    };
   request.httpsPostRequest(requestUrl,jsonData,function(res){
   console.log(res.openId);
   });
   }
  })
  }
 }
 })
Copier après la connexion

Analyse backend

/**
 * 获取粉丝信息
 * 其中的参数就是前端传递过来的
 */
public function wxUserInfo($code,$encryptedData,$iv)
{
 $apiUrl = "https://api.weixin.qq.com/sns/jscode2session?appid={$this->wxConfig['appid']}&secret={$this->wxConfig['appsecret']}&js_code={$code}&grant_type=authorization_code";

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

 if(!isset($apiData['session_key']))
 {
 echoJson(array(
  "code" => 102,
  "msg" => "curl error"
 ),true);
 }

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

 if(!$userInfo)
 {
 echoJson(array(
  "code" => 105,
  "msg" => "userInfo not"
 ));
 }

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

 //载入用户服务
 //$userService = load_service("User");

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

 echo $userInfo; //微信响应的就是一个json数据
}
Copier après la connexion

fonction getUserInfo où wxBizDataCrypt.php est le package matériel officiellement fourni par WeChat

la fonction curlHttp est une fonction personnalisée. Consultez le code source de cette fonction. Mon article curlHttp

//获取粉丝信息
function getUserInfo($appid,$sessionKey,$encryptedData,$iv){
 require_once ROOTPATH . "/extends/wxUser/wxBizDataCrypt.php";
 $data = array();
 $pc = new WXBizDataCrypt($appid, $sessionKey);
 $errCode = $pc->decryptData($encryptedData, $iv, $data );

 if ($errCode == 0) {
 return $data;
 } else {
 return false;
 }
}
Copier après la connexion

un petit outil request.js écrit par moi-même

var app = getApp();

//远程请求
var __httpsRequest = {

 //http 请求
 https_request : function(obj){
 wx.request(obj);
 },

 //文件上传
 upload_request : function(dataSource){
 wx.uploadFile(dataSource);
 }
};

module.exports = {
 //执行异步请求get
 httpsRequest:function(obj){
 var jsonUrl = {};
 jsonUrl.url = obj.url;
 if(obj.header)jsonUrl.header=obj.header;
 if(obj.type)
  jsonUrl.method = obj.type;
 else
  jsonUrl.method="GET";
 if(obj.data)jsonUrl.data = obj.data;
 obj.dataType?(jsonUrl.dataType=obj.dataType):(jsonUrl.dataType="json");

 jsonUrl.success = obj.success;

 jsonUrl.data.projectId = app.globalData.projectId;

 __httpsRequest.https_request(jsonUrl);
 },

 //get 请求
 httpsGetRequest:function(req_url,req_obj,res_func)
 {
 var jsonUrl = {
  url:app.globalData.host + req_url,
  header:{"Content-Type":"application/json"},
  dataType:"json",
  method:"get",
  success:function(res)
  {
  typeof res_func == "function" && res_func(res.data);
  }
 }

 if(req_obj)
 {
  jsonUrl.data = req_obj;
 }

 jsonUrl.data.projectId = app.globalData.projectId;

  __httpRequest.https_request(jsonUrl);
 },

 //post 请求
 httpsPostRequest:function(req_url,req_obj,res_func)
 {
 var jsonUrl = {
  url:app.globalData.host + req_url,
  header:{"Content-Type":"application/x-www-form-urlencoded"},
  dataType:"json",
  method:"post",
  success:function(res)
  {
  typeof res_func == "function" && res_func(res.data);
  }
 }

 if(req_obj)
 {
  jsonUrl.data = req_obj;
 }

 jsonUrl.data.projectId = app.globalData.projectId;

  __httpsRequest.https_request(jsonUrl);
 },

 //文件上传
 httpsUpload:function(uid,fileDataSource,res_func)
 {
 dataSource = {
  url:app.globalData.host + req_url,
  header:{
  "Content-Type":"multipart/form-data"
  },
  dataType:"json",
  formData : {
  "uid" : uid
  },
  filePath : fileDataSource,
  name : "fileObj",
  success:function(res){
  typeof res_func == "function" && res_func(res);
  }
 }

 __httpsRequest.upload_request(dataSource);
 }
};
Copier après la connexion

app.globalData.host est le nom de domaine. adresse telle que https://xxxxx.com;

Recommandations associées :

Comment implémenter l'applet WeChat pour obtenir des informations sur l'utilisateur

Comment implémenter WeChat dans Thinkphp5 Étude de cas de l'interface d'un mini-programme pour obtenir des informations utilisateur

10 articles recommandés sur l'obtention d'informations utilisateur

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Implémenter des effets de retournement de cartes dans les mini-programmes WeChat Implémenter des effets de retournement de cartes dans les mini-programmes WeChat Nov 21, 2023 am 10:55 AM

Implémentation d'effets de retournement de cartes dans les mini-programmes WeChat Dans les mini-programmes WeChat, la mise en œuvre d'effets de retournement de cartes est un effet d'animation courant qui peut améliorer l'expérience utilisateur et l'attractivité des interactions d'interface. Ce qui suit présentera en détail comment implémenter l'effet de retournement de carte dans l'applet WeChat et fournira des exemples de code pertinents. Tout d'abord, vous devez définir deux éléments de carte dans le fichier de mise en page du mini-programme, un pour afficher le contenu avant et un pour afficher le contenu arrière. L'exemple de code spécifique est le suivant : <!--index.wxml-. ->&l

Comment obtenir le GPU sous Windows 11 et vérifier les détails de la carte graphique Comment obtenir le GPU sous Windows 11 et vérifier les détails de la carte graphique Nov 07, 2023 am 11:21 AM

Utilisation des informations système Cliquez sur Démarrer et entrez les informations système. Cliquez simplement sur le programme comme indiqué dans l'image ci-dessous. Vous trouverez ici la plupart des informations sur le système, notamment les informations sur la carte graphique. Dans le programme Informations système, développez Composants, puis cliquez sur Afficher. Laissez le programme rassembler toutes les informations nécessaires et une fois prêt, vous pourrez trouver le nom spécifique de la carte graphique et d'autres informations sur votre système. Même si vous possédez plusieurs cartes graphiques, vous pouvez trouver ici la plupart des contenus liés aux cartes graphiques dédiées et intégrées connectées à votre ordinateur. Utilisation du Gestionnaire de périphériques Windows 11 Tout comme la plupart des autres versions de Windows, vous pouvez également trouver la carte graphique sur votre ordinateur à partir du Gestionnaire de périphériques. Cliquez sur Démarrer puis

Alipay a lancé le mini-programme « Chinese Character Picking-Rare Characters » pour collecter et compléter la bibliothèque de personnages rares. Alipay a lancé le mini-programme « Chinese Character Picking-Rare Characters » pour collecter et compléter la bibliothèque de personnages rares. Oct 31, 2023 pm 09:25 PM

Selon les informations de ce site du 31 octobre, le 27 mai de cette année, Ant Group a annoncé le lancement du « Projet de sélection de caractères chinois » et a récemment inauguré de nouveaux progrès : Alipay a lancé le mini-programme « Sélection de caractères chinois-Caractères rares ». pour collecter des collections de la société Les personnages rares complètent la bibliothèque de personnages rares et offrent différentes expériences de saisie pour les personnages rares afin d'aider à améliorer la méthode de saisie des caractères rares dans Alipay. Actuellement, les utilisateurs peuvent accéder à l'applet « Caractères peu communs » en recherchant des mots-clés tels que « capture de caractères chinois » et « caractères rares ». Dans le mini-programme, les utilisateurs peuvent soumettre des images de caractères rares qui n'ont pas été reconnus et saisis par le système. Après confirmation, les ingénieurs d'Alipay effectueront des entrées supplémentaires dans la bibliothèque de polices. Ce site Web a remarqué que les utilisateurs peuvent également découvrir la dernière méthode de saisie par fractionnement de mots dans le mini-programme. Cette méthode de saisie est conçue pour les mots rares dont la prononciation n'est pas claire. Démantèlement utilisateur

Comment partager les coordonnées avec NameDrop : guide pratique pour iOS 17 Comment partager les coordonnées avec NameDrop : guide pratique pour iOS 17 Sep 16, 2023 pm 06:09 PM

Dans iOS 17, il existe une nouvelle fonctionnalité AirDrop qui vous permet d'échanger des informations de contact avec quelqu'un en touchant deux iPhones. Cela s'appelle NameDrop, et voici comment cela fonctionne. Plutôt que de saisir le numéro d'une nouvelle personne pour l'appeler ou lui envoyer un SMS, NameDrop vous permet simplement de placer votre iPhone près de son iPhone pour échanger ses coordonnées afin qu'elle ait votre numéro. Rassembler les deux appareils fera automatiquement apparaître l’interface de partage de contacts. En cliquant sur la fenêtre contextuelle, vous afficherez les informations de contact d'une personne et son affiche de contact (vous pouvez personnaliser et modifier vos propres photos, également une nouvelle fonctionnalité d'iOS17). Cet écran comprend également des options pour « Recevoir uniquement » ou partager vos propres informations de contact en réponse.

Comment Uniapp réalise une conversion rapide entre les mini-programmes et H5 Comment Uniapp réalise une conversion rapide entre les mini-programmes et H5 Oct 20, 2023 pm 02:12 PM

La manière dont Uniapp peut réaliser une conversion rapide entre les mini-programmes et le H5 nécessite des exemples de code spécifiques. Ces dernières années, avec le développement de l'Internet mobile et la popularité des smartphones, les mini-programmes et le H5 sont devenus des formulaires de candidature indispensables. En tant que cadre de développement multiplateforme, uniapp peut réaliser rapidement la conversion entre les petits programmes et H5 sur la base d'un ensemble de codes, améliorant considérablement l'efficacité du développement. Cet article présentera comment Uniapp peut réaliser une conversion rapide entre les mini-programmes et H5, et donnera des exemples de code spécifiques. 1. Introduction à uniapp unia

Comment fonctionne NameDrop sur iPhone (et comment le désactiver) Comment fonctionne NameDrop sur iPhone (et comment le désactiver) Nov 30, 2023 am 11:53 AM

Dans iOS17, il existe une nouvelle fonctionnalité AirDrop qui vous permet d'échanger des informations de contact avec quelqu'un en touchant deux iPhones en même temps. Cela s'appelle NameDrop, et voici comment cela fonctionne réellement. NameDrop élimine le besoin de saisir le numéro d'une nouvelle personne pour l'appeler ou lui envoyer un SMS afin qu'elle ait votre numéro, vous pouvez simplement tenir votre iPhone près de son iPhone pour échanger des informations de contact. Rassembler les deux appareils fera automatiquement apparaître l’interface de partage de contacts. En cliquant sur la fenêtre contextuelle, vous afficherez les informations de contact d'une personne et son affiche de contact (une photo de votre choix que vous pouvez personnaliser et modifier, également nouvelle sur iOS 17). Cet écran inclut également « Recevoir uniquement » ou partagez vos propres informations de contact en réponse.

Quelle est la raison du retard dans la réception des messages sur WeChat ? Quelle est la raison du retard dans la réception des messages sur WeChat ? Sep 19, 2023 pm 03:02 PM

La raison du retard dans la réception des informations par WeChat peut être due à des problèmes de réseau, à la charge du serveur, à des problèmes de version, à des problèmes de périphérique, à des problèmes d'envoi de messages ou à d'autres facteurs. Introduction détaillée : 1. Problèmes de réseau. Le retard dans la réception des informations sur WeChat peut être lié à la connexion réseau. Si la connexion réseau est instable ou si le signal est faible, cela peut entraîner des retards dans la transmission des informations. connecté à un réseau stable et la force du signal réseau est bonne. 2. Lorsque la charge du serveur WeChat est élevée, cela peut entraîner des retards dans la transmission des informations, en particulier pendant les périodes de pointe ou lorsqu'un grand nombre d'utilisateurs utilisent WeChat. en même temps, etc.

Découvrez des exemples de bonnes pratiques de conversion de pointeur dans Golang Découvrez des exemples de bonnes pratiques de conversion de pointeur dans Golang Feb 24, 2024 pm 03:51 PM

Golang est un langage de programmation puissant et efficace qui peut être utilisé pour développer diverses applications et services. Dans Golang, les pointeurs sont un concept très important, qui peut nous aider à exploiter les données de manière plus flexible et plus efficace. La conversion de pointeur fait référence au processus d'opérations de pointeur entre différents types. Cet article utilisera des exemples spécifiques pour découvrir les meilleures pratiques de conversion de pointeur dans Golang. 1. Concepts de base Dans Golang, chaque variable a une adresse, et l'adresse est l'emplacement de la variable en mémoire.

See all articles