using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Web.Configuration; using Senparc.Weixin.MP.Entities; using Senparc.Weixin.MP.Helpers; using Senparc.Weixin.MP.MessageHandlers; using Senparc.Weixin.MP.Sample.CommonService.CustomMessageHandler; using Senparc.Weixin.MP.Entities.Request; using Senparc.Weixin.MP.Sample.CommonService.OpenTicket; using Senparc.Weixin.MP.Sample.CommonService.Utilities; namespace Senparc.Weixin.MP.Sample.CommonService.MessageHandlers.OpenMessageHandler { /// /// 开放平台全网发布之前需要做的验证 /// public class OpenCheckMessageHandler : MessageHandler { //private string testAppId = "wx570bc396a51b8ff8"; private string componentAppId = WebConfigurationManager.AppSettings["Component_Appid"]; private string componentSecret = WebConfigurationManager.AppSettings["Component_Secret"]; public OpenCheckMessageHandler(Stream inputStream, PostModel postModel, int maxRecordCount = 0) : base(inputStream, postModel, maxRecordCount) { } public override IResponseMessageBase OnTextRequest(RequestMessageText requestMessage) { if (requestMessage.Content == "TESTCOMPONENT_MSG_TYPE_TEXT") { var responseMessage = requestMessage.CreateResponseMessage(); responseMessage.Content = requestMessage.Content + "_callback";//固定为TESTCOMPONENT_MSG_TYPE_TEXT_callback return responseMessage; } if (requestMessage.Content.StartsWith("QUERY_AUTH_CODE:")) { string openTicket = OpenTicketHelper.GetOpenTicket(componentAppId); var query_auth_code = requestMessage.Content.Replace("QUERY_AUTH_CODE:", ""); try { var component_access_token = Open.ComponentAPIs.ComponentApi.GetComponentAccessToken(componentAppId, componentSecret, openTicket).component_access_token; var oauthResult = Open.ComponentAPIs.ComponentApi.QueryAuth(component_access_token, componentAppId, query_auth_code); //调用客服接口 var content = query_auth_code + "_from_api"; var sendResult = AdvancedAPIs.CustomApi.SendText(oauthResult.authorization_info.authorizer_access_token, requestMessage.FromUserName, content); } catch (Exception ex) { throw; } } return null; } public override IResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage) { var responseMessage = requestMessage.CreateResponseMessage(); responseMessage.Content = requestMessage.Event + "from_callback"; return responseMessage; } public override Entities.IResponseMessageBase DefaultResponseMessage(Entities.IRequestMessageBase requestMessage) { var responseMessage = requestMessage.CreateResponseMessage(); responseMessage.Content = "默认消息"; return responseMessage; } } }