subscribeMessage.send | 微信开放文档
由于业务需求 , 需要实现小程序订单状态发送给用户 , 于是微信小程序发送订阅消息就被找到了
这里前端是使用了uniapp , 具体实现方式不清楚,就不瞎bb了
后端这里就是上面的接口文档 , 总共需要是三个步骤
1. 获取小程序 appid 和 密钥
2. 订阅消息模板选择
3. 通过appid 和 密钥获取accesstoken
4. 获取用户小程序openid
5. 测试模板消息是否发送成功 , 这里需要前端先对模板消息进行订阅才能发送 , 这里需要对模板消息的数据类型进行比对
参数类别 | 参数说明 | 参数值限制 | 说明 |
---|---|---|---|
thing.DATA | 事物 | 20个以内字符 | 可汉字、数字、字母或符号组合 |
number.DATA | 数字 | 32位以内数字 | 只能数字,可带小数 |
letter.DATA | 字母 | 32位以内字母 | 只能字母 |
symbol.DATA | 符号 | 5位以内符号 | 只能符号 |
character_string.DATA | 字符串 | 32位以内数字、字母或符号 | 可数字、字母或符号组合 |
time.DATA | 时间 | 24小时制时间格式(支持+年月日),支持填时间段,两个时间点之间用“~”符号连接 | 例如:15:01,或:2019年10月1日 15:01 |
date.DATA | 日期 | 年月日格式(支持+24小时制时间),支持填时间段,两个时间点之间用“~”符号连接 | 例如:2019年10月1日,或:2019年10月1日 15:01 |
amount.DATA | 金额 | 1个币种符号+10位以内纯数字,可带小数,结尾可带“元” | 可带小数 |
phone_number.DATA | 电话 | 17位以内,数字、符号 | 电话号码,例:+86-0766-66888866 |
car_number.DATA | 车牌 | 8位以内,第一位与最后一位可为汉字,其余为字母或数字 | 车牌号码:粤A8Z888挂 |
name.DATA | 姓名 | 10个以内纯汉字或20个以内纯字母或符号 | 中文名10个汉字内;纯英文名20个字母内;中文和字母混合按中文名算,10个字内 |
phrase.DATA | 汉字 | 5个以内汉字 | 5个以内纯汉字,例如:配送中 |
enum.DATA | 枚举值 | 只能上传枚举值范围内的字段值 | 调用接口获取参考枚举值 |
成功案例:
{
"errcode": 0,
"errmsg": "ok",
"msgid": 2695021966263336964
}
失败案例:(我这个是没有订阅模板消息)
{
"errcode": 43101,
"errmsg": "user refuse to accept the msg rid: 638da8c5-4d9f4841-684c02bd"
}
值 | 说明 | 最低版本 |
---|---|---|
40003 | touser字段 openid 为空或者不正确 | |
40037 | 订阅模板 id 为空不正确 | |
43101 | 用户拒绝接受消息,如果用户之前曾经订阅过,则表示用户取消了订阅关系 | |
47003 | 模板参数不准确,可能为空或者不满足规则,errmsg会提示具体是哪个字段出错 | |
41030 | page路径不正确,需要保证在现网版本小程序中存在,与 app.json 保持一致 |