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));
}
});
}
6275

被折叠的 条评论
为什么被折叠?



