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)
<template> <div id="root"> ...
Preface Adding drag and drop functionality is a g...
Command to add a route: 1.Route add route add -ne...
A vector wave <svg viewBox="0 0 560 20&qu...
1. In Windows system, many software installations...
Table of contents Let's talk about flattening...
I think editors are divided into two categories, ...
Preface The language classification of SQL mainly...
In this article, we will use the libudev library ...
This article example shares the specific code of ...
Copy code The code is as follows: <!DOCTYPE ht...
Preface mysqlslap is a diagnostic program designe...
Table of contents 1. Create a Hadoop directory in...
Preface During project development, due to differ...
BinLog BinLog is a binary log that records all da...