/// <summary> /// 发送微信模板消息 /// </summary> /// <param name="param"></param> /// <param name="token"></param> /// <returns></returns> public static async Task <WeChatResponseDto> SendTemplateMsg(WeChatTemplateMsg param, string token) { var sendUrl = string.Format(WeChatApiUrl.SEND_TEMPLATE_MSG, token); //var tmplateMsg = new WeChatTemplateMsg //{ // Touser = "******", // Template_Id = "yy6RiFVRRy2kVx064_A9-OSKKN8o8PwDV7k1j5whYRc", // Data = new // { // //First = new { Value = "first", Color = "#173177" }, // ConsumerName = new { Value = "张美丽", Color = "#173177" }, // AppointmentDate = new { Value = "2019-05-01 09:00:00", Color = "#173177" }, // TherapistName = new { Value = "Amy", Color = "#173177" }, // ProjectName = new { Value = "玻尿酸", Color = "#173177" }, // Remark = new { Value = "请临近预约时间时主动联系客户", Color = "#173177" }, // Remark1 = new { Value = "11111", Color = "#173177" } // } //}; var p = JsonConvert.SerializeObject(param, Formatting.Indented, new JsonSerializerSettings { ContractResolver = new LowercaseContractResolver() }); var response = await HttpClientHelper.HttpPostAsync <WeChatResponseDto>(sendUrl, p); return(response); }
/// <summary> /// 用户预约的服务完成后发送微信模板消息通知 /// </summary> /// <param name="consumptionGuid"></param> private void NotifyUser(string consumptionGuid) { Task.Run(() => { if (string.IsNullOrWhiteSpace(PlatformSettings.UserAppointmentCompletedNotificationTemplate)) { return; } var userOpenId = ""; string controllerName = ControllerContext.ActionDescriptor.ControllerName; string actionName = ControllerContext.ActionDescriptor.ActionName; try { var model = new ConsumptionBiz().GetModel(consumptionGuid); var userModel = new UserBiz().GetModelAsync(model.UserGuid).Result; Logger.Debug($"NotifyUser-用户预约的服务已完成-用户openid-{userModel?.WechatOpenid}"); if (string.IsNullOrWhiteSpace(userModel?.WechatOpenid ?? "")) { return; } var merchantModel = new MerchantBiz().GetAsync(model.MerchantGuid).Result; var projectModel = new ProjectBiz().GetAsync(model.ProjectGuid).Result; var resToken = WeChartApi.GetAccessToken(PlatformSettings.CDClientAppId, PlatformSettings.CDClientAppSecret).Result; Logger.Debug($"NotifyUser-用户预约的服务已完成-获取token-{JsonConvert.SerializeObject(resToken)}"); if (string.IsNullOrWhiteSpace(resToken.AccessToken)) { Common.Helper.Logger.Error($"GD.API.Controllers.Consumer.{controllerName}.{actionName} openId:[{userOpenId}] {Environment.NewLine} error:用户预约后发送模板消息通知云医执行端公众号-获取token失败。{resToken.Errmsg}"); return; } userOpenId = userModel.WechatOpenid; var clientMsg = new WeChatTemplateMsg { Touser = userModel.WechatOpenid, Template_Id = PlatformSettings.UserAppointmentNotificationTemplate, Data = new { First = new { Value = "【您预约的服务已完成】" }, //完成时间 Keyword1 = new { Value = $"{model.ConsumptionEndDate.Value.ToString("MM月dd日 HH:mm")}" }, //服务项目 Keyword2 = new { Value = projectModel?.ProjectName }, //服务门店 Keyword3 = new { Value = merchantModel.MerchantName }, //备注 Remark = new { Value = "如对我们服务有什么建议,请及时与我们联系" }, } }; var clientTempMsgRes = WeChartApi.SendTemplateMsg(clientMsg, resToken.AccessToken); Logger.Debug($"NotifyUser-用户预约的服务已完成-发送模板消息-{JsonConvert.SerializeObject(clientTempMsgRes)}"); } catch (Exception ex) { Logger.Error($"GD.API.Controllers.Consumer.{controllerName}.{actionName} openId:[{userOpenId}] {Environment.NewLine} error:用户预约服务完成后发送模板消息通知云医用户端公众号端失败。{ex.Message}"); } }); }