您当前的位置: 首页 > 解决方案

小程序开发之模板消息篇

  • 作者: admin
  • 发布于 2018-12-26 10:29:34
  • 来源:  
  • 栏目:解决方案

导语

 

16.jpg

 

1|5API实现


 

到这里,小程序端的工作就完成了,但是事情还没有结束,因为API也该咱实现(苦笑.JPG)。那我们接着来看看在API端有哪些需要处理的活:

首先我们要新建发送模板的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 的业务 接口如下:

Task<TemplateResultModel> SendTemplateMessage(PostSendTemplete tmModel);

第二步,实现这个业务接口:

 
public async Task<TemplateResultModel> SendTemplateMessage(PostSendTemplete tmModel) {    WxaTempleteModel model = tmModel.TranslateToSendTemplateDto();    var result = await _template.SendTemplateMessage(model, tmModel.openId);    return result; }
 

第三步,上述标红的是新建的一个数据接口,接口如下:

 Task<TemplateResultModel> SendTemplateMessage(WxaTempleteModel tmModel,string code);

第四步,实现上述的数据接口:

 
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; }
 

上述方法实现中,都需要将接口和实现在初始化的时候绑定,然后注入:

 
//Startup中

    public Startup(IConfiguration configuration)
{
Configuration = configuration;
}

  public IConfiguration Configuration { get; }

 

 //Configure中:

services.AddScoped<ITemplateMessage, TemplateMessage>();
 

需要引入:

using Microsoft.Extensions.Configuration;

1|6实现效果


17.jpg

 

     End

 

 



温馨提示:这篇文章没有解决您的问题?欢迎添加微信:18948083295,有微信小程序专业人员,保证有问必答。转载本站文章请注明转自http://www.okeydown.com/(微信小程序网)。

  • 微信扫描二维码关注官方微信
  • ▲长按图片识别二维码
关注我们

微信小程序官方微信

栏目最新
栏目推荐
返回顶部