List<string> openidList = WXApi.GetOpenIDs(access_token); //获取关注者OpenID列表
拼接图文消息Json(WXMsgUtil类):
/// <summary>
/// 图文消息json
/// </summary>
public static string CreateNewsJson(string media_id, List<string> openidList)
{
StringBuilder sb = new StringBuilder();
sb.Append("{"touser":[");
sb.Append(string.Join(",", openidList.ConvertAll<string>(a => """ + a + """).ToArray()));
sb.Append("],");
sb.Append(""msgtype":"mpnews",");
sb.Append(""mpnews":{"media_id":"" + media_id + ""}");
sb.Append("}");
return sb.ToString();
}
群发代码:
resultMsg = WXApi.Send(access_token, WXMsgUtil.CreateNewsJson(newsid, openidList));
/// <summary>
/// 根据OpenID列表群发
/// </summary>
public static string Send(string access_token, string postData)
{
return HttpRequestUtil.PostUrl(string.Format("https://www.easck.com/cgi-bin/message/mass/send?access_token={0}", access_token), postData);
}
供群发按钮调用的方法(data是传到页面的id,根据它从数据库中取数据):
/// <summary>
/// 群发
/// </summary>
public string Send()
{
string type = Request["type"];
string data = Request["data"];
string access_token = AdminUtil.GetAccessToken(this); //获取access_token
List<string> openidList = WXApi.GetOpenIDs(access_token); //获取关注者OpenID列表
UserInfo loginUser = AdminUtil.GetLoginUser(this); //当前登录用户
string resultMsg = null;
//发送文本
if (type == "1")
{
resultMsg = WXApi.Send(access_token, WXMsgUtil.CreateTextJson(data, openidList));
}
//发送图片
if (type == "2")
{
string path = MapPath(data);
if (!File.Exists(path))
{
return "{"code":0,"msg":"要发送的图片不存在"}";
}
string msg = WXApi.UploadMedia(access_token, "image", path);
string media_id = Tools.GetJsonValue(msg, "media_id");
resultMsg = WXApi.Send(access_token, WXMsgUtil.CreateImageJson(media_id, openidList));
}
//发送图文消息
if (type == "3")
{
DataTable dt = ImgItemDal.GetImgItemTable(loginUser.OrgID, data);
string articlesJson = ImgItemDal.GetArticlesJsonStr(this, access_token, dt);
string newsMsg = WXApi.UploadNews(access_token, articlesJson);
string newsid = Tools.GetJsonValue(newsMsg, "media_id");
resultMsg = WXApi.Send(access_token, WXMsgUtil.CreateNewsJson(newsid, openidList));
}
//结果处理
if (!string.IsNullOrWhiteSpace(resultMsg))
{
string errcode = Tools.GetJsonValue(resultMsg, "errcode");
string errmsg = Tools.GetJsonValue(resultMsg, "errmsg");
if (errcode == "0")
{
return "{"code":1,"msg":""}";
}
else
{
return "{"code":0,"msg":"errcode:"
+ errcode + ", errmsg:"
+ errmsg + ""}";
}
}
else
{
return "{"code":0,"msg":"type参数错误"}";
}
}










