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)
This article uses examples to explain the Nginx c...
About Nginx, a high-performance, lightweight web ...
Table of contents Step 1: Update Packages on Cent...
1. Download MySQL Community Server 5.7.16 and ins...
CSS to achieve the image hovering mouse folding e...
MySQL 5.7.8 and later began to support a native J...
Neo4j (one of the Nosql) is a high-performance gr...
When loading network data, in order to improve th...
In daily development tasks, we often use MYSQL...
This article example shares the specific code of ...
Table of contents 1. Related configuration Case 1...
Table of contents Preface Source code Where do I ...
1. Run fonts, open the font folder, and find the ...
Table of contents 1. Teleport usage 2. Complete t...
Table of contents Ideas Host Configuration Modify...