JAVA联调实现微信小程序定时发送通知(2)初次踩坑篇

167 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情

权限篇 报错43101

发送用户发现用户没有开启权限,返回错误,需要每一次都设置权限(企业版才不需要)比较容易出现 需要不断向用户获取权限 image.png

字段冲突 报错47003

小程序发送通知需要传递json数据,订阅号的模板对于每⼀个字段的类型都有特别要求,例如这个模板中的“通知”字段是叫time5.DATA,那么你在后端调取微信的时候也必须使用这个名字,而且对于类型也有一定的限制。

image.png

接下来,我们看看小程序模板的字段就知道应该如何设置字段 image.png

这时,我们就需要设置成data->time5->value(替换为值)这样的json格式传值。 传值之后容易出现数据不合法,需要参考参数值内容限制说明

参数类别参数说明参数值限制说明
  thing.DATA  事务           20个以内字符  可汉字、数字、字母或符号组合
number.DATA数字           32位以内数字      只能数字,可带小数
 letter.DATA字母            32位以内字母               只能字母
 symbol.DATA    符号              5位以内符号               只能符号
 character_string.DATA字符串    32位以内数字、字母或符号   可数字、字母或符号组合
 time.DATA时间  24小时制时间格式(可以为年月日),支持时间段;两个时间点之间用~连接(如2022-09-27 19:31:28或19:38)
date.DATA    日期  年月日格式(支持加24小时制时间和时间段),两个时间点之间用~连接    如2022年9月27日,2022年9月27日 19:31
amount.DATA    金额一个货币符号+10位以内纯数字,可带小数,结尾可带元 ¥8.8
phone_number.DATA电话号码   17位以内数字、符号如11122223333,+86-1111-11111111
car_number.DATA车牌 8位以内,第一位与最后一位可为汉字,其余为字母或数字车牌号 :如粤A8888Z桂
name.DATA姓名 10字以内纯汉字或20个以内纯字母或符号小明
phrase.DATA汉字5个字以内汉字 点赞的都帅

 成功结果

 

个人总结

在后台调用接口进行发小程序通知时,不仅要让前端的伙伴们发模板id等,也需要把模板的字段名设置一起发来,再一起协调解决,后台可以写成一个通用的封装类,进行内容的修改和发送。下期将带来定时任务的实现。