Esempio n. 1
0
        public ActionResult Index()
        {
            IHandlerBuilder builder = new HandlerBuilder();

            builder
            .Use <SignatureCheckHandlerMiddleware>()       //验证签名中间件。
            .Use <CreateRequestMessageHandlerMiddleware>() //创建消息中间件(内置消息解密逻辑)。
            .Use <SessionSupportHandlerMiddleware>()       //会话支持中间件。
            .Use <IgnoreRepeatMessageHandlerMiddleware>()  //忽略重复的消息中间件。
            .Use <TestMessageHandlerMiddleware>()          //测试消息处理中间件。
            .Use <GenerateResponseXmlHandlerMiddleware>(); //生成相应XML处理中间件(内置消息加密逻辑)。
                                                           //                            .Use<AgentHandlerMiddleware>(new AgentRequestModel(new Uri("http://localhost:22479/Mutual")));

            string content;

            using (var reader = new StreamReader(Request.Body, Encoding.UTF8))
            {
                content = reader.ReadToEnd();
            }

            var context = new HandlerContext(content);

            //设置基本信息。
            context
            .SetMessageHandlerBaseInfo(new MessageHandlerBaseInfo(
                                           _weChatConfig.AppId,
                                           _weChatConfig.EncodingAesKey,
                                           _weChatConfig.Token));

            IWeiXinHandler weiXinHandler = new DefaultWeiXinHandler(builder);

            weiXinHandler.Execute(context);

            return(new WeiXinResult(context));
        }
Esempio n. 2
0
        public ActionResult Index()
        {
            IHandlerBuilder builder = new HandlerBuilder();

            builder
            .Use <SignatureCheckHandlerMiddleware>()       //验证签名中间件。
            .Use <CreateRequestMessageHandlerMiddleware>() //创建消息中间件(内置消息解密逻辑)。
            .Use <SessionSupportHandlerMiddleware>()       //会话支持中间件。
            .Use <IgnoreRepeatMessageHandlerMiddleware>()  //忽略重复的消息中间件。
            .Use <TestMessageHandlerMiddleware>()          //测试消息处理中间件。
            .Use <GenerateResponseXmlHandlerMiddleware>(); //生成相应XML处理中间件(内置消息加密逻辑)。
            //                            .Use<AgentHandlerMiddleware>(new AgentRequestModel(new Uri("http://localhost:22479/Mutual")));

            var context = new HandlerContext(Request);

            //设置基本信息。
            context
            .SetMessageHandlerBaseInfo(new MessageHandlerBaseInfo(
                                           "wxa4ab3e636e2eb702",
                                           "q0OlAOdGzpmm5B8HEqycylcn17nUp25HG04dr7KD6ET",
                                           "weixin"));

            IWeiXinHandler weiXinHandler = new DefaultWeiXinHandler(builder);

            weiXinHandler.Execute(context);

            return(new WeiXinResult(context));
        }
Esempio n. 3
0
        public async Task <ActionResult> Index()
        {
            IHandlerBuilder builder = new HandlerBuilder();

            builder
#if !DEBUG
            .Use <SignatureCheckHandlerMiddleware>()       //验证签名中间件。
#endif
            .Use <CreateRequestMessageHandlerMiddleware>() //创建消息中间件(内置消息解密逻辑)。
            .Use <SessionSupportHandlerMiddleware>()       //会话支持中间件。
            .Use <IgnoreRepeatMessageHandlerMiddleware>()  //忽略重复的消息中间件。
            .Use <CommandMessageHandlerMiddleware>()       //每日精华文章消息处理中间件。
            .Use <GenerateResponseXmlHandlerMiddleware>(); //生成相应XML处理中间件(内置消息加密逻辑)。
            //                            .Use<AgentHandlerMiddleware>(new AgentRequestModel(new Uri("http://localhost:22479/Mutual")));

            var context = new HandlerContext(Request);

            //设置基本信息。
            context
            .SetMessageHandlerBaseInfo(new MessageHandlerBaseInfo(
                                           ConfigurationManager.AppSettings["wx:AppId"],
                                           ConfigurationManager.AppSettings["wx:AppSecret"],
                                           "weixin"));

            IWeiXinHandler weiXinHandler = new DefaultWeiXinHandler(builder);
            await weiXinHandler.Execute(context);

            return(new WeiXinResult(context));
        }