/// <summary> /// 发送模板消息 /// </summary> /// <param name="accessToken"></param> /// <param name="model"></param> /// <returns></returns> public Error SendTemplate(string accessToken, TemplateSendRequest model) { try { if (string.IsNullOrEmpty(accessToken)) { throw new ArgumentNullException("AccessToken为空"); } if (model == null) { throw new ArgumentNullException("消息参数为空"); } if (string.IsNullOrEmpty(model.ToUser)) { throw new ArgumentNullException("OpenId为空"); } if (string.IsNullOrEmpty(model.TemplateId)) { throw new ArgumentNullException("TemplateId为空"); } if (string.IsNullOrEmpty(model.FormId)) { throw new ArgumentNullException("FormId为空"); } if (string.IsNullOrEmpty(model.FormId)) { throw new ArgumentNullException("Data为空"); } IRestRequest request = new RestRequest("cgi-bin/message/wxopen/template/send", Method.POST); request.AddQueryParameter("access_token", accessToken); request.AddJsonBody(new { touser = model.ToUser, template_id = model.TemplateId, page = model.Page, form_id = model.FormId, data = model.Data, emphasis_keyword = model.EmphasisKeyword }); IRestResponse response = _client.Execute(request); return(JsonConvert.DeserializeObject <Error>(response.Content)); } catch (Exception ex) { logger.Error(ex); throw ex; } }
/// <summary> /// 发送模板消息 /// </summary> /// <param name="request"></param> /// <returns></returns> public OperationResult SendTemplate(RequestOperation <TemplateData> request) { var result = new OperationResult(); if (String.IsNullOrEmpty(request.Body.openid) || String.IsNullOrEmpty(request.Body.templateid) || String.IsNullOrEmpty(request.Body.url) || request.Body.propertys == null) { result.Message = "缺少参数"; return(result); } var tempData = new Dictionary <string, TemplateDataProperty>(); foreach (var prop in request.Body.propertys) { tempData.Add(prop.key, new TemplateDataProperty() { Color = prop.color, Value = prop.value }); } var tempRequest = new TemplateSendRequest { ToUser = request.Body.openid, TemplateID = request.Body.templateid, Url = request.Body.url, TopColor = request.Body.topcolor, Data = tempData, AccessToken = ApiAccessTokenManager.Instance.GetCurrentToken() }; var response = m_client.Execute(tempRequest); if (!response.IsError) { result.ErrCode = 0; } else { result.Message = response.ErrorMessage; } return(result); }
public ResponseResult <object> SendTemplate([FromBody] TemplateSendRequest model) { try { string accessTokenStr = _redisHandler.GetAccessToken(); if (string.IsNullOrEmpty(accessTokenStr)) { accessTokenStr = _weChatServiceHandler.GetAccessToken().access_token; _redisHandler.SaveAccessToken(accessTokenStr); } Error error = _weChatServiceHandler.SendTemplate(accessTokenStr, model); if (error.errcode == 0) { return(new ResponseResult <object>() { ErrCode = 0, ErrMsg = "success", Data = null }); } else { logger.Error(error.errmsg); return(new ResponseResult <object>() { ErrCode = 1001, ErrMsg = error.errmsg, Data = null }); } } catch (Exception ex) { logger.Error(ex); return(new ResponseResult <object>() { ErrCode = 1003, ErrMsg = ex.Message, Data = null }); } }