短信
功能及平台机制说明
提供与短信第三方平台配置参数功能
具体操作
短信申请说明(以阿里云为例)
- 访问入口:https://www.aliyun.com/
- 获取ID和Secret
- 短信签名
- 模板编号:各个场景可通用使用同一个模板,模板编号对应阿里模板Code的值
- 更多详情参见阿里短信帮助文档:https://help.aliyun.com/product/44282.html
- 在“统一通用配置功能”中添加短信配置,打开具体的配置项,在配置参数使用上面步骤获取参数
- 要使用自定义申请的短息模板,就在短信配置的自定义短信中添加即可
自定义短信模板参数要求说明
- 可以使用的变量:提交者(submitter), 任务标题(title), 消息编码(code)
- 查看的url必须是如下格式:http://entry域名/entry/pcapp/pc/sms.w?code=${code}
- 发布entry的apk的设置
- entry发布时,需要添加"自定义URL插件",并设置URL_SCHEMA参数值为:entry;
- entry的值可以修改,修改后需要修改UI2/pcapp/pc/sms.js中的"entry://"改为"xxx://"
流程短信模板一
通过短信通知用户有待办任务
- 示例:通知:您收到一条${submitter}提交的${title}需要上线审批。
注意事项说明: submitter: 待办任务的提交者 title: 待办任务的名称
流程短信模板二
注册任务消息短信模板
- 示例:您收到:${title},提交人:${submitter},请查看http://entry域名/entry/pcapp/pc/sms.w?code=${code}
腾讯云短信模版
腾讯云短信模版参数是用{1}{2}这样的数字定义的,而使用平台发短信时是按参数名匹配的,所以在使用腾讯云短信时需要在“消息模版管理”中添加模版设置参数对应关系
如:在腾讯云中申请的模版为:
通知:您收到一条{1}提交的{2}——{3}任务请在{4}日前上线审批
在消息模版管理中新建模版时,内容模版可以如下定义:
通知:您收到一条${submitter}提交的${title}——${type}请在${createdate}日前上线审批
这样就会把submitter与1、title与2、type与3、createdate与4一一对应起来
自定义短信通道
平台默认支持了阿里云短信、腾讯短信、创蓝短信、亿美软通短信可以直接配置相关的参数就能发短信验证码或者是短信消息,除了这几种短信通道如果有其他的可以通过自定义短信通道实现。
自定义短信通道提供的配置信息跟其他的短信通道是一样的,只是请求模版参数的配置方式不一样,自定义短信通道中请求模版参数需要的是json数组方式,发短信的是就是按这个模版的配置发送的,如注册验证码请求模版如下配置:
[
{
"method": "POST",
"url": "${url}",
"body": {
"code": "${<params>$.code}",
"test": "abc"
},
"headers": {
"Accept": "application/json",
"Content-Type": "application/json"
}
}
]
method: 请求方式GET、POST等
url: 请求地址,${url}读取的是配置项中短信地址的内容,也可以直接写需要的请求地址;如果配置的平台内部微服务应用的地址域名需要是内部域名,可以到服务注册功能中查看应用的内部域名
headers:请求的头部信息
body中的code、test:请求定义的参数,如果参数需要?方式传递可以在url上拼接如下:
[
{
"method": "POST",
"url": "${url}?code=${<params>$.code}&test=abc",
"body":{},
"headers": {
"Accept": "application/json",
"Content-Type": "application/json"
}
}
]
自定义短信模版也需要是这样的格式
除了url其他的配置信息也可以通过${}的方式获取,如accessKeyID、accessKeySecret、signName、phone、params。
其中params是调用发消息的API时的传入参数,以json格式的方式返回。包括系统默认的和自己定义的参数,如果是验证码模版params中的code是需要的验证码,可以通过${<params>$.code}
直接获取;如果是发的任务相关的信息会有submitter、title等默认提供的流程相关的参数。获取的params值方式有如下三种:
第一种直接获取某个值:
"code":${<params>$.a}
第二种获取整个params的值
"test":${<params>$}|json
第三种在调用请求模版时有自定义的参数,需要把params中的每一项都取取出来并且跟自定义的参数同级,unfoldJson参数名也是固定的:
"unfoldJson": "${...params}":
如在发消息给的参数是{"a":"a","b":"b","title":"自定义短信通道测试"},请求模版中自己定义的"test":"abc",在请求中获取就是
{"test":"abc","a":"a","b":"b","title":"自定义短信通道测试"}