koa-easywechat中间件要写在最前面,也就是要第一个use,因为我在ctx上挂载了一个wechat对象,这个对象实现了大部分的微信接口,这样才能保证开发者在自己的写路由里,获取到ctx.wechat进行自己的业务开发。
wechat使用的函数
replyHandler:是一个async函数,用于开发者自己实现自动回复业务逻辑
asyncreplyHandler(next){
varmessage=this.message;
varwechat=this.wechat;
this.reply={
type:"text",
content:"回复一段文字吧"
}
}
如果没有回复的业务逻辑,可以调用next()将控制权交给之后的中间件处理
asyncreplyHandler(next){
awaitnext();
}
在这个函数里,this就是koa框架中的上下文(ctx)的引用,我在ctx对象上挂载了两个对象wechat和message
1、message对象封装了微信发来的【普通消息】和【事件推送消息】,若要查看message对象的详细信息,请点击这里message对象
2、this.reply对象是将要回复的内容,这个对象的属性要严格按照要求书写,具体规则在这里回复对象
3、wechat对象是这个中间件中最核心的,实现了大部分的功能
wechat已经实现的接口
wechat.getAccessToken
功能:获取accessToken。因为调用accessToken的接口每天的调用频率是有上限的,不能频繁调用,所以这里实现了accessToken的自管理,开发者不必关心accessToken是否过期,过期之后会自动去微信服务器请求并更新最新的accessToken。
varwechat=ctx.wechat;
vartoken=awaitctx.getAccessToken();
wechat.getjsApiTicket()
功能:获取jsapi_ticketj,sapi_ticket是公众号用于调用微信js接口的临时票据。jsapi_ticket与token类似,在微信网页开发中需要用到,也需要全局缓存。
varwechat=ctx.wechat;
varjsApiTicket=awaitctx.getjsApiTicket();
总之,wechat实现方法给大家了,希望大家重视。