Je travaille actuellement sur un projet de développement d'applet WeChat. Disposition du scénario : les applications et les mini-programmes WeChat ayant le même sujet sous la même plate-forme ouverte WeChat effectuent la même activité. Lorsque les utilisateurs accèdent à l'application ou au mini-programme WeChat, ils doivent obtenir l'identifiant syndical de l'utilisateur pour confirmer l'identité actuelle de l'utilisateur et terminer la connexion. La méthode d'appel de l'API « obtenir des informations utilisateur » du mini programme (getUserInfo) a été considérablement mise à jour par rapport à avant. Il est très important d'implémenter avec élégance l'autorisation et la connexion de l'utilisateur. Voici ma mise en œuvre du processus de connexion d'autorisation du mini programme WeChat. développement. Les idées et le résumé sont partagés ci-dessous.
Explication :
L'applet appelle wx.login( ) Obtenez le code d'identification de connexion temporaire et renvoyez-le au serveur du développeur
Le serveur du développeur échange le code contre l'identifiant unique de l'utilisateur openid et la clé de session session_key.
Le code d'identification de connexion temporaire ne peut être utilisé qu'une seule fois
Générer des messages entre les abonnés et le public comptes Après interaction, le compte officiel peut obtenir l'OpenID du suiveur (ID WeChat crypté, l'OpenID de chaque utilisateur pour chaque compte officiel est unique. Pour différents comptes officiels, l'openid du même utilisateur est différent). ——Documentation du développeur de la plateforme publique WeChat
L'identification des utilisateurs ordinaires, unique au compte public actuel
Différents comptes publics, le même utilisateur , openid est différent
vous pouvez simplement le comprendre comme
openid = hash(uid + app_id)
Si le développeur possède plusieurs applications mobiles, applications de site Web et comptes publics (y compris des mini-programmes), l'utilisateur peut être distingué de manière unique par unionid, car tant qu'il s'agit d'applications mobiles sous le même compte de plateforme ouverte WeChat , les applications de sites Web et les comptes publics (y compris les mini-programmes), l'identifiant syndical de l'utilisateur est unique. En d’autres termes, pour un même utilisateur, l’unionid est le même pour différentes applications sous la même plateforme ouverte WeChat. Description du mécanisme UnionID
Si un développeur doit unifier les comptes d'utilisateurs entre plusieurs applications mobiles, applications de sites Web et comptes publics, il doit se rendre sur la plateforme ouverte WeChat (open.weixin.qq.com) pour lier le public account Ensuite, le mécanisme UnionID peut être utilisé pour répondre aux besoins ci-dessus.
Un compte de plateforme ouverte WeChat peut avoir plusieurs applications mobiles, applications de sites Web, comptes publics et mini-programmes
Tant qu'il est le même WeChat Pour les applications mobiles, les applications de sites Web et les comptes publics (y compris les mini-programmes) sous les comptes de plateforme ouverte, l'identifiant syndical de l'utilisateur est unique.
L'identifiant unique de l'utilisateur sur la plateforme ouverte
Vous pouvez simplement le comprendre comme :
unionid = hash(uid + 开放平台id)
Pour résumer
WeChat a un openId unique pour différents utilisateurs dans différentes applications, mais si vous souhaitez déterminer si les utilisateurs sont le même utilisateur, vous devez vous fier à unionid pour les distinguer. Généralement, votre propre backend aura sa propre table utilisateur et chaque utilisateur aura un ID utilisateur différent. C'est-à-dire que les applications du même utilisateur sur le même sujet sous la même plate-forme ouverte WeChat correspondent au même identifiant utilisateur, à l'identifiant union et à un openid différent. Ainsi, lorsqu'un utilisateur se connecte, nous ne pouvons compter que sur l'unionid qui nous est renvoyé par WeChat pour déterminer s'il s'agit du même utilisateur, puis l'associer à notre table utilisateur pour obtenir l'ID utilisateur correspondant.
Le mini-programme lié à un compte développeur peut obtenir l'UnionID des 3 manières suivantes.
Appelez l'interface wx.getUserInfo pour obtenir l'UnionID à partir des données décryptées. Notez que cette interface nécessite l'autorisation de l'utilisateur. Les développeurs doivent gérer correctement la situation après que l'utilisateur a refusé l'autorisation.
S'il existe un compte public avec le même sujet sous le compte développeur et que l'utilisateur a suivi le compte public. Les développeurs peuvent obtenir l'UnionID de l'utilisateur directement via wx.login sans l'autorisation de l'utilisateur.
S'il existe un compte officiel ou une application mobile sur le même sujet sous le compte développeur, et que l'utilisateur a été autorisé à se connecter au compte officiel ou à l'application mobile. Les développeurs peuvent également obtenir l'UnionID de l'utilisateur directement via wx.login sans nécessiter une nouvelle autorisation de l'utilisateur.
Lorsque l'utilisateur remplit les conditions 2 et 3, le développeur peut directement obtenir l'unionid de l'utilisateur via wx.login, sinon l'interface doit être appeléewx.getUserInfo
, Une attention particulière doit être accordée à la gestion appropriée des situations dans lesquelles les utilisateurs refusent l'autorisation.
Appelez wx.login pour obtenir le code.
Utilisez wx.getSetting pour obtenir l'autorisation de l'utilisateur
Si l'utilisateur a été autorisé, appelez directement l'API wx.getUserInfo pour obtenir les dernières informations de l'utilisateur ;
L'utilisateur n'est pas autorisé. Un bouton s'affiche dans l'interface pour inviter l'utilisateur à se connecter. Lorsque l'utilisateur clique et autorise, les dernières informations de l'utilisateur. est obtenu.
Transmettez les données utilisateur obtenues au backend avec le code renvoyé par wx.login
Dans des scénarios commerciaux réels, nous espérons que lorsque les utilisateurs entrent dans le mini-programme, ils pourront parcourir les produits normalement sans se connecter, avoir une compréhension de base du mini-programme et ne pas afficher directement de boîtes. Exiger l'autorisation de l'utilisateur, sinon cela interférera avec les utilisateurs et entraînera la perte de nouveaux utilisateurs. Lorsque les utilisateurs doivent utiliser certaines fonctions et scénarios avancés, demandez l'autorisation aux utilisateurs à ce moment-là, de sorte que la probabilité d'autorisation de l'utilisateur soit considérablement augmentée.
Encapsuler la logique de connexion avec ajax
Processus :
La signification de l'encapsulation
Ne faites plus attention à savoir si l'interface actuelle nécessite une connexion et si l'utilisateur dispose déjà d'une autorisation, toutes les demandes sont directement appelées ajax()
et tous les processus de connexion et d'autorisation sont terminés si nécessaire. La page d'accueil du mini-programme a été agrandie. Lorsque vous développez votre entreprise, vous devez uniquement vous concentrer sur la mise en œuvre de votre entreprise.
Mini programme • Histoire courte (4) - Obtenir des informations sur l'utilisateur
Obtenir des informations utilisateur de base (UnionID mécanisme)
Description du mécanisme UnionID
Recommandations associées :
Document de développement du programme WeChat Mini
Tutoriel vidéo pratique sur le développement du mini programme WeChat
Tutoriel vidéo sur le développement du mini programme WeChat
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!