private async Task <int> UniformSendMPTemplateAsync(int makeWishId, string mPTemplateID, int memberId = 0) { int resCode = 0; string pagepath = mPTemplateID == MPTemplateID.mpReserve ? string.Empty : $"pages/detail/index?wishId={makeWishId}"; string tOpenId = string.Empty; try { MPTemplateData tData = null; (tData, tOpenId) = await _activityApplication.GetWishOpenId(makeWishId, mPTemplateID, memberId); if (tData != null) { var accessToken = await AccessTokenContainer.TryGetAccessTokenAsync(appId, appSecret); var msgData = new UniformSendData { touser = tOpenId, mp_template_msg = new Mp_Template_Msg { appid = mpAppId, template_id = mPTemplateID, miniprogram = new Miniprogram { appid = appId, pagepath = pagepath, }, data = tData } }; var result = await TemplateApi.UniformSendAsync(accessToken, msgData); resCode = 1; if (mPTemplateID == MPTemplateID.mpReserve) //预约提醒只发送一次,发送成功更新 { await _activityApplication.SaveMemberIsSend(memberId); } } } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(string.Concat("mPTemplateID:", mPTemplateID, "----memberID:", memberId, "----openId:", tOpenId)); } return(resCode); }
/// <summary> /// 下发小程序和公众号统一的服务消息 /// </summary> /// <param name="sessionId"></param> /// <returns></returns> public async Task <ActionResult> UniformSend(string sessionId) { var sessionBag = SessionContainer.GetSession(sessionId); if (sessionBag == null) { return(Json(new { success = false, msg = "请先登录!" })); } await Task.Delay(1000);//停1秒钟,实际开发过程中可以将权限存入数据库,任意时间发送。 try { var mpAppId = Config.SenparcWeixinSetting.MpSetting.WeixinAppId; //公众号ID var mpTemplateId = "ur6TqESOo-32FEUk4qJxeWZZVt4KEOPjqbAFDGWw6gg"; //公众号模板消息ID var pagePath = "pages/websocket_signalr/websocket_signalr"; object templateData = null; //{"touser":"******","weapp_template_msg":null,"mp_template_msg":{"appid":"wx669ef95216eef885","template_id":null,"url":"https://dev.senparc.com","miniprogram":{"appid":"wx12b4f63276b14d4c","pagepath":"websocket/websocket"},"data":{"first":{"value":"小程序和公众号统一的服务消息","color":"#173177"},"keyword1":{"value":"2022/1/20 23:22:12","color":"#173177"},"keyword2":{"value":"dev.senparc.com","color":"#173177"},"keyword3":{"value":"小程序接口测试","color":"#173177"},"keyword4":{"value":"正常","color":"#173177"},"keyword5":{"value":"测试“小程序和公众号统一的服务消息”接口,服务正常","color":"#173177"},"remark":{"value":"您的 OpenId:oeaTy0DgoGq-lyqvTauWVjbIVuP0","color":"#173177"},"TemplateId":"ur6TqESOo-32FEUk4qJxeWZZVt4KEOPjqbAFDGWw6gg","Url":"https://dev.senparc.com","TemplateName":"系统异常告警通知"}}} #region 公众号模板消息信息 -- DPBMARK MP //可选参数(需要和公众号模板消息匹配): templateData = templateData = new { first = new MP.AdvancedAPIs.TemplateMessage.TemplateDataItem("小程序和公众号统一的服务消息"), keyword1 = new MP.AdvancedAPIs.TemplateMessage.TemplateDataItem("dev.senparc.com"), keyword2 = new MP.AdvancedAPIs.TemplateMessage.TemplateDataItem("小程序接口测试"), keyword3 = new MP.AdvancedAPIs.TemplateMessage.TemplateDataItem("正常"), keyword4 = new MP.AdvancedAPIs.TemplateMessage.TemplateDataItem("测试“小程序和公众号统一的服务消息”接口,服务正常"), remark = new MP.AdvancedAPIs.TemplateMessage.TemplateDataItem("您的 OpenId:" + sessionBag.OpenId), }; #endregion DPBMARK_END var miniprogram = new Miniprogram_PagePath(WxOpenAppId, pagePath);//使用 pagepath 参数 //var miniprogram = new Miniprogram_Page(WxOpenAppId, pagePath);// 使用 page 参数 //https://weixin.senparc.com/QA-17333 UniformSendData msgData = new( sessionBag.OpenId, new Mp_Template_Msg(mpAppId, mpTemplateId, "https://dev.senparc.com", miniprogram, templateData) ); var result = await TemplateApi.UniformSendAsync(WxOpenAppId, msgData); if (result.errcode == ReturnCode.请求成功) { return(Json(new { success = true, title = "服务消息已发送,请注意查收", content = result.errmsg })); } else { string msg; if (result.errmsg.Contains("require subscribe")) { msg = "您需要关注公众号【盛派网络小助手】才能收到公众号内的模板消息!"; } else { msg = result.errmsg; } return(Json(new { success = false, title = "出错啦!", msg = msg })); } } catch (Exception ex) { return(Json(new { success = false, msg = ex.Message })); } }