Update: Template Message for WeChat Mini-Program

David Yu
David Yu
Nov 25, 2019 · 4 min read
Photo by Thought Catalog on Unsplash

In the past, I wrote an article about how to send template message for WeChat Mini-Program:

https://medium.com/china-software-development/how-to-send-template-message-for-wechat-mini-program-856dbc4af7cc

Unfortunately, Tencent announced that they deprecate this way of sending a template message on January 10th, 2020.

https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/template-message/templateMessage.send.html

What has changed?

  1. Explicit permission pop-up

2. No more Form ID or Prepay ID is needed

Which means a message is not bound to a button or payment anymore.

3. One permission for one message except for the following industry:

Governmental, Medical, Transportation, Finance, Education

How to implement it?

  1. Setup Template in Mini-Program dashboard
  2. Add wx.requestSubscribeMessage to mini-program code
  3. Use this endpoint to send message POST https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN

Add Template in Mini-Program Dashboard

  1. Click “subscription message” under “function” in the left sidebar
  2. Click on the green “Add” button
  3. Select the template you want to use

4. Select the keyword you wish to include in the template

5. Return to “My template” in the subscription message

6. Open the detail

7. Copy template id and take note of the keyword

8. Take note of the keywords

Note: Unlike the previous template message method, the variable key is not always “keyword” and number, but something like “name1” or “time2”, etc.

Mini-Program Code

wx.requestSubscribeMessage({
tmplIds: [''],
success (res) { }
})

So no more formId is needed, you only need to pass in the template id which you need permission for.

Note: You can pass multiple template IDs. The users can check or uncheck the message they want to receive.

For the response, you will receive either “accept”, “reject”, “ban” for each of the template ids.

Backend Code

Here’s an example in NodeJS

// Send messageconst message = { "touser": "OPEN_ID_OF_RECEIVING_USER", "template_id": "TEMPLATE_ID", "page": "/pages/index/index", "data": { "name1": {  "value": "Class Name" }, "time2": {  "value": "2015年01月05日" }, "thing3": {  "value": "TIT创意园" } , "thing4": {  "value": "comment" } }};const response = await axios.post(`https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=${access_token}`, message);

Result

If you’re not in one of those special industry categories mentioned above, then for one permission, you will be able to send one message.

Links

Official Doc: https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html

MP Code Example(Frontend):

https://github.com/davidyu37/wechat-mp-template-message-frontend

Backend Example:

Userland

You can control which message you wish to receive by going into the setting of the Mini-Program.

Conclusion

If you’re new to WeChat related development, here’s a free glossary for you to get up to speed.

China Software Development

Sharing software development required in China

David Yu

Written by

David Yu

Software Freelancer based in Shanghai. More articles at https://shanghaicoders.com

China Software Development

Sharing software development required in China

More From Medium

More from China Software Development

More on Wechat Mini Program from China Software Development

More on Wechat Mini Program from China Software Development

Everything you need to know about WeChat Mini-Program component

More on Software Development from China Software Development

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade