public string MessageToXml(WeChatMessage data) { return($@"<xml> <ToUserName><![CDATA[{data.ToUserName}]]></ToUserName> <FromUserName><![CDATA[{data.FromUserName}]]></FromUserName> <CreateTime>{DateTimeOffset.Now.ToUnixTimeSeconds()}</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[{data.Content}]]></Content> </xml>"); }
public IActionResult ReceiveMessages(string signature, string echostr, string timestamp, string nonce, string openid) { //校验signature if (!weChat.CheckSignature(timestamp, nonce, signature)) { return(new JsonResult(new ApiModel { code = -111, msg = "签名校验错误" })); } //绑定接口URL时Token验证 if (echostr != null) { return(new ContentResult() { Content = echostr }); } //处理消息 if (Request.Body != null) { using (var reader = new StreamReader(Request.Body)) { var xml = reader.ReadToEnd(); var message = weChat.HandleMessage(xml); var reply = new WeChatMessage() { FromUserName = message.ToUserName, ToUserName = message.FromUserName, MsgType = "text" }; //关注公众号返回Apikey //if (message.MsgType == "event") //{ // if (message.Event== "subscribe") // { // reply.Content = CreateApiKey(message.FromUserName); // } // else if(message.Event== "unsubscribe") // { // RemoveApiKey(message.FromUserName); // reply.Content = "已取消绑定"; // } //} if (message.MsgType == "text") { switch (message.Content) { case "绑定": reply.Content = $"APIKEY:{CreateApiKey(message.FromUserName)}"; break; case "取消绑定": RemoveApiKey(message.FromUserName); reply.Content = "已取消绑定,APIKEY已经失效"; break; default: reply.Content = "未知命令\n回复'绑定'获取一个APIKEY\n回复'取消绑定'移除已绑定的APIKEY"; break; } return(new ContentResult() { Content = weChat.MessageToXml(reply) }); } else { reply.Content = "只支持文本消息"; return(new ContentResult() { Content = weChat.MessageToXml(reply) }); } } } else { return(new ContentResult() { Content = "" }); } }