Node.js 实现抢票小工具 & 短信通知提醒功能(4)

class QueryTicket{ constructor({ data, phoneNumber, cookie, day }) { //constructor代码... } //初始化 async init(){ let ticketList = await this.handleQueryTicket() //如果有余票 if (ticketList.length) { //把余票传入购票逻辑方法,返回短信通知所需要的数据 let resParse = await this.handleBuyTicket(ticketList) } } //查询余票的逻辑 async handleQueryTicket(){ // 查询余票代码... } //调用查询余票接口 requestTicket(){ //调用查询余票接口代码... } //购票相关逻辑 async handleBuyTicket(ticketList){ let year = new Date().getFullYear() //年份, let month = new Date().getMonth() + 1 //月份,拼接购票日期用得上,因为余票接口只返回几号 let { onStationName,//起始站点名 offStationName,//结束站点名 lineId,//线路id vehTime,//发车时间 startTime,//预计上车时间 onStationId,//上车的站台id offStationId //到站的站台id } = this.data // 初始化的数据 let station = `${onStationName}-${offStationName}` //站点,发短信时候用到:"宝安交通局-深港产学研基地" let dateStr = ""; //车票日期 let tickAmount = "" //总张数 ticketList.forEach(item => { dateStr = dateStr + `${year}-${month}-${item.day},` tickAmount = tickAmount + `${item.ticketLeft}张,` }) var buyTicket = { lineId,//线路id vehTime,//发车时间 startTime,//预计上车时间 onStationId,//上车的站点id offStationId,//目标站点id tradePrice: '5', //金额 saleDates: dateStr.slice(0, -1), payType: '2' //支付方式,微信支付 } // 调用购票接口 let data = querystring.stringify(buyTicket) let res = await this.requestOrder(data) //返回json数据,是否购票成功等等 //把发短信所需要数据都要传入 return Object.assign({}, JSON.parse(res.data), { queryParam: { dateStr, tickAmount, startTime, station } }) }//购票相关逻辑 //调用购票接口 requestOrder(obj){ return axios.post('http://weixin.xxxx.net/ebus/front/wxQueryController.do?BcTicketBuy', obj, { headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'User-Agent': "Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12A365 MicroMessenger/5.4.1 NetType/WIFI", "Cookie": this.cookie } }) } handleInfoUser(){}//通知用户的逻辑 sendMSg(){} //发短信接口 }

到这里,查询余票,购票这两个核心操作已经完成。

目前还剩下,如何通知用户是否购票成功。

之前我尝试过使用qq邮箱的smtp服务,抢票成功后发送邮件通知,但是我觉得吧,并不好用,主要是我没有打开邮箱的习惯,没网也收不到,所以,并没有采纳这个方案。

加上之前我注册过企业认证的公众号,腾讯云免费送了我1000条短信通知,而且短信也比较直观,所以我这里就安装腾讯云的SDK,部署了一套发短信的功能。

2-4腾讯云短信的相关内容

其实看看文档就行了,我也是copy文档,注意看短信单发那部分

cloud.tencent.com/document/pr…

如果跟我一样有企业认证的话,看快速入门这里就行了,一步步跟着操作

Node.js 实现抢票小工具 & 短信通知提醒功能

 

看下短信正文, {Number}

这些里面的数字是变量。

就是说短信的模板是固定的,但是里面有 {Number} 的内容可以自定义

调用的时候,里面的数字对应着传过去的参数数组序号,{1}代表数组[0]参数,以此类推

Node.js 实现抢票小工具 & 短信通知提醒功能

 

提交审核,审核一般很快就通过,也就是几十万毫秒吧

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/fbcd0f44060638379de1f734063b56d7.html