關於微信授權登錄並獲取Openid以及用戶信息


一.集成微信授權登錄

二.集成代碼

  1. AppDelegate 代碼

#import "AppDelegate.h"
#import "WXApi.h"
#import "WXApiManager.h"
@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    [WXApi registerApp:@"wx1a607bdfc220e2e0" withDescription:@"demo 2.0"];

    // Override point for customization after application launch.
    return YES;
}

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    return  [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
}

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
}
2.調起授權代碼

//調起授權

  -(void)Auth{

   [WXApiRequestHandler sendAuthRequestScope: kAuthScope
                                        State:kAuthState
                                       OpenID:kAuthOpenID
                             InViewController:self];
    
    
}

//遵循代理方法通過授權得到code 再通過code 得到用戶的Openid
- (void)managerDidRecvAuthResponse:(SendAuthResp *)response {
  NSString *URlStr =  [self code:response.code];
    AFHTTPRequestOperationManager *httpClient = [AFHTTPRequestOperationManager manager];
    
    httpClient.requestSerializer = [AFJSONRequestSerializer serializer];
    //如果報接受類型不一致請替換一致text/html或別的
    httpClient.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
//    [httpClient.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
//    [httpClient.requestSerializer setValue:@"utf-8" forHTTPHeaderField:@"charset"];
    // FOR HTTP
    httpClient.responseSerializer = [AFHTTPResponseSerializer serializer];
    httpClient.operationQueue.maxConcurrentOperationCount = 3;
    
    AFSecurityPolicy *securityPolicy = [AFSecurityPolicy defaultPolicy];
    
    securityPolicy.allowInvalidCertificates = YES;
    securityPolicy.validatesDomainName = NO;
    
    httpClient.securityPolicy = securityPolicy;
    
    [httpClient POST:URlStr parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"%@", [[NSString alloc] initWithData:responseObject  encoding:NSUTF8StringEncoding] );
        
        
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"%@",error);
    }];
    
    
}

//配置URL
-(NSString*)code:(NSString*)selfCode{
    NSString *str = [NSString stringWithFormat:@"https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx1a607bdfc220e2e0&secret=e13ded42afd77947311038480d7d3b64&code=%@&grant_type=authorization_code",selfCode];
    NSLog(@"%@",str);
    return str;
}



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM