You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 11
Next »
接口作用
通过第三方短信平台发送短信,可以根据自己需求实现短信服务和监听服务。
接口内容
主要接口
package com.fr.stable.fun;
import com.fr.json.JSONArray;
import com.fr.json.JSONObject;
import com.fr.stable.StringUtils;
import com.fr.stable.fun.mark.Selectable;
import java.util.List;
import java.util.Map;
/**
* 第三方sms服务接入接口
*
* @author Lanlan
*/
public interface SMSServiceProvider extends Selectable {
int CURRENT_LEVEL = 1;
String XML_TAG = "SMSServiceProvider";
/**
* 根据内置的短信模板编号,转换成实际的第三方短信平台的短信模板
*
* @return 编号和实际模板的键值对集合
*/
Map<String, String> mapping();
/**
* 发送测试短信
*
* @param mobile 接收短信的手机号
* @return 结果
*/
Response sendTest(String mobile);
/**
* FR包含的短信发送功能
*
* @param template 发送短信的模板(里面有参数,需要根据后面的para里的参数值进行替换)
* @param mobile 接收短信的手机号
* @param para 生成最终短信需要的参数
* @param receiver 接收者(用户)
* @return 结果
* @throws Exception 异常
*/
Response send(String template, String mobile, JSONObject para, String receiver) throws Exception;
/**
* FR包含的批量发送短信的功能
*
* @param template 发送短信的模板(里面有参数,需要根据后面的para里的参数值进行替换)
* @param mobiles 接收短信的手机号列表
* @param params 对应的生成最终短信需要的参数JSON数组
* @param receivers 接收者(用户)列表,三个列表/数组,根据序号一一对应
* @return 结果
* @throws Exception 异常
*/
Response batchSendSMS(String template, List<String> mobiles, JSONArray params, List<String> receivers) throws Exception;
/**
* 第三方sms服务响应
*/
class Response {
public final static String RES_STATUS_SUCCESS = "success";
public final static String RES_STATUS_FAILED = "failed";
private String status;
private String msg;
private JSONObject content;
public static Response create(String status, String msg, JSONObject content) {
if (StringUtils.isEmpty(status) || StringUtils.isEmpty(msg)) {
return null;
}
if (content == null) {
content = JSONObject.create();
}
return new Response(status, msg, content);
}
private Response(String status, String msg, JSONObject content) {
this.status = status;
this.msg = msg;
this.content = content;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public JSONObject getContent() {
if (!content.has("status")) {
content.put("status", status);
}
if (!content.has("msg")) {
content.put("msg", msg);
}
return content;
}
public void setContent(JSONObject content) {
this.content = content;
}
}
/**
* sms监听器
*
* @author Lanlan
* @date 2019/1/29
*/
interface Listener {
/**
* 短信发送前事件处理接口
*
* @param text 发送短信的模板(里面有参数,需要根据后面的para里的参数值进行替换)
* @param mobiles 接收短信的手机号列表
* @param params 生成最终短信需要的参数JSON数组
* @param receivers 接收者(用户)列表
*/
void beforeSend(String text, List<String> mobiles, JSONArray params, List<String> receivers);
/**
* 短信发送后事件处理接口
*
* @param text 发送短信的模板(里面有参数,需要根据后面的para里的参数值进行替换)
* @param mobiles 接收短信的手机号列表
* @param params 生成最终短信需要的参数JSON数组
* @param receivers 接收者(用户)列表
* @param response 响应(仅在使用了第三方服务接口后且仅在发送结束后事件有效!)
*/
void afterSend(String text, List<String> mobiles, JSONArray params, List<String> receivers, Response response);
}
}
接口接入
<extra-core>
<SMSServiceProvider class="com.fr.plugin.third.sms.SRGT"/>
</extra-core>
示例效果
无
接口示例
示例源码:https://git.fanruan.com/fanruan/demo-third-sms
注意事项
内置各类短信时间的编号和模板列表:
项目 | 短信编号 | 默认模板内容 |
---|
定时任务发送失败提醒 | 10 | 【信息平台】尊敬的管理员,#taskname#于#time#运行失败,请知晓。 |
工单提醒 | 11 | 【帆软软件】尊敬的#name#,您有一个工单号为:#order_number#的待处理工单,请您及时处理! |
短信平台告警 | 13 | 【帆软软件】您好,#webname#系统内存持续#m#分钟内存高于#n#,可能存在宕机风险,请及时关注。 |
定时任务发送失败提醒 | 14 | 【帆软软件】尊敬的管理员,#taskname#于#time#运行失败,请知晓。 |
定时任务发送成功提醒 | 15 | 【帆软软件】您好,#taskname#于#time#运行成功。 |
短息登录验证码 | 16 | 【帆软软件】您的手机验证码为#Verifiecode#,请于10分钟内正确输入。 |
短信平台告警 | 17 | 【信息平台】您好,#webname#系统内存持续#m#分钟内存高于#n#,可能存在宕机风险,请及时关注。 |
短信平台测试结果 | 18 | 【信息平台】恭喜!您的短信服务已经配置成功。 |
短信平台开通通知 | 19 | 【信息平台】您好,#taskname#于#time#运行成功。 |
短息登录验证码 | 20 | 【信息平台】您的手机验证码为#verifiecode#,请于10分钟内正确输入。 |
日志清理预警 | 49 | 【信息平台】您好,#webname#系统日志文件已大于#logsize#M,请及时登录平台进行日志清理。 |
短信平台告警 | 50 | 【信息平台】您好,#webname#系统#clustername#内存持续#m#分钟内存高于#n#,可能存在宕机风险,请及时关注。 |
定时任务发送失败提醒 | 51 | 【信息平台】你好,#task#出错,请及时处理。该任务开始执行时间:#time# |
上报流程预警 | 53 | 【信息平台】上报任务 #task#,已经到您这里#time#,请尽快处理! |
上报流程提醒 | 54 | 【信息平台】#name#您好,上报任务#task#已经发起,请尽快处理! |
集群状态异常提醒 | 63 | 【信息平台】系统检测到,节点#node_id#的系统时间与其他节点不一致。请配置时间服务器,实现节点时间的自动同步。 |
集群状态异常提醒 | 64 | 【信息平台】节点#node_id#,非正常脱离集群环境。请重启该节点,加入集群。 |
集群状态异常提醒 | 89 | 【信息平台】节点#nodename#,与节点#node1name#的jar包不一致,将影响集群工程的稳定性,请前往集群节点管理页面查看详细异常信息,并及时处理。 |
集群状态异常提醒 | 90 | 【信息平台】节点#nodename#情况异常,用户不能正常访问,请及时检查该节点状态。 |
任务提醒 | 125 | 【信息平台】您有个#proname#任务即将过期,请您尽快办理。 |
任务提醒 | 127 | 【信息平台】您有个#proname#任务需要处理,请您尽快办理。发起人:#startpeople#,发起时间:#starttime#。 |
集群状态异常提醒 | 134 | 【信息平台】#ip_port#节点已无法使用,可能原因为:节点宕机、内存已满、其他异常。为避免影响用户使用,请前往状态服务器配置页面查看详情,并及时处理。 |
文件服务器异常提醒 | 135 | 【信息平台】文件服务器出现无法读写的情况,可能原因为:文件服务器宕机、磁盘已满、其他异常。为避免影响用户使用,请及时检查文件服务器状态。 |
短信平台告警 | 136 | 【信息平台】您好,#webname#系统#clustername#当前负载状态过高,可能存在宕机风险,请及时关注。建议使用管理系统-智能运维-云端运维功能分析当前系统存在的性能问题。 |