频道栏目
首页 > 资讯 > 微信小程序 > 正文

小程序开发之模板消息篇教程

19-01-16        来源:[db:作者]  
收藏   我要投稿

 

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 SendTemplateMessage(PostSendTemplete tmModel);

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

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

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

 Task SendTemplateMessage(WxaTempleteModel tmModel,string code);

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

 
public async Task 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(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(data);
            }

            return userCard;
}
 

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

 
//Startup中

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

  public IConfiguration Configuration { get; }

 

 //Configure中:

services.AddScoped();
 

需要引入:

using Microsoft.Extensions.Configuration;

1|6实现效果


相关TAG标签
上一篇:小程序自定义组件的单元测试教程教学
下一篇:兼容小程序的canvas画图组件jmGraph教程
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站