/// <summary> /// 使用异步Action测试异步模板消息接口 /// </summary> /// <param name="checkcode"></param> /// <returns></returns> public async Task <ActionResult> TemplateMessageTest(string checkcode) { var currentCache = CacheStrategyFactory.GetObjectCacheStrategyInstance(); var cacheKey = $"TestCheckCode:{checkcode}"; var openId = await currentCache.GetAsync(cacheKey) as string;//使用缓存,如果多台服务器可以使用分布式缓存共享 if (openId.IsNullOrEmpty()) { return(Content("验证码已过期或不存在!请在“盛派网络小助手”公众号输入“tm”获取验证码。")); } else { await currentCache.RemoveFromCacheAsync(cacheKey); var templateId = "cCh2CTTJIbVZkcycDF08n96FP-oBwyMVrro8C2nfVo4"; var testData = new //TestTemplateData() { first = new TemplateDataItem("【异步模板消息测试】"), keyword1 = new TemplateDataItem(openId), keyword2 = new TemplateDataItem("网页测试"), keyword3 = new TemplateDataItem(SystemTime.Now.ToString("O")), remark = new TemplateDataItem("更详细信息,请到Senparc.Weixin SDK官方网站(http://sdk.weixin.senparc.com)查看!") }; var miniProgram = new TemplateModel_MiniProgram() { appid = "wxfcb0a0031394a51c",//【盛派互动(BookHelper)】小程序 pagepath = "pages/index/index" }; var result = await TemplateApi.SendTemplateMessageAsync(appId, openId, templateId, null, testData, miniProgram); return(Content("异步模板消息已经发送到【盛派网络小助手】公众号,请查看。此前的验证码已失效,如需继续测试,请重新获取验证码。")); } }
/// <summary> /// 活动开始,关注公众号全部用户发消息 /// </summary> /// <returns></returns> public async Task AllSendTemplateMessage() { try { var accessToken = await AccessTokenContainer.TryGetAccessTokenAsync(mpAppId, mpAppSecret); var result = await Senparc.Weixin.MP.AdvancedAPIs.UserApi.GetAsync(accessToken, null); if (result.total > 0) { var msgData = new MPTemplateData("您好,您预约的实现吧!愿望君!活动已经开启,快来实现你的愿望吧~", "实现吧!2021愿望君!", $"{DateTime.Now.ToString("yyyy年MM月dd日")}", "快来前往月野兔星球小程序~", "点击即可立即进入哦~"); var miniProgram = new TemplateModel_MiniProgram() { appid = appId, pagepath = "pages/index/index" }; // 因为是同一个公众号,根据环境变量处理测试数据 if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Development") { var betaList = new List <string>() { "oHxnJwqEKSsUnMq8vpbwJQ3k5jYQ", //fly "oHxnJwuuMR3eZ04mhVcNLfY3Mouo", //LIsa "oHxnJwvwhG-hTcdfzWySqRkaqYkY", //鑫鑫 "oHxnJwl_xD09u_2hZB-Y5FiMrYWQ", //C. "oHxnJwpAl4RU7OLy6q1ZhQKbMbNo", //烟花 "oHxnJwqXoOrJw2hI3Z3FHZB1H0VM", //太阳女神 }; foreach (var openid in result.data.openid) { if (betaList.Where(e => e.Contains(openid)).Any()) // 测试白名单 { await Senparc.Weixin.MP.AdvancedAPIs.TemplateApi.SendTemplateMessageAsync(accessToken, openid, MPTemplateID.mpStart, null, msgData, miniProgram); } } } else { foreach (var openid in result.data.openid) { await Senparc.Weixin.MP.AdvancedAPIs.TemplateApi.SendTemplateMessageAsync(accessToken, openid, MPTemplateID.mpStart, null, msgData, miniProgram); } } } } catch (Exception ex) { Console.WriteLine(string.Concat("AllSendTemplateMessage:", ex.Message)); } }
/// <summary> /// 发送模板消息-跳转至小程序 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="userOpenId"></param> /// <param name="templateId"></param> /// <param name="url"></param> /// <param name="templateData"></param> /// <param name="miniAppId"></param> /// <param name="pagePath"></param> /// <returns></returns> public string SendTemplateMessageToMiniApp <T>(string userOpenId, string templateId, string url, T templateData, string miniAppId, string pagePath) { string access_token = GetAccessToken(); TemplateModel_MiniProgram miniModel = new TemplateModel_MiniProgram { appid = miniAppId, pagepath = pagePath }; SendTemplateMessageResult sendResult = TemplateApi.SendTemplateMessage(access_token, userOpenId, templateId, url, templateData, miniModel); //发送成功 if (sendResult.errcode.ToString() == "请求成功") { return("发送成功"); } else { return(sendResult.errmsg); } }
/// <summary> /// 使用异步Action测试异步模板消息接口 /// </summary> /// <param name="checkcode"></param> /// <returns></returns> public async Task <ActionResult> TemplateMessageTest(string checkcode) { var openId = CustomMessageHandler.TemplateMessageCollection.ContainsKey(checkcode) ? CustomMessageHandler.TemplateMessageCollection[checkcode] : null; if (openId == null) { return(Content("验证码已过期或不存在!请在“盛派网络小助手”公众号输入“tm”获取验证码。")); } else { CustomMessageHandler.TemplateMessageCollection.Remove(checkcode); var templateId = "cCh2CTTJIbVZkcycDF08n96FP-oBwyMVrro8C2nfVo4"; var testData = new //TestTemplateData() { first = new TemplateDataItem("【异步模板消息测试】"), keyword1 = new TemplateDataItem(openId), keyword2 = new TemplateDataItem("网页测试"), keyword3 = new TemplateDataItem(SystemTime.Now.ToString("O")), remark = new TemplateDataItem("更详细信息,请到Senparc.Weixin SDK官方网站(http://sdk.weixin.senparc.com)查看!") }; var miniProgram = new TemplateModel_MiniProgram() { appid = "wxfcb0a0031394a51c",//【盛派互动(BookHelper)】小程序 pagepath = "pages/index/index" }; var result = await TemplateApi.SendTemplateMessageAsync(appId, openId, templateId, null, testData, miniProgram); return(Content("异步模板消息已经发送到【盛派网络小助手】公众号,请查看。此前的验证码已失效,如需继续测试,请重新获取验证码。")); } }
public static async Task <SendTemplateMessageResult> SendTemplateMessageAsync(string accessTokenOrAppId, string openId, ITemplateMessageBase templateMessageData, TemplateModel_MiniProgram miniProgram = null, int timeOut = Config.TIME_OUT) { return(await SendTemplateMessageAsync(accessTokenOrAppId, openId, templateMessageData.TemplateId, templateMessageData.Url, templateMessageData, miniProgram, timeOut).ConfigureAwait(false)); }
public static async Task <SendTemplateMessageResult> SendTemplateMessageAsync(string accessTokenOrAppId, string openId, string templateId, string url, object data, TemplateModel_MiniProgram miniProgram = null, int timeOut = Config.TIME_OUT) { return(await ApiHandlerWapper.TryCommonApiAsync(async accessToken => { string urlFormat = Config.ApiMpHost + "/cgi-bin/message/template/send?access_token={0}"; var msgData = new TemplateModel() { touser = openId, template_id = templateId, // topcolor = topcolor, url = url, miniprogram = miniProgram, data = data, }; return await Senparc.Weixin.CommonAPIs.CommonJsonSend.SendAsync <SendTemplateMessageResult>(accessToken, urlFormat, msgData, timeOut: timeOut).ConfigureAwait(false); }, accessTokenOrAppId).ConfigureAwait(false)); }
public static SendTemplateMessageResult SendTemplateMessage(string accessTokenOrAppId, string openId, ITemplateMessageBase templateMessageData, TemplateModel_MiniProgram miniProgram = null, int timeOut = Config.TIME_OUT) { return(SendTemplateMessage(accessTokenOrAppId, openId, templateMessageData.TemplateId, templateMessageData.Url, templateMessageData, miniProgram, timeOut)); }
public static SendTemplateMessageResult SendTemplateMessage(string accessTokenOrAppId, string openId, string templateId, string url, object data, TemplateModel_MiniProgram miniProgram = null, int timeOut = Config.TIME_OUT) { //文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1500374289_66bvB return(ApiHandlerWapper.TryCommonApi(accessToken => { string urlFormat = Config.ApiMpHost + "/cgi-bin/message/template/send?access_token={0}"; var msgData = new TemplateModel() { touser = openId, template_id = templateId, // topcolor = topcolor, url = url, miniprogram = miniProgram, data = data, }; return CommonJsonSend.Send <SendTemplateMessageResult>(accessToken, urlFormat, msgData, timeOut: timeOut); }, accessTokenOrAppId)); }
public static async Task <WxJsonResult> BizSendAsync(string accessTokenOrAppId, string toUser, string templateId, TemplateMessageData data, string page = null, TemplateModel_MiniProgram miniProgram = null, int timeOut = Config.TIME_OUT) { return(await ApiHandlerWapper.TryCommonApiAsync(accessToken => { string urlFormat = Config.ApiMpHost + "/cgi-bin/message/subscribe/bizsend?access_token={0}"; var submitData = new { touser = toUser, template_id = templateId, page = page, data = data, miniprogram = miniProgram, }; return CommonJsonSend.SendAsync(accessToken, urlFormat, submitData, timeOut: timeOut); }, accessTokenOrAppId)); }