Maison >développement back-end >tutoriel php >Comment se connecter en utilisant WeChat sur le site Web PHP
Le développement récent du site Web côté PC nécessite une connexion autorisée par WeChat Étant donné que le côté téléphone mobile a déjà gagné un grand nombre de groupes d'utilisateurs WeChat au début, nous réfléchissons maintenant. d'intégrer des ressources pour répondre aux mêmes besoins de synchronisation des données des utilisateurs de WeChat.
Parce que vous êtes exposé aux connaissances du développement WeChat, vous serez inévitablement exposé à l'utilisation d'OpenID et d'UnionID. Ce qui suit est le document officiel de l'introduction de WeChat, veuillez faire attention à la distinction :
Une fois que le suiveur a interagi avec le compte officiel, le compte officiel peut obtenir l'OpenID du suiveur ( ID WeChat crypté, chaque utilisateur L'OpenID de chaque compte officiel est unique. L'OpenID du même utilisateur est différent pour différents comptes officiels). Les comptes officiels peuvent obtenir des informations utilisateur de base basées sur OpenID via les interfaces correspondantes, notamment le surnom, l'avatar, le sexe, la ville, la langue et l'heure d'attention.
Veuillez noter que si les développeurs ont besoin d'unifier les comptes d'utilisateurs entre plusieurs comptes officiels, ou entre des comptes officiels et des applications mobiles, ils doivent se rendre sur la plateforme ouverte WeChat (open.weixin. qq .com) Après avoir lié le compte officiel, le mécanisme UnionID peut être utilisé pour répondre aux besoins ci-dessus.
En termes simples :
OpenID est l'identification d'un utilisateur ordinaire et est unique au compte développeur actuel . Un OpenID correspond à un compte officiel.
UnionID est l’identification unifiée de l’utilisateur. Pour les applications sous un compte de plateforme ouverte WeChat, l'UnionID du même utilisateur est unique.
a fait le tour de ce cercle, c'est-à-dire qu'il y a une différence entre le développement de compte public WeChat et le développement de plateforme de développement WeChat. Si le même utilisateur WeChat se connecte à un site Web en utilisant différentes plates-formes (telles qu'un PC, une application, une applet WeChat, etc.), le compte doit être lié et le compte lié ne peut pas être distingué par OpenID, mais doit être distingué par IDUnion.
Annexe Un problème de conception courant est principalement dû à l'utilisation insuffisante des connaissances avant le développement, ce qui aura un impact sur l'expansion ultérieure. Bien sûr, c'est aussi un problème. J'ai rencontré. J'espère que cela peut être un signal d'alarme pour vous.
Selon les besoins suivants, j'ai choisi « développement d'applications de sites Web » Créez, puis suivez les instructions officielles pour demander du matériel, ce qui prend généralement plus de trois jours.
Une fois l'application créée, elle doit également répondre aux exigences d'obtention des autorisations d'interface. Un membre du personnel vous contactera de manière proactive, et cela peut généralement être complété en une journée.
Pour s'assurer que l'UnionID correspondant à l'utilisateur WeChat sous le même compte de développement est lié et utilisé, le compte public/compte de service correspondant doit être lié dans la liste ci-dessous. Le document introduit que la fonction de paiement WeChat doit généralement être remplie
4. Autorisation d'obtenir le diagramme de séquence access_token 3. En fait, l'heure principale est. dépensé pour les premières opérations de l'application ci-dessus, mais l'implémentation réelle du code est extrêmement simple. Voici ma méthode d'implémentation, veuillez me donner vos commentaires. 1. Configuration du fichier public Il est d'usage de placer les principales informations de configuration dans le fichier de configuration, 'ApplicationCommonConfconfig.php'.2. Code principal
'WEIXIN_LOGIN' => array( // 微信开放平台 使用微信帐号登录App或者网站 配置信息 'OPEN_APPID' => 'wxbd961b2a6b7b2963', //应用 AppID 'OPEN_APPSECRET' => 'e6xxxxxxxxxxxxxxxxxxxxe90',//应用 AppSecret 'OPEN_CALLBACKURL' => 'http://www.52zhenmi.com/Home/Login/wxBack', //微信用户使用微信扫描二维码并且确认登录后,PC端跳转路径 ),
public function wxIndex(){ //--微信登录-----生成唯一随机串防CSRF攻击 $state = md5(uniqid(rand(), TRUE)); $_SESSION["wx_state"] = $state; //存到SESSION $callback = urlencode($this->callBackUrl); 'https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect'; $wxurl = "https://open.weixin.qq.com/connect/qrconnect?appid=" .$this->appID."&redirect_uri=" .$callback."&response_type=code&scope=snsapi_login&state=" .$state."#wechat_redirect"; header("Location: $wxurl"); } public function wxBack(){ if($_GET['state']!=$_SESSION["wx_state"]){ echo 'sorry,网络请求失败...'; exit("5001"); } $url='https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$this->appID.'&secret='.$this->appSecret.'&code='.$_GET['code'].'&grant_type=authorization_code'; $arr = curl_get_contents($url); //得到 access_token 与 openid $url='https://api.weixin.qq.com/sns/userinfo?access_token='.$arr['access_token'].'&openid='.$arr['openid'].'&lang=zh_CN'; $user_info = curl_get_contents($url); $this->dealWithWxLogin($user_info); } /** * 根据微信授权用户的信息 进行下一步的梳理 * @param $user_info */ public function dealWithWxLogin($user_info){ //TODO 数据处理 var_dump($user_info); die; }Selon le document officiel, vous pouvez soit accéder directement à l'interface de numérisation des autorisations, soit effectuer une conception personnalisée, je suppose que je suis fou, la fonction de connexion imbriquée et d'analyse de code n'a pas été implémentée depuis longtemps, je dois donc utiliser le saut par défaut ici.
L'effet d'affichage est le suivant :
Après une numérisation et une connexion réussies, la page saute
4.Résumé
1. Selon la fin de la mise en œuvre de la fonction ci-dessus, les informations des utilisateurs connectés peuvent être obtenues, et le openID et UnionID peuvent être stockés dans la base de données pour un traitement commercial ultérieur.Recommandations associées :
2. Ma capacité à expliquer ci-dessous est limitée. Il est recommandé de se référer aux documents officiels de développement et à l'expérience utile des seniors de Google...
- 3. J'ai vu un bon article en ligne Article, référence recommandée : Schéma de liaison pour les utilisateurs de comptes publics WeChat et les utilisateurs de sites Web
Solution personnalisée de style de numérisation du code de connexion WeChat
Introduction à la connexion WeChat pour les applications de sites Web développées par la plateforme ouverte WeChat
Comment intégrer rapidement la connexion WeChat avec le framework laravel de PHP
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!