1.登录微信公众号平台,需要有权限的工作人员进行扫码登录。
2.登录进去点击订阅消息。
3.点击添加按钮,可以在搜索框进行搜索想要的模板类型,然后点击选用即可。
4.选择提醒模板消息的参数,需要跟客户沟通需要什么参数就配什么参数,场景说明随意写明内容。
5.选完模板消息之后,我的模板点击详情,可以知道模板ID 和 参数,此处的模板ID后端调用此模板的时候会用到,前端请求的时候也需要用到,需要用户勾选允许通知,获得通知权限。
6.小程序平台上需要获得小程序ID和小程序密钥,后端Config进行配置。
7.单独写一个函数用于发送模板消息接受的参数。哪里需要用到发送提醒的地方,调用这个类。
public static void SendShoppingOrder(string orderNo, string goodName, string courierCompany, string createTime,string userKey,int orderID){WeiXinMessageHelper.SendShoppingOrder(new ShoppingOrderModel(orderNo,goodName,courierCompany,createTime),"pages/orderDetail/orderDetail?ShoppingOrderID=" + orderID,userKey);}
8.这里的model 是需要和小程序上新建的模板参数名相对应的,
public class OrderSuccessModel{/// <summary>/// 商品名称/// </summary>public TemplateDataItemFix name4 { get; set; }/// <summary>/// 订单状态/// </summary>public TemplateDataItemFix phrase5 { get; set; }/// <summary>/// 订单号/// </summary>public TemplateDataItemFix character_string1 { get; set; }/// <summary>/// 支付金额/// </summary>public TemplateDataItemFix amount2 { get; set; }/// <summary>/// 收货地址/// </summary>public TemplateDataItemFix thing3 { get; set; }/// <summary>/// 下单成功通知/// </summary>/// <param name="name">商品名称</param>/// <param name="phrase">订单状态</param>/// <param name="character_string">订单号</param>/// <param name="amount">支付金额</param>/// <param name="thing">收货地址</param>public OrderSuccessModel(string name, string phrase,string character_string, string amount, string thing){name4 = new TemplateDataItemFix(name);phrase5 = new TemplateDataItemFix(phrase);character_string1 = new TemplateDataItemFix(character_string);amount2 = new TemplateDataItemFix(amount);thing3 = new TemplateDataItemFix(thing);}}public class TemplateDataItemFix{public string value{get;set;}public TemplateDataItemFix(string v){value = v;}}
9.Model是需要发送的参数,URL 是发送的模板消息调整的路径,OpenID 是微信用户的唯一标识,
public static void SendShoppingOrder(ShoppingOrderModel model, string url, string openID){WeiXinMessageHelper.SendSubscribeMessage(WeiXinConfing.SmallProAppID, openID, "模板ID", model, url, m_Miniprogram_state, m_Lang);}private static void SendSubscribeMessage(string accessTokenOrAppId, string openId, string templateId,object data, string page = null, Miniprogram_state miniprogram_state = Miniprogram_state.正式版, Lang lang = Lang.zh_CN, int timeOut = 10000){Task.Factory.StartNew(() =>{try{var result = ApiHandlerWapper.TryCommonApi(accessToken =>{var miniprogramstate = "formal";switch (miniprogram_state){case Miniprogram_state.正式版: miniprogramstate = "formal"; break;case Miniprogram_state.体验版: miniprogramstate = "trial"; break;case Miniprogram_state.开发版: miniprogramstate = "developer"; break;};var ulang = "zh_CN";switch (lang){case Lang.en_US: ulang = "en_US"; break;case Lang.zh_CN: ulang = "zh_CN"; break;case Lang.zh_HK: ulang = "zh_HK"; break;case Lang.zh_TW: ulang = "zh_TW"; break;};string urlFormat = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token={0}";var msgData = new SubscribeMessageTemplateModel(){touser = openId,template_id = templateId,page = page,data = data,miniprogram_state = miniprogramstate,lang = ulang,};LogHelper.Info("模本消息发送内容:" + Newtonsoft.Json.JsonConvert.SerializeObject(msgData));return CommonJsonSend.Send<Senparc.Weixin.Entities.WxJsonResult>(accessToken, urlFormat, msgData, timeOut: timeOut);}, accessTokenOrAppId);}catch (Exception ex){LogHelper.Info("模版消息发送异常:" + ex.ToString() + ",templateId:" + templateId + ",openId:" + openId + ",data:" + Newtonsoft.Json.JsonConvert.SerializeObject(data));}});}