Maison >développement back-end >tutoriel php >Comment se connecter en utilisant WeChat sur le site Web PHP

Comment se connecter en utilisant WeChat sur le site Web PHP

小云云
小云云original
2018-05-12 16:04:268317parcourir


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.

1. Instructions de développement

1. Distinction de concept

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.

2. Résumé

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.

3. Problèmes typiques

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.

2. Fonctionnement de la plateforme ouverte WeChat

1. Brève orientation

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.
Comment se connecter en utilisant WeChat sur le site Web PHP

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.
Comment se connecter en utilisant WeChat sur le site Web PHP

2. Référence officielle du scénario

Comment se connecter en utilisant WeChat sur le site Web PHP

3. Lier le compte public/mini programme

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

Comment se connecter en utilisant WeChat sur le site Web PHP

4. Autorisation d'obtenir le diagramme de séquence access_token

Comment se connecter en utilisant WeChat sur le site Web PHP

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端跳转路径
    ),
3. Affichage frontal
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 : Comment se connecter en utilisant WeChat sur le site Web PHP

Après une numérisation et une connexion réussies, la page sauteComment se connecter en utilisant WeChat sur le site Web PHP


4.RésuméComment se connecter en utilisant WeChat sur le site Web PHP

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.
  • 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

Recommandations associées :

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!

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