You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

185 lines
5.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace HuizhongLibrary.Weixin
{
public class WeixinMessage
{
public string touser { get; set; }
public string template_id { get; set; }
public string url { get; set; }
public List<WeixinMessageData> data { get; set; }
public WeixinMessage()
{
data = new List<WeixinMessageData>();
}
public string ToJsonString()
{
StringBuilder sb = new StringBuilder();
sb.Append("{");
sb.Append("\"touser\":\"" + this.touser + "\",");
sb.Append("\"template_id\":\"" + this.template_id + "\",");
sb.Append("\"url\":\"" + this.url + "\",");
sb.Append("\"data\":{");
foreach (var item in data)
{
sb.Append(item.ToJsonString());
int index = data.IndexOf(item);
if (index < data.Count-1) sb.Append(",");
}
sb.Append("}");
sb.Append("}");
return sb.ToString();
}
}
public class WeixinMessageData
{
public string Name { get; set; }
public string value { get; set; }
public string color { get; set; }
public WeixinMessageData(string Name,string value)
{
this.Name = Name;
this.value = value;
this.color = "";
}
public WeixinMessageData(string Name, string value,string color)
{
this.Name = Name;
this.value = value;
this.color = color;
}
public string ToJsonString()
{
StringBuilder sb = new StringBuilder();
sb.Append("\""+this.Name+"\":{");
sb.Append("\"value\":\"" + this.value + "\",");
sb.Append("\"color\":\"" + this.color + "\"");
sb.Append("}");
return sb.ToString();
}
}
public class WeixinEnterpriseMessage
{
public string touser { get; set; }
public string toparty { get; set; }
public string totag { get; set; }
public string msgtype { get; set; }
public int agentid { get; set; }
public string content { get; set; }
public int safe { get; set; }
public List<WeixinEnterpriseArticle> articles { get; set; }
public WeixinEnterpriseMessage()
{
touser = "@all";
agentid = 3;
msgtype = "news";
safe = 0;
articles = new List<WeixinEnterpriseArticle>();
}
public string ToJsonString()
{
StringBuilder sb = new StringBuilder();
sb.Append("{");
if (string.IsNullOrEmpty(touser) == false) sb.Append("\"touser\":\"" + this.touser + "\",");
if (string.IsNullOrEmpty(toparty) == false) sb.Append("\"toparty\":\"" + this.toparty + "\",");
if (string.IsNullOrEmpty(totag) == false) sb.Append("\"totag\":\"" + this.totag + "\",");
sb.Append("\"msgtype\":\"" + this.msgtype + "\",");
sb.Append("\"agentid\":" + this.agentid + ",");
if (msgtype == "text")
{
sb.Append("\"text\":{");
sb.Append("\"content\":\"" + this.content + "\",");
sb.Append("},");
}
if (msgtype == "news")
{
sb.Append("\"news\":{");
sb.Append("\"articles\":[");
foreach (var item in articles)
{
sb.Append(item.ToJsonString());
int index = articles.IndexOf(item);
if (index < articles.Count-1) sb.Append(",");
}
sb.Append("]");
sb.Append("},");
}
if (msgtype == "textcard")
{
sb.Append("\"textcard\":");
sb.Append(articles[0].ToJsonString());
sb.Append(",");
}
sb.Append("\"safe\":" + this.safe);
sb.Append("}");
return sb.ToString();
}
}
public class WeixinEnterpriseArticle
{
public string title { get; set; }
public string description { get; set; }
public string url { get; set; }
public string btntxt { get; set; }
public WeixinEnterpriseArticle()
{
btntxt = "更多";
}
public string ToJsonString()
{
StringBuilder sb = new StringBuilder();
sb.Append("{");
sb.Append("\"title\":\"" + this.title + "\",");
sb.Append("\"description\":\"" + this.description + "\",");
sb.Append("\"url\":\"" + this.url + "\",");
sb.Append("\"btntxt\":\"" + this.btntxt + "\"");
sb.Append("}");
return sb.ToString();
}
}
public class WeixinArticleMessage
{
public string thumb_media_id { get; set; }
public string author { get; set; }
public string title { get; set; }
public string content_source_url { get; set; }
public string content { get; set; }
public int show_cover_pic { get; set; }
public string ToJsonString()
{
StringBuilder sb = new StringBuilder();
sb.Append("{");
sb.Append("\"articles\":[{");
sb.Append("\"thumb_media_id\":\"" + this.thumb_media_id + "\",");
sb.Append("\"author\":\"" + this.author + "\",");
sb.Append("\"title\":\"" + this.title + "\",");
sb.Append("\"content_source_url\":\"" + this.content_source_url + "\",");
sb.Append("\"content\":\"" + this.content + "\",");
sb.Append("\"show_cover_pic\":" + this.show_cover_pic);
sb.Append("}");
sb.Append("]");
sb.Append("}");
return sb.ToString();
}
}
}