notice 消息发送开发
消息发送概述
消息发送包括:SMS 短信、微信模板消息、微信小程序提醒消息
-
短信(SMS):通过第三方短信服务商发送短信通知
-
微信公众号(Wechat):发送公众号模板消息
-
微信小程序(Weapp):发送小程序订阅消息

文件位置
如果开发者直接是修改 niucloud-admin 框架,文件路径为:niucloud-core/src/main/resources/core/loader/notice/
如果开发者开发一个插件,文件路径为:niucloud-addon/插件名称/src/main/resources/插件名称/loader/notice/

首先定义一个模版消息提醒类型
notice.json 消息模板配置
关键代码参考:
{
"mall_order_pay": { //消息模板key
"addon": "mall", // 插件key
"key": "mall_order_pay", // 消息模板key
"receiver_type": 1, // 消息接收者,1表示会员接收,0表示平台用户接收
"name": "订单支付成功通知", // 模板名称,消息类型的名称
"title": "订单支付成功后发送", // 使用场景
"async": true, // true:同步,false:异步,根据具体的业务场景定义。比如短信验证码,需要返回值,就是同步。比如订单完成消息,这种就是异步
"variable": {
"order_money": "订单总额",
"pay_time": "支付时间",
"create_time": "支付时间",
"body": "订单内容",
"order_no": "订单编号",
"url": "订单链接"
},
"driver": "com.niu.mall.service.core.notice.driver.MallOrderPay" // 功能的具体执行类
}
定义消息类型后,会在系统中自动加载:

对定义的模版消息提醒类型,定义不同类型的实现(短信、微信公众号模板消息、微信小程序订阅消息)
开发者先定义一个消息提醒类型。在实际的应用中,这种消息提醒可能只发送短信,也可能会同时发送短信,微信模版消息,小程序消息。开发者需要在不同的文件中定义不同类型的实现
sms.json 定义短信消息提醒
关键代码参考:
{
"mall_order_pay": {
"content": "您购买的{body}已支付成功。查看详情{url}"
}
}

wechat.json 定义微信公众号模版消息提醒
关键代码参考:
{
"mall_order_pay": { // 消息模板key
"temp_key": "43216", // 模板消息ID
"content": [ // 模板内容
[
"下单时间",
"{create_time}",
"time4"
],
[
"订单编号",
"{order_no}",
"character_string2"
],
[
"商品信息",
"{body}",
"thing3"
],
[
"订单金额",
"{order_money}",
"amount5"
]
],
"keyword_name_list": [ // 选用的类目模板的关键词,按顺序传入,如果为空,或者关键词不在模板库中,会返回40246错误码
"下单时间",
"订单号",
"商品名称",
"支付金额"
],
"tips": "使用该消息请将微信公众号服务类目选择为:生活服务——>百货/超市/便利店" // 提示信息
}
}

weapp.json 定义微信小程序订阅消息提醒
关键代码参考:
{
"mall_order_pay": { // 消息模板key
"tid": "30808", // 模板编号
"content": [ // 模板内容
[
"订单编号",
"{order_no}",
"character_string1"
],
[
"下单时间",
"{create_time}",
"time2"
],
[
"商品名称",
"{body}",
"thing4"
],
[
"订单金额",
"{order_money}",
"amount3"
]
],
"kid_list": [ // 开发者自行组合好的模板关键词列表,关键词顺序可以自由搭配(例如 [3,5,4] 或 [4,5,3]),最多支持5个,最少2个关键词组合
1,
2,
4,
3
],
"scene_desc": "订单支付之后通知", // 服务场景描述,15个字以内
"tips": "使用该消息请在小程序的服务类目中添加类目:一级类目:商业服务 二级类目:软件\/建站\/技术开发" // 提示信息
}
}
