Maison >Applet WeChat >Développement WeChat >Développement WeChat - obtention des informations de base de l'utilisateur via autorisation

Développement WeChat - obtention des informations de base de l'utilisateur via autorisation

高洛峰
高洛峰original
2017-02-14 11:07:591755parcourir

1. Remplissez le nom de domaine de la page de rappel d'autorisation

Remplissez wx.alinq.org ici. Après avoir obtenu l'autorisation de l'utilisateur, il accédera à une page spécifiée par le développeur, et le lien vers la page doit être sous le nom de domaine. Si ce n'est pas rempli, une page avec des liens de pages invalides apparaîtra.

Développement WeChat - obtention des informations de base de lutilisateur via autorisation

Développement WeChat - obtention des informations de base de lutilisateur via autorisation

2. Guidez l'utilisateur vers la page d'autorisation désignée

Par exemple : https://open.weixin .qq .com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

Pour l'explication des paramètres, veuillez vous référer aux documents relatifs à WeChat. Il convient de noter que redirect_uri est une URL, qui doit être codée en URL. Après avoir généré l'URL, vous pouvez accéder à http://cli.im/text/2014052714?4QbdC pour générer un code QR pour l'URL, puis scanner. dans WeChat pour le tester.

Développement WeChat - obtention des informations de base de lutilisateur via autorisation

Après numérisation :

Développement WeChat - obtention des informations de base de lutilisateur via autorisation

3 Enfin, voici le code entièrement implémenté

Ci-dessous. est le code complet, j'espère qu'il sera utile à tout le monde. ^_^

<%@ WebHandler Language="C#" %>

public class UserAuth : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
 
        var appid = "wxf1c24c60e3ac13b7";
        var secret = "5902b9817acb7a290d4b7c2e6e97d4d3";

        var code = context.Request.QueryString["Code"];
        if (string.IsNullOrEmpty(code))
        {
            var url = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri=http%3a%2f%2fwx.alinq.org%2fTest%2fUserAuth.ashx&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect", appid);
            context.Response.Redirect(url);
        }
        else
        {
            var client = new System.Net.WebClient();
            client.Encoding = System.Text.Encoding.UTF8;

            var url = string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appid, secret, code);
            var data = client.DownloadString(url);

            var serializer = new JavaScriptSerializer();
            var obj = serializer.Deserialize<Dictionary<string, string>>(data);
            string accessToken;
            if (!obj.TryGetValue("access_token", out accessToken))
                return;

            var opentid = obj["openid"];
            url = string.Format("https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}&lang=zh_CN", accessToken, opentid);
            data = client.DownloadString(url);
            var userInfo = serializer.Deserialize<Dictionary<string, object>>(data);
            foreach (var key in userInfo.Keys)
            {
                context.Response.Write(string.Format("{0}: {1}", key, userInfo[key]) + "<br/>");
            }
        }
    }
}

Pour plus de développement WeChat - pour obtenir les informations de base de l'utilisateur via autorisation, veuillez faire attention au site Web PHP chinois pour les articles connexes !

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