1、前置准备工作:
1> 申请小程序,获得 appId 和 secret;
2> 从微信准备好的通知公用模板中选择业务需要的模板,包括显示的字段等,已选好的可以自由排序,此处会得到 templateId,例如:
审核内容
{{keyword1.DATA}}
审核时间
{{keyword2.DATA}}
备注
{{keyword3.DATA}}
审核结果
{{keyword4.DATA}}
3> 小程序开发过程中,每一个表单提交,会得到一个 formId,这个参数后续会用到,注意保存;【注:每一个 formId 只能用于一次发送通知,用完即作废】
4> 每个用户登录小程序后,会得到一个 openId,后续会用到,注意保存;【注:同一个微信登录不同的小程序 openId 不同,如果要区分微信用户的唯一性,需要用到 unionId;
2、采用 get 请求调用微信接口,获取发通知所需要的 accessToken:
ps:目前此 token 在微信服务器中是2小时有效期,不能被 refresh,并且同一个appId 和 secret 共用同一个 token。举个例子:在开发中,分为生产环境和测试环境,在两个环境中是使用的同一个accessToken,腾讯是不会帮你区分的,所以小伙伴们在测试时一定要注意,不要轻易独自请求微信接口,避免线上环境 token 失效;
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=XXX&secret=XXX
3、根据业务需求,拼装 Template,如需求为上图所示,则模板拼接完的 json 串如下:
{
"data": {
"keyword1": {
"color": "#173177",
"value": "品牌商家入驻审核"
},
"keyword2": {
"color": "#173177",
"value": "2018-5-18 15:30:30"
},
"keyword3": {
"color": "#173177",
"value": "未通过"
},
"keyword4": {
"color": "#173177",
"value": "很遗憾贵品牌未能通过入驻审核,如有产品或服务疑问,请联系专属客户经理!"
}
},
"form_id": "formId",
"page": "/pages/index/index",
"template_id": "templateId",
"touser": "openId"
}
参数说明:
keyword系列:与模板中的位置对应,可选择字体颜色;
form_id:在 1.3> 中已获得;
page:用户点击通知消息后通常会跳转入小程序的某个页面中,这个参数作用就是设置页面路径;
template_id:在 1.2> 中已获得;
touser:在 1.4> 中已获得;
4、调用微信接口,发送 post 请求:
https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=XXX
将 1 中的token 放在此处,3 中准备的 json 串放入请求体,大功告成