E企盈营销工具技术服务商 热线:4006-838-530

模板消息,微信小程序模板消息的两种实现方式

E企盈直播平台营销卖货系统

最近在做微信小程序,为了让用户能更加方便的获取到小程序内部的通知,便想着用模板消息来解决此类问题。首先介绍一下两种方法第一种是传统的按照微信开发文档来实现模板消息的获取,首先要明确的是你要有一个第三方的服务器,因为微信现在规定在小程序内部不能直接请求微信的服务器,而是要请求第三方服务器,由第三方服务器来请求微信的服务器1.传统方式实现模板消息1.1获取用户openId这一步可以在wx.login方法内获取,用来标注模板消息的接受者1.2获取模板ID有两个方法可以获取模版ID通过模版消息管理接口获取模版ID(在微信公众平台手动配置获取模版ID登录获取模板,如果没有合适的模板,可以申请添加新模板,审核通过后可使用1.3获取access_tokenaccess_token是全局唯一接口调用凭据,开发者调用各接口时都需使用access_token,请妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。公众平台的API调用所需的access_token的使用及生成方式说明:为了保密appsecrect,第三方需要一个access_token获取和刷新的中控服务器。而其他业务逻辑服务器所使用的access_token均来自于该中控服务器,不应该各自去刷新,否则会造成access_token覆盖而影响业务;目前access_token的有效期通过返回的expires_in来传达,目前是7200秒之内的值。中控服务器需要根据这个有效时间提前去刷新新access_token。在刷新过程中,中控服务器对外输出的依然是老access_token,此时公众平台后台会保证在刷新短时间内,新老access_token都可用,这保证了第三方业务的平滑过渡;access_token的有效时间可能会在未来有调整,所以中控服务器不仅需要内部定时主动刷新,还需要提供被动刷新access_token的接口,这样便于业务服务器在API调用获知access_token已超时的情况下,可以触发access_token的刷新流程。开发者可以使用AppID和AppSecret调用本接口来获取access_token。AppID和AppSecret可登录微信公众平台官网-设置-开发设置中获得(需要已经绑定成为开发者,且帐号没有异常状态)。AppSecret生成后请自行保存,因为在公众平台每次生成查看都会导致AppSecret被重置。注意调用所有微信接口时均需使用https协议。如果第三方不使用中控服务器,而是选择各个业务逻辑点各自去刷新access_token,那么就可能会产生冲突,导致服务不稳定。以上内容是微信开发文档给出的access_token的说明,总的来说就是两点,(1)access_token是发送模板消息的凭证,需要用微信小程序的AppID和AppSecret调用接口来获取,有效时间为2小时,(2)如果在此获取access_token则会导致前一个access_token失效,有多个公众号和小程序的开发者一定要注意这一点!接口地址:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRETHTTP请求方式:GET参数说明:参数必填说明grant_type是获取access_token填写client_credentialappid是第三方用户唯一凭证secret是第三方用户唯一凭证密钥,即appsecret代码:functiononRequest(request,response,modules){varhttp=modules.oHttp;//发起Get请求http(‘https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=XXX&secret=XXX’,function(error,res,body){response.send(body);});}返回结果:ResponseBody{“code”:200,”msg”:{“access_token”:”6_R8kOFxRLeRtWOq_haIU29XB0hbAoKxFGRqQTZt_HhzCSEvT_xDJ4WLgf9A_dt2pRTCugfUk7IkxR2sfu5zckCwKKWEghCtqlrrQlhdJmCxmkBAaDEdW7AU98D23rUJO5PYruNYOLQ3cpH3iAVTNiADAECW”,”expires_in”:7200}}1.4发送模板消息接口地址:(ACCESS_TOKEN需换成上文获取到的access_token)https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKENHTTP请求方式:POSTPOST参数说明:参数必填说明touser是接收者(用户)的openidtemplate_id是所需下发的模板消息的idpage否点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。form_id是表单提交场景下,为submit事件带上的;支付场景下,为本次支付的data是模板内容,不填则下发空模板color否模板内容字体的颜色,不填默认黑色emphasis_keyword否模板需要放大的关键词,不填则默认无放大formid说明:页面的组件,属性report-submit为true时,可以声明为需发模板消息,此时点击按钮提交表单可以获取formId代码:vartemp={“touser”:touser,//用户的openid”template_id”:template_id,//模板id”page”:””,”form_id”:formid,//表单id”data”:{“keyword1”:{“value”:title,”color”:”#173177″},”keyword2″:{“value”:gettime()},},”emphasis_keyword”:”keyword1.DATA”//将keyword1放大}1.5测试效果2.基于Bmob后端云的模板消息实现第一种方法实现起来过于繁琐,在使用过程中也要中间服务器的帮助,如果没有中间服务器,或者服务器端的代码不太熟悉,那么Bmob后端云则可以帮助你实现你要的功能只需要下载按照官网文档在小程序内初始化好Bmob,那么就可以调用Bmob模板消息的方法,如下所示functionsend(title,formid,touser){varBmob=require(‘bmob.js’);vartemp={“touser”:touser,”template_id”:”ClYq9lc8bZh26uM993NNIknasAVBdk0wSYnDrkClK40″,”page”:””,”form_id”:formid,”data”:{“keyword1”:{“value”:title,”color”:”#173177″},”keyword2″:{“value”:gettime()},},”emphasis_keyword”:”keyword1.DATA”}Bmob.sendMessage(temp).then(function(obj){console.log(‘发送成功’);},function(err){common.showTip(‘失败’+err)});}这样模板消息就解决了,欢迎各位dalao批评指正,如果有不明白的可以加我Q504334357一起交流

赞(0) 打赏
未经允许不得转载:E企盈小程序开发-热线:4006-838-530 » 模板消息,微信小程序模板消息的两种实现方式
分享到: 更多 (0)
E企盈小程序直播营销卖货系统
E企盈直播平台营销卖货系统

评论 抢沙发

E企盈小程序开发

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏