public async Task <ResultModel <string> > GetOpenID(GetOpenIDRequestModel requestModel)
        {
            try
            {
                Guid           userID          = _userService.GetUserID(requestModel.Token);
                ApplicationDTO applicationInfo =
                    await _applicationService.GetApplicationInfoAsync(requestModel.AppID, userID);

                if (applicationInfo == null)
                {
                    return(ResultModel <string> .Fail("未注册该小程序"));
                }
                var weChatConfig = new WeChatConfigModel
                {
                    APPID     = applicationInfo.AppID,
                    APPSECRET = applicationInfo.AppSecret
                };
                var    manager = new WeChatMiniProgramManager(weChatConfig);
                string openID  = manager.GetOpenIDByCode(requestModel.Code);
                return(ResultModel <string> .Success(openID, "获取OpenID成功"));
            }
            catch (InvalidOperationException ex)
            {
                return(ResultModel <string> .Fail(ex.Message));
            }
            catch (WeChatException ex)
            {
                return(ResultModel <string> .Fail(ex.Message));
            }
        }
        public async Task GetOpenIDByCode(string code)
        {
            var config = new WeChatConfigModel
            {
                APPID     = "wx93154cd53fc514f9",
                APPSECRET = "f41448533e3aa671524202d5c0fbc243"
            };
            var    weChatAppletManager = new WeChatMiniProgramManager(config);
            string openID = await weChatAppletManager.GetOpenIDByCodeAsync(code);

            Console.WriteLine($"OpenID为:{openID}");
        }
예제 #3
0
        public async Task <ResultModel <UserLoginResultModel> > LoginByWeChatCode(WeChatMiniProgramLoginRequestModel requestModel)
        {
            var    weChatAppletManager = new WeChatMiniProgramManager(ApplicationConfig.CYRecordBillWeChatConfig);
            string openID = weChatAppletManager.GetOpenIDByCode(requestModel.Code);

            try
            {
                TokenResponse tokenResponse = await IdentityClientHelper.GetTokenResponseAsync(openID, requestModel.NickName, LoginCategory.OpenID);

                if (tokenResponse.IsError)
                {
                    return(ResultModel <UserLoginResultModel> .Fail(tokenResponse.ErrorDescription));
                }
                var result = new UserLoginResultModel(tokenResponse.Raw.JsonToObject <TokenResultModel>());
                return(ResultModel <UserLoginResultModel> .Success(result, "登录成功"));
            }
            catch (InvalidOperationException ex)
            {
                return(ResultModel <UserLoginResultModel> .Fail(ex.Message));
            }
        }