Select or create a subscription message template Log in to the WeChat applet and find Function->Subscribe to Messages. You can select the template you need in the public template library. If you don’t find what you need, you can create it yourself and wait for review. After selecting a template and viewing its details, you will get the template ID and the fields required for sending push notifications. The applet sends a subscription request The template ID obtained in the previous step is required // Mini Program<Text className='rights-buy' onClick={this.messageSubmit}> Application for admission</Text> // Subscribe to the settlement application message messageSubmit = () => { Taro.requestSubscribeMessage({ tmplIds: ['SuGMwqyYY9cocuP-LxfElcM3a7ITaF34lKNux6EaE9'], success: (res) => { //Call the server interface and write a subscription record in the database // this.subscribeDeal() } }) } The server initiates the pushThere are generally two types of push
For the first case, just call WeChat's push interface directly. The second situation is a little more troublesome. You can add a timed task, or use a related queue library to trigger when the conditions are met. Things to note
Get access_token and cache it async getAccessToken () { const { appId, appSecert, host } = this.app.config.idolWxAConfig; return new Promise(async (resolve) => { const currentTime = new Date().getTime() const redisToken = await this.app.redis.get('wxtoken').get('token') || '{access_token: "", expries_time: 0}' const accessTokenJson = JSON.parse(redisToken) if (accessTokenJson.access_token === '' || accessTokenJson.expries_time < currentTime) { const res = await this.ctx.curl(`${host}/cgi-bin/token?appid=${appId}&secret=${appSecert}&grant_type=client_credential`, { dataType: 'json' }) if (res.data) { accessTokenJson.access_token = res.data.access_token accessTokenJson.expries_time = new Date().getTime() + (parseInt(res.data.expires_in) - 200) * 1000 await this.app.redis.get('wxtoken').set('token', JSON.stringify(accessTokenJson)) resolve(accessTokenJson) } } else { resolve(accessTokenJson) } }) } Send a push request to WeChat async sendSubscribeMsg(openid) { let requestData = { "touser": `${openid}`, "template_id": "SuGMwqyYY9cocuP-LxfElcM3a7ITaF34lKNux6EaE9", "page": `/pages/certification/index`, "data": { "phrase2": { "value": `Approved` }, "thing3": { "value": `Your application has been reviewed and approved` } } } const { host } = this.app.config.idolWxAConfig; // Get access_toekn const tokenJson = await this.ctx.service.wx.getAccessToken() const res = await this.ctx.curl(`${host}/cgi-bin/message/subscribe/send?access_token=${tokenJson.access_token} `, { method: 'POST', contentType: 'json', data: requestData, dataType: 'json' }); if (res.data.errmsg === 'ok') { console.log('========Push successfully========') //TODO } else { console.log('========Push failed========') //TODO } } This is the end of this article about the implementation of Nodejs WeChat applet message push. For more relevant Nodejs applet message push content, please search for previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope everyone will support 123WORDPRESS.COM in the future! You may also be interested in:
|
<<: How to install nginx in centos7
>>: MySQL 5.7.17 free installation version configuration method graphic tutorial (windows10)
Linux virtual machine: VMware + Ubuntu 16.04.4 Wi...
CentOS8 was released a few days ago. Although it ...
This article shows you how to use CSS to create a...
Linux is currently the most widely used server op...
need: Use vue to realize QR code scanning; Plugin...
Table of contents Preface text 1. Panel 2. Huaron...
Problem Description In the login page of the proj...
Table of contents 1. Technical Overview 2. Techni...
Refer to the official documentation here for oper...
Table of contents 1. Introduction 2. Configure My...
How to add a loading animation every time I scrol...
In LINUX, periodic tasks are usually handled by t...
MySQL download and installation (version 8.0.20) ...
This article shares the specific code of jQuery t...
Key Points The CSS resize property allows you to ...