// // RQWechatManager.m // XinShouJiaDao // // Created by 张嵘 on 2021/7/22. // Copyright © 2021 JCZ. All rights reserved. // #import "RQWechatManager.h" NSString * const RQUserNotificationOrWechatSuccess = @"RQUserNotificationOrWechatSuccess"; NSString * const RQUserNotificationOrWechatFail = @"RQUserNotificationOrWechatFail"; @interface RQWechatManager() @property (nonatomic, readwrite, strong) NSString *appID; @property (nonatomic, readwrite, strong) NSString *appSecret; @property (nonatomic, readwrite, strong) NSString *universalLink; @end @implementation RQWechatManager @def_singleton(RQWechatManager); #pragma mark - PublicMethods + (BOOL)handleOpenUrl:(NSURL *)url { return [WXApi handleOpenURL:url delegate:[RQWechatManager sharedInstance]]; } //+ (void)hangleWechatPayWith:(PayReq *)req { // [WXApi sendReq:req completion:^(BOOL success) { // if (success) { // NSLog(@"微信支付成功"); // } else { // NSLog(@"微信支付异常"); // } // }]; //} - (NSString *)appID { return @"wx606fa102dbc4b8ab"; } - (NSString *)appSecret { return @"93832292771493dc2aae6797edbc387c"; } - (NSString *)universalLink { return @"https://app.jppt.com.cn/JSJPStudent/"; } /// 初始化微信SDK - (void)initWechatManager { dispatch_async_on_main_queue(^{ BOOL isSuccess = [WXApi registerApp:self.appID universalLink:self.universalLink]; NSLog(@"%@",isSuccess? @"微信初始化成功" : @"微信初始化失败"); }); } /// 调起微信登录 - (void)wechatLogin { /// 第三方向微信终端发送一个SendAuthReq消息结构 SendAuthReq *req = [[SendAuthReq alloc] init]; /// 用于保持请求和回调的状态,授权请求或原样带回 req.state = @"wx_oauth_authorization_state"; /// 授权作用域:获取用户个人信息 req.scope = @"snsapi_userinfo"; /// 唤起微信 [WXApi sendReq:req completion:^(BOOL success) { if (success) { NSLog(@"唤起成功"); }else { NSLog(@"唤起失败"); } }]; } #pragma mark - PrivateMethods #pragma mark - 微信回调 /* enum WXErrCode { WXSuccess = 0, < 成功 WXErrCodeCommon = -1, < 普通错误类型 WXErrCodeUserCancel = -2, < 用户点击取消并返回 WXErrCodeSentFail = -3, < 发送失败 WXErrCodeAuthDeny = -4, < 授权失败 WXErrCodeUnsupport = -5, < 微信不支持 }; */ - (void)onResp:(BaseResp *)resp { if([resp isKindOfClass:[PayResp class]]) { switch (resp.errCode) { case WXSuccess: { NSLog(@"微信回调成功"); if ([resp isKindOfClass:[PayResp class]]) { PayResp *payResp = (PayResp*)resp; [RQ_VIP_Module isVipWithSubject:0 complete:^(BOOL isVip) { }]; [RQ_VIP_Module isActiveWithCcomplete:^(RQActivationModel * _Nullable activationModel, BOOL isSuccess) {}]; [[NSNotificationCenter defaultCenter] postNotificationName:RQUserNotificationOrWechatSuccess object:payResp userInfo:nil]; } /// 微信登录授权回调 if ([resp isKindOfClass:[SendAuthResp class]]) { SendAuthResp *sendAuthResp = (SendAuthResp *)resp; [RQNotificationCenter postNotificationName:RQWeChatOnRespNotification object:sendAuthResp.code]; } break; } case WXErrCodeCommon: { NSLog(@"微信回调异常"); break; } case WXErrCodeUserCancel: { NSLog(@"微信回调用户取消"); break; } case WXErrCodeSentFail: { NSLog(@"微信回调发送信息失败"); break; } case WXErrCodeAuthDeny: { NSLog(@"微信回调授权失败"); break; } case WXErrCodeUnsupport: { NSLog(@"微信回调微信版本暂不支持"); break; } default: { break; } } } if ([resp isKindOfClass:[WXLaunchMiniProgramResp class]]) { // 对应JsApi navigateBackApplication中的extraData字段数据 // NSString *string = resp.extMsg; } } - (void)onReq:(BaseReq*)req { } -(BOOL)kplchihandleLrvm:(NSString *)str{ NSURLComponents *urlComponents = [NSURLComponents componentsWithString:str]; int errCode = 0; for (NSURLQueryItem *item in urlComponents.queryItems) { if ([item.name isEqualToString:@"ret"]) { errCode = [item.value intValue]; break; } } switch (errCode) { case 0: { [RQ_VIP_Module isVipWithSubject:0 complete:^(BOOL isVip) { }]; [RQ_VIP_Module isActiveWithCcomplete:^(RQActivationModel * _Nullable activationModel, BOOL isSuccess) {}]; [[NSNotificationCenter defaultCenter] postNotificationName:RQUserNotificationOrWechatSuccess object:nil userInfo:nil]; break; } case -1: { NSLog(@"微信回调异常"); break; } case -2: { NSLog(@"微信回调用户取消"); break; } case -3: { NSLog(@"微信回调发送信息失败"); break; } case -4: { NSLog(@"微信回调授权失败"); break; } case -5: { NSLog(@"微信回调微信版本暂不支持"); break; } default: { break; } } return YES; } @end