Maison > Applet WeChat > Développement WeChat > le corps du texte

Développement de compte public C# WeChat - Autorisation de page Web (oauth2.0) pour obtenir des informations utilisateur de base 1

黄舟
Libérer: 2017-01-16 11:02:43
original
2512 Les gens l'ont consulté

Avant-propos

L'autorisation des pages Web WeChat est divisée en deux méthodes : snsapi_base et snsapi_userinfo. snsapi_base doit suivre le compte public et l'interface d'autorisation utilisateur ne s'affichera pas lors de l'obtention des informations utilisateur. snsapi_userinfo est utilisé lorsque l'utilisateur parcourt la page sans suivre le compte officiel. Une interface d'autorisation utilisateur apparaîtra en premier et les informations utilisateur ne pourront être obtenues qu'après que l'utilisateur l'aura autorisé. Dans cet article, nous examinons d'abord l'implémentation de snsapi_base.

Attention si vous marchez sur le piège

  • Quand j'ai commencé le débogage en mode snsapi_base, lorsque j'ai cliqué sur l'adresse de la page, cela m'a demandé que le lien d'adresse n'est pas disponible et que l'autorisation de la page Web doit être effectuée en premier. Définissez les informations de base pour l'autorisation de la page Web dans le compte officiel, c'est-à-dire définissez le nom de domaine.

  • Distinguer clairement le access_token global et le access_token d'autorisation de page Web

Développement de compte public C# WeChat - Autorisation de page Web (oauth2.0) pour obtenir des informations utilisateur de base 1

Développement de compte public C# WeChat - Autorisation de page Web (oauth2.0) pour obtenir des informations utilisateur de base 1

Notez ici que vous ne remplissez que le nom de domaine

pour voir l'effet

Ici nous voyons que nous avons obtenu les informations de base de l'utilisateur via oauth snsapi_base, qui est suffisant pour le développement général du conseil.

Développement de compte public C# WeChat - Autorisation de page Web (oauth2.0) pour obtenir des informations utilisateur de base 1

Voir l'idée

1 Obtenez d'abord le code en renvoyant l'adresse.

2. Obtenez openid via le code.

3. Obtenez le access_token global via appid et appsecret (c'est différent de snsapi_userinfo).

4. Obtenez des informations sur les utilisateurs via global access_token et openid.

Regardez le code

C'est simple ici L'essentiel est d'ajuster l'interface WeChat en utilisant la méthode get En même temps, préparez votre get et votre publication. méthodes de requête et utilisez json pour les paramètres de retour Convertir en classe d’entité.

public ActionResult OAuthSnsApiBase() {      
string code = Request.QueryString["code"];      
try     
{           
if (!string.IsNullOrEmpty(code))           
{                   
OAuthToken oauthToken = HttpUtility.Get<OAuthToken>
(string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appID, appsecret, code));
                    
string accesstoken = string.Empty;                    
AccessToken token = HttpUtility.Get<AccessToken>(string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}",
appID,appsecret));                    
if (token != null && !string.IsNullOrEmpty(token.access_token))                    
{                        
accesstoken = token.access_token;                    
}                                        
if (oauthToken != null && !string.IsNullOrEmpty(oauthToken.openid))                    
{                                                
OAuthUserInfo userInfo = HttpUtility.Get<OAuthUserInfo>(string.Format("https://api.weixin.qq.com/cgi-bin/user/info?access_token={0}&openid={1}&lang=zh_CN", 
accesstoken, oauthToken.openid));                        
if (userInfo != null)                        
{                                                                     
ViewData["headImage"] = userInfo.headimgurl;                            
ViewData["openid"] = userInfo.openid;                            
ViewData["nickName"] = userInfo.nickname;                            
if (userInfo.sex == 0)                            
{                                
ViewData["sex"] = "未知";                            
}                            
else if (userInfo.sex == 1)                            
{                                
ViewData["sex"] = "男";                            
}                            
else                            
{                                
ViewData["sex"] = "女";                            
}                            
ViewData["province"] = userInfo.province;                            
ViewData["city"] = userInfo.city;                        
}                        
else                        
{                                                
}                    
}                    
else                    
{                                           
}                                  
}                
else                
{                    
return Redirect(string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope=snsapi_base&state=123456
#wechat_redirect", appID,"http://"+Request.Url.Host + Url.Action("OAuthSnsApiBase")));                
}            
}            
catch (Exception ex)            
{                         
ViewData["errmsg"] = ex.Message;            
}                        
return View();        
}
Copier après la connexion
 public class OAuthToken    
 {        
 public string access_token { get; set; }        
 public int expires_in { get; set; }        
 public string refresh_token { get; set; }        
 public string openid { get; set; }        
 public string scope { get; set; }    
 } 
 public class AccessToken    
 {        
 public string access_token { get; set; }        
 public int expires_in { get; set; }    
 }public class OAuthUserInfo    
 {        
 public string openid { get; set; }        
 public string nickname { get; set; }        
 public int sex { get; set; }       
  public string province { get; set; }        
  public string city { get; set; }        
  public string country { get; set; }        
  public string headimgurl { get; set; }        
  public string privilege { get; set; }        
  public string unionid { get; set; }            
  }
Copier après la connexion

Résumé

L'interface pour obtenir des informations sur l'utilisateur ici est https://api.weixin.qq.com/cgi-bin/user/info? access_token =ACCESS_TOKEN&openid=OPENID&lang=zh_CN. Elle est différente de l'autorisation de page Web 2 pour obtenir l'interface utilisateur.

Développement de compte public C# WeChat - Autorisation de page Web (oauth2.0) pour obtenir des informations utilisateur de base 1

Développement de compte public C# WeChat - Autorisation de page Web (oauth2.0) pour obtenir des informations utilisateur de base 1


Tous les codes sont téléchargés sur github : https://github.com /garfieldzf8/WeChat

Référence

http://www.cnblogs.com/txw1958/p/weixin76-user-info.html

Ce qui précède est le contenu du développement du compte public C# WeChat - autorisation de page Web (oauth2.0) pour obtenir des informations de base sur l'utilisateur. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal