.net mvc中微信发送模板信息及获取用户openId代码
本文介绍如果在asp.net中开发微信发送模板消息代码,模板代码发送适用于微信支付成功后通知收款员钱已到账,在获取到用户openId的情况下可以主动给微信用户发送消息,效果图如下:
.jpg)
具体代码如下:
public static class SendTemplateMessage
{
public static string SendMessage(string openId, string title, string serviceName, string muneyStr, string buyDate)
{
try
{
//var toUserId = "oPCLNv43iPAPJleI3pfg0lEZC6sU";
var toUserId = openId;
var data = new TemplateModel(title, serviceName, muneyStr, buyDate, "感谢您的使用!");
data.touser = toUserId;
data.template_id = "312vCmw5UD0Tit11YPpXjeCrENgK7UyMMFceWEbuYqM";
data.url = "http://www.hayimom.com.cn";
data.topcolor = "#FF0000";
string jsonStr = JsonConvert.SerializeObject(data);
AccessToken token = AccessToken.Get("gh_3f2d577e607aTmp");
//string url = string.Format("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={0}", token.access_token);
SendTemplateMsg(token.access_token, jsonStr);
return "Success";
}
catch (Exception e) { return "Error"; }
}
/// <summary>
/// 发送模板消息
/// </summary>
/// <param name="accessToken">AccessToken</param>
/// <param name="data">发送的模板数据</param>
/// <returns></returns>
public static string SendTemplateMsg(string accessToken, string data)
{
string url = string.Format("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={0}", accessToken);
HttpWebRequest hwr = WebRequest.Create(url) as HttpWebRequest;
hwr.Method = "POST";
hwr.ContentType = "application/x-www-form-urlencoded";
byte[] payload;
payload = System.Text.Encoding.UTF8.GetBytes(data); //通过UTF-8编码
hwr.ContentLength = payload.Length;
Stream writer = hwr.GetRequestStream();
writer.Write(payload, 0, payload.Length);
writer.Close();
var result = hwr.GetResponse() as HttpWebResponse; //此句是获得上面URl返回的数据
string strMsg = WebResponseGet(result);
return strMsg;
}
public static string WebResponseGet(HttpWebResponse webResponse)
{
StreamReader responseReader = null;
string responseData = "";
try
{
responseReader = new StreamReader(webResponse.GetResponseStream());
responseData = responseReader.ReadToEnd();
}
catch
{
throw;
}
finally
{
webResponse.GetResponseStream().Close();
responseReader.Close();
responseReader = null;
}
return responseData;
}
#region 模板消息类
public class TemplateModel
{
public string touser { get; set; }
public string template_id { get; set; }
public string url { get; set; }
public string topcolor { get; set; }
public TemplateData data { get; set; }
public TemplateModel(string hello, string state, string reason, string date, string last)
{
data = new TemplateData()
{
first = new TempItem(hello),
keyword1 = new TempItem(state),
keyword2 = new TempItem(reason),
keyword3 = new TempItem(date),
remark = new TempItem(last)
};
}
}
public class TemplateData
{
public TempItem first { get; set; }
public TempItem keyword1 { get; set; }
public TempItem keyword2 { get; set; }
public TempItem keyword3 { get; set; }
public TempItem remark { get; set; }
}
public class TempItem
{
public TempItem(string v, string c = "#173177")
{
value = v;
color = c;
}
public string value { get; set; }
public string color { get; set; }
}
public class OpenApiResult
{
public int error_code { get; set; }
public string error_msg { get; set; }
public string msg_id { get; set; }
}
#endregion
}
附:获取用户OpenID代码:
public ActionResult GetOpenId()
{
JsApiPay jsApiPay = new JsApiPay();
try
{
//调用【网页授权获取用户信息】接口获取用户的openid和access_token
jsApiPay.GetOpenidAndAccessToken();
//获取微信支付者公共id
string openId = jsApiPay.openid;
return Content("<span style='color:#FF0000;font-size:3rem'>您的openId是:" + openId + "</span>");
}
catch (Exception ex)
{
return Content("<span style='color:#FF0000;font-size:3rem'>" + "页面加载出错,请重试" + "</span>");
}
}
本文附件(20180706162130WeiXinTemplateMessage.zip)价格:¥5元
立刻购买资源
注:支付完成后请等待支付页面返回下载页面或者刷新此页面进行下载。
评论列表
发表评论
文章分类
文章归档
阅读排行
- 1. Windows Server 2008 R2永久激活及Chew-WGA v0.9下载(13335)
- 2.Visual Studio 2017中安装visualSVN及使用详解(5236)
- 3.完美解决iis下JWplayer提示Error loading media: File could not be played错误(4076)
- 4.asp.net mvc+jquery easyui开发基础(一)模块首页及增加、修改、删除模块实现(3434)
- 5.Android avax.net.ssl.SSLPeerUnverifiedException: No peer certificate 解决方法(httpClient支持HTTPS的访问方式)(3286)
- 6..Net Mvc中使用Jquery EasyUI控件讲解(一)表格控件datagrid使用介绍(3019)
- 7.asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(七)权限管理模块之系统菜单动态生成(2924)
- 8.asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(三)登录模块开发(2913)
- 9.asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(八)权限管理模块之权限管理实现(2523)
- 10. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(六)权限管理模块之初始数据准备(2494)
