1. 程式人生 > >C# 微信介面之推送模版訊息

C# 微信介面之推送模版訊息

 public string SendTempletMessge()
    {
      string strReturn = string.Empty;
      try
      {
          #region 獲取access_token
          string apiurl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=你的appid&secret=你的secret";
          WebRequest request = WebRequest.Create(@apiurl);
          request.Method = "POST";
          WebResponse response = request.GetResponse();
          Stream stream = response.GetResponseStream();
          Encoding encode = Encoding.UTF8;
          StreamReader reader = new StreamReader(stream, encode);
          string detail = reader.ReadToEnd();
          var jd = JsonConvert.DeserializeObject<WXApi>(detail);
          string token = (String)jd.access_token;
          #endregion

          #region 組裝資訊推送,並返回結果(其它模版訊息於此類似)
          string url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + token;
          string temp = "{\"touser\": \"" + UserInfo.OpenID + "\"," +
                        "\"template_id\": \"f3kRRjJeyLDf4tndtg-OJeRvgEdgjjDxCy4T9kuwM70\", " +
                        "\"topcolor\": \"#FF0000\", " +
                        "\"data\": " +
                        "{\"first\": {\"value\": \"您好,您有一條回款通知資訊\"}," +
                        "\"keyword1\": { \"value\": \"單位名稱\"}," +
                        "\"keyword2\": { \"value\": \"日期\"}," +
                        "\"keyword3\": { \"value\": \"金額\"}," +
                        "\"keyword4\": { \"value\": \"業務員\"}," +
                        "\"remark\": {\"value\": \"\" }}}";

          #endregion

	  //核心程式碼
	  GetResponseData(temp, @url);
          strReturn = "推送成功";
      }
      catch (Exception ex)
      {
        strReturn = ex.Message;
      }
      return strReturn;
    }

    /// <summary>  
    /// 返回JSon資料  
    /// </summary>  
    /// <param name="JSONData">要處理的JSON資料</param>  
    /// <param name="Url">要提交的URL</param>  
    /// <returns>返回的JSON處理字串</returns>  
    public string GetResponseData(string JSONData, string Url)
    {
      byte[] bytes = Encoding.UTF8.GetBytes(JSONData);
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
      request.Method = "POST";
      request.ContentLength = bytes.Length;
      request.ContentType = "json";
      Stream reqstream = request.GetRequestStream();
      reqstream.Write(bytes, 0, bytes.Length);

      //宣告一個HttpWebRequest請求  
      request.Timeout = 90000;
      //設定連線超時時間  
      request.Headers.Set("Pragma", "no-cache");
      HttpWebResponse response = (HttpWebResponse)request.GetResponse();
      Stream streamReceive = response.GetResponseStream();
      Encoding encoding = Encoding.UTF8;

      StreamReader streamReader = new StreamReader(streamReceive, encoding);
      string strResult = streamReader.ReadToEnd();
      streamReceive.Dispose();
      streamReader.Dispose();
      return strResult;
    }
==================================================================================
涉及到的實體:
public class WXApi
  {
    public string access_token { set; get; }
  }