Maison >Applet WeChat >Développement WeChat >IOS implémente le code d'exemple de la fonction de connexion autorisée WeChat

IOS implémente le code d'exemple de la fonction de connexion autorisée WeChat

高洛峰
高洛峰original
2017-03-27 14:19:352860parcourir

WeChat est une plateforme souvent utilisée dans le développement, comme la connexion, l'autorisation, le paiement et le partage WeChat. Aujourd'hui, nous allons voir comment intégrer l'autorisation WeChat dans votre propre application. Les amis qui en ont besoin peuvent s'y référer

1 La définition de l'autorisation WeChat.

La connexion autorisée à WeChat OAuth2.0 permet aux utilisateurs de WeChat de se connecter en toute sécurité à des applications ou à des sites Web tiers en utilisant des identités WeChat. Une fois que les utilisateurs de WeChat ont autorisé la connexion à des applications tierces qui ont accès à WeChat OAuth2.0, le un tiers peut obtenir les informations d'identification d'appel de l'interface utilisateur (access_token), via access_token, l'interface de relation d'autorisation de la plate-forme ouverte WeChat peut être appelée, afin d'obtenir les informations ouvertes de base des utilisateurs de WeChat et d'aider les utilisateurs à réaliser les fonctions ouvertes de base.

2. Étapes pour l'autorisation WeChat

Un tiers lance une demande de connexion d'autorisation WeChat après que l'utilisateur WeChat ait autorisé l'autorisation du tiers. application tierce, WeChat tirera Démarrez l'application ou redirigera vers un site Web tiers et apportera le paramètre de code de ticket temporaire d'autorisation

Ajoutez AppID et AppSecret via le paramètre de code et échangez-le contre access_token via l'API ;

Interface via access_token Appel pour obtenir les ressources de données de base de l'utilisateur ou aider l'utilisateur à mettre en œuvre des opérations de base.

3. Travail de préparation

Nous devons effectuer un travail de préparation avant d'autoriser la connexion à WeChat.

Pour plus de détails, il suffit de consulter la documentation du développeur WeChat. L'adresse est la suivante : Guide d'accès iOS

En plus des points mentionnés dans la documentation du développeur WeChat, il existe quelques autres endroits. qui nécessitent une attention particulière

3.1. Modifiez le fichier plist comme suit

IOS implémente le code dexemple de la fonction de connexion autorisée WeChat

Paramètre de sécurité du transport de l'application

Nouveau. App Transport dans iOS9 La fonctionnalité de sécurité (ATS en abrégé) entraîne principalement le transfert du HTTP utilisé dans la requête d'origine vers le protocole TLS1.2 pour la transmission. Cela signifie également que tous les protocoles HTTP sont obligés d'utiliser le protocole HTTPS pour la transmission. Vous devez ajouter une configuration pour contrôler ATS dans Info.plist :


<key>NSAppTransportSecurity</key>
<dict>
 <key>NSAllowsArbitraryLoads</key>
 <true/>
</dict>

Cela permettra la transmission HTTP

4 . La première étape de l'autorisation WeChat : obtenir le code

Nous supposons qu'il y a un bouton sur l'interface, et lorsque l'utilisateur clique sur le bouton, l'opération d'autorisation WeChat sera lancée.

Ensuite le code est le suivant :


-(IBAction)sendAuthRequest
{ 
 //构造SendAuthReq结构体 
 SendAuthReq* req =[[[SendAuthReq alloc ] init ] autorelease ];
 req.scope = @"snsapi_userinfo" ;
 req.state = WXPacket_State ;//用于在OnResp中判断是哪个应用向微信发起的授权,这里填写的会在OnResp里面被微信返回
 //第三方向微信终端发送一个SendAuthReq消息结构
 [WXApi sendReq:req]; 
}

Description du paramètre

IOS implémente le code dexemple de la fonction de connexion autorisée WeChat

4.2. Affichez la page d'autorisation WeChat

IOS implémente le code dexemple de la fonction de connexion autorisée WeChat

4.3. 🎜>

IOS implémente le code dexemple de la fonction de connexion autorisée WeChat

5.Étape 2 de l'autorisation WeChat : Obtenez access_token, openid, unionid via le code Après avoir obtenu le code de la première étape, demandez le lien suivant pour obtenir access_token, openid, unionid :


https://api.weixin.qq.com/sns /oauth2/access_token?

appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

Lancez la page d'autorisation WeChat via l'étape précédente, et l'utilisateur clique pour confirmer la connexion. Après succès, le rappel. La fonction OnResp dans l'agent WeChat sera appelée. Nous pouvons obtenir access_token, openid, unionid dans cette fonction

Le code d'implémentation dans le fichier AppDelegate.m est le suivant :


//微信代理方法
- (void)onResp:(BaseResp *)resp
{
  SendAuthResp *aresp = (SendAuthResp *)resp;
  if(aresp.errCode== 0 && [aresp.state isEqualToString:WXPacket_State])
  {
   NSString *code = aresp.code;
   [self getWeiXinOpenId:code];
  }
}
//通过code获取access_token,openid,unionid
- (void)getWeiXinOpenId:(NSString *)code{
 NSString *url =[NSString stringWithFormat:@"https://api.weixin.qq.com/sns/oauth2/access_token?appid=%@&secret=%@&code=%@&grant_type=authorization_code",AppId,AppSerect,code];
 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
  NSURL *zoneUrl = [NSURL URLWithString:url];
  NSString *zoneStr = [NSString stringWithContentsOfURL:zoneUrl encoding:NSUTF8StringEncoding error:nil];
  NSData *data = [zoneStr dataUsingEncoding:NSUTF8StringEncoding];
  dispatch_async(dispatch_get_main_queue(), ^{
   if (data){
    NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
    NSString *openID = dic[@"openid"];
    NSString *unionid = dic[@"unionid"];
   }
  });
 });
}
5.1 Instructions de retour :

IOS implémente le code dexemple de la fonction de connexion autorisée WeChat

5.2 Actualiser la période de validité du access_token

IOS implémente le code dexemple de la fonction de connexion autorisée WeChat

5.2.1 Instructions de retour

IOS implémente le code dexemple de la fonction de connexion autorisée WeChat

6. Étape 3 de l'autorisation WeChat : obtenir des informations personnelles via access_token

6.1 Description de l'interface

Cette interface est utilisée pour obtenir les informations personnelles de l'utilisateur. information . Les développeurs peuvent obtenir des informations utilisateur de base via OpenID. Il est particulièrement important de noter que si un développeur possède plusieurs applications mobiles, applications de site Web et comptes publics, l'utilisateur peut être distingué de manière unique en obtenant l'unionid dans les informations de base de l'utilisateur, car tant qu'il s'agit d'une application mobile sous le même WeChat compte de plateforme ouverte, applications de sites Web et comptes publics, l'identifiant syndical de l'utilisateur est unique. En d’autres termes, pour un même utilisateur, l’unionid est le même pour différentes applications sous la même plateforme ouverte WeChat. Veuillez noter qu'une fois que l'utilisateur a modifié l'avatar WeChat, l'ancienne URL de l'avatar WeChat deviendra invalide. Par conséquent, les développeurs doivent enregistrer l'image de l'avatar après avoir obtenu les informations de l'utilisateur pour éviter des situations anormales après que l'URL de l'avatar WeChat devienne invalide.

Interface de requête

Méthode de requête http : GET

Adresse de requête : https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID

Description des paramètres et des données de retour

IOS implémente le code dexemple de la fonction de connexion autorisée WeChat

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