C#微信公众平台开发之高级群发接口

2019-12-30 11:47:44王冬梅

请求微信接口,上传图片,返回media_id(WXApi类):


/// <summary>
/// 上传媒体返回媒体ID
/// </summary>
public static string UploadMedia(string access_token, string type, string path)
{
 // 设置参数
 string url = string.Format("http://www.easck.com/cgi-bin/media/upload?access_token={0}&type={1}", access_token, type);
 return HttpRequestUtil.HttpUploadFile(url, path);
}

string msg = WXApi.UploadMedia(access_token, "image", path); // 上图片返回媒体ID
string media_id = Tools.GetJsonValue(msg, "media_id");

传入的path(aspx.cs文件中的代码):

string path = MapPath(data);

一个图文消息由若干条图文组成,每条图文有标题、内容、链接、图片等

遍历每条图文数据,分别请求微信接口,上传图片,获取media_id

3、上传图文消息素材

拼接图文消息素材Json字符串(ImgItemDal类(操作图文消息表的类)):

 


/// <summary>
/// 拼接图文消息素材Json字符串
/// </summary>
public static string GetArticlesJsonStr(PageBase page, string access_token, DataTable dt)
{
 StringBuilder sbArticlesJson = new StringBuilder();

 sbArticlesJson.Append("{"articles":[");
 int i = 0;
 foreach (DataRow dr in dt.Rows)
 {
  string path = page.MapPath(dr["ImgUrl"].ToString());
  if (!File.Exists(path))
  {
   return "{"code":0,"msg":"要发送的图片不存在"}";
  }
  string msg = WXApi.UploadMedia(access_token, "image", path); // 上图片返回媒体ID
  string media_id = Tools.GetJsonValue(msg, "media_id");
  sbArticlesJson.Append("{");
  sbArticlesJson.Append(""thumb_media_id":"" + media_id + "",");
  sbArticlesJson.Append(""author":"" + dr["Author"].ToString() + "",");
  sbArticlesJson.Append(""title":"" + dr["Title"].ToString() + "",");
  sbArticlesJson.Append(""content_source_url":"" + dr["TextUrl"].ToString() + "",");
  sbArticlesJson.Append(""content":"" + dr["Content"].ToString() + "",");
  sbArticlesJson.Append(""digest":"" + dr["Content"].ToString() + "",");
  if (i == dt.Rows.Count - 1)
  {
   sbArticlesJson.Append(""show_cover_pic":"1"}");
  }
  else
  {
   sbArticlesJson.Append(""show_cover_pic":"1"},");
  }
  i++;
 }
 sbArticlesJson.Append("]}");

 return sbArticlesJson.ToString();
}