Maison >Applet WeChat >Développement de mini-programmes >Comment obtenir l'unionid d'un mini programme

Comment obtenir l'unionid d'un mini programme

WJ
WJoriginal
2020-06-10 11:41:558179parcourir

Comment obtenir l'unionid d'un mini programme

Comment obtenir l'unionid du mini programme ?

Contexte du problème : j'ai créé l'applet WeChat et tout était normal. Cependant, lorsque la version d'essai a finalement été publiée, j'ai constaté que de nombreux utilisateurs ne pouvaient pas lier les utilisateurs et l'arrière-plan est revenu : paramètres illégaux. Après plusieurs enquêtes, il a été constaté que les données renvoyées par la demande de code obtenue par WeChat ne contenaient pas UnionId, c'est-à-dire que les paramètres renvoyés par l'interface ne contenaient pas le paramètre UnionId.

1. Description du mécanisme UnionID

En bref, WeChat a un openId unique pour différents utilisateurs dans différentes applications, mais si vous souhaitez déterminer si l'utilisateur est le même utilisateur, vous devez vous fier sur unionid pour distinguer. Habituellement, votre propre backend aura sa propre table utilisateur et chaque utilisateur aura un identifiant 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 user pour obtenir l'user_id correspondant.

Remarque : la phrase suivante décrit : L'utilisateur a suivi le compte officiel ou s'est connecté à l'application ou au compte officiel. Lorsque l'utilisateur ouvre le mini-programme, le développeur peut directement obtenir l'UnionID de l'utilisateur via wx. se connecter. . Autrement dit : si l'utilisateur n'a pas suivi le compte officiel ou ne s'est pas connecté à l'application, l'UnionID de l'utilisateur ne peut pas être obtenu via wx.login, et l'UnionId ne peut être obtenu que via wx.getUserInfo. Il a été vérifié que les utilisateurs du mini-programme dont l'UnionId n'existe pas dans le système sont tous des utilisateurs qui n'ont pas suivi le compte officiel ou qui n'ont pas utilisé l'autorisation WeChat dans l'application

2. 🎜>

Général Dans ce cas (c'est-à-dire qu'avant de se connecter au mini programme, l'utilisateur a suivi le compte officiel ou s'est connecté au compte officiel ou s'est connecté à l'application en utilisant la connexion WeChat), le l'utilisateur peut se connecter avec succès au site Web en suivant les deux étapes suivantes : (1) wx.login Obtenez le code (2) Demandez l'arrière-plan via le code et transférez l'API WeChat en arrière-plan en échange d'informations telles que openid et session_key. Cela peut obtenir Unionid

Une autre situation (c'est-à-dire qu'avant de vous connecter au mini-programme, vous ne l'avez pas suivi Compte officiel, je ne me suis jamais connecté au compte officiel et je ne me suis jamais connecté au application utilisant la méthode de connexion WeChat). Le code obtenu via wx.login ne peut pas être échangé contre des informations telles que unionid et openid.

3. Solution :

Pour obtenir l'UnionId du mini programme, l'UnionId de wx.getUserInfo doit être utilisé. wx.getUserInfo nécessite l'autorisation de l'utilisateur. En termes de produits, le flux de traitement permettant aux utilisateurs de refuser l'autorisation doit être pris en compte.

Pour la méthode de déchiffrement des données après leur obtention par wx.getUserInfo, veuillez consulter la documentation officielle.

Solution : obtenez les données cryptées de l'utilisateur, selectedData et le vecteur initial iv de l'algorithme de cryptage via wx.getUserInfo avec le statut de connexion, puis transmettez les données cryptées, iv et le code au backend, et le backend les recevra. via Les données chiffrées obtenues, iv, le code et la clé de session précédente sont utilisés pour déchiffrer l'openid, l'unionid, etc. de l'utilisateur. Algorithme de décryptage des données cryptées

Recommandations associées :

Tutoriel du mini programme

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:
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