到這里,小程序端的工作就完成了,但是事情還沒有結(jié)束,因?yàn)锳PI也該咱實(shí)現(xiàn)(苦笑.JPG)。那我們接著來看看在API端有哪些需要處理的活:
首先我們要新建發(fā)送模板的PostSendTemplete 模型
public class PostSendTemplete { public string openId { get; set; } public string touser { get; set; } public string template_id { get; set; } public string page { get; set; } public string form_id { get; set; } public object data { get; set; } public string color { get; set; } public string emphasis_keyword { get; set; } } |
和一個返回的TemplateResultModel 模型
public class TemplateResultModel { public int errcode { get; set; } public string errmsg { get; set; } public string template_id { get; set; } } |
第一步,我們新建一個SendTemplateMessage 的業(yè)務(wù) 接口如下:
Task<TemplateResultModel> SendTemplateMessage(PostSendTemplete tmModel);
第二步,實(shí)現(xiàn)這個業(yè)務(wù)接口:
public async Task<TemplateResultModel> SendTemplateMessage(PostSendTemplete tmModel) { WxaTempleteModel model = tmModel.TranslateToSendTemplateDto(); var result = await _template.SendTemplateMessage(model, tmModel.openId); return result; } |
第三步,上述標(biāo)紅的是新建的一個數(shù)據(jù)接口,接口如下:
Task<TemplateResultModel> SendTemplateMessage(WxaTempleteModel tmModel,string code);
第四步,實(shí)現(xiàn)上述的數(shù)據(jù)接口:
public async Task<TemplateResultModel> SendTemplateMessage(WxaTempleteModel tmModel,string openid) { tmModel.touser = openid; var url = _config[ConfigurationKeys.TEMPLATE_SEND_RUL]; var accesstoken = MinTokenContext.AccessToken;//注:此處用到的appId和密匙都是小程序的 string queryUrl = string.Format(url, accesstoken); var objectdata = JsonConvert.SerializeObject(tmModel); var data = Httphelper.SendPostHttpRequest(queryUrl, contentType, objectdata.ToString()); TemplateResultModel userCard = JsonConvert.DeserializeObject<TemplateResultModel>(data); if (userCard.errcode == Invalid_token) { MinTokenContext.RefreshAccessToken(); _logger.LogInformation(string.Format(@"模板消息: Access Token 刷新,時間 {0}", DateTime.Now.ToString("yy-MM-dd HH:mm"))); data = Httphelper.SendPostHttpRequest(queryUrl, contentType, objectdata); userCard = JsonConvert.DeserializeObject<TemplateResultModel>(data); } return userCard; } |
上述方法實(shí)現(xiàn)中,都需要將接口和實(shí)現(xiàn)在初始化的時候綁定,然后注入:
//Startup中 public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } //Configure中: services.AddScoped<ITemplateMessage, TemplateMessage>(); |
需要引入:
using Microsoft.Extensions.Configuration;
工作日 8:30-12:00 14:30-18:00
周六及部分節(jié)假日提供值班服務(wù)