第三方短信接口内置

编辑
  • 文档创建者:susie
  • 浏览次数:3655次
  • 编辑次数:11次
  • 最近更新:Wendy123456 于 2019-11-12
  • 1. 概述

    1.1 版本

    报表服务器版本  JAR 包
      10.0  2019-05-20

    1.2 应用场景

    用户需要使用第三方短信平台发送短信。 

    1.3 功能描述

    平台中添加调用第三方短信平台的接口,可以根据用户的需求实现短信服务和监听服务。

    注:正式服务器上使用该接口,需要购买「短信平台」功能点,并在数据决策系统中开启 短信 平台,才可以使用。

    2. 接口内容

    主要接口为 SMSServiceProvider 。

    具体接口内容请参考:SMSServiceProvider接口

    2.1 主要接口

    1)SMSServiceProvider 

    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;
            }
        }

    2)Listener 

    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);
        }
    }

    2.2 接口接入

    <extra-core>
        <SMSServiceProvider class="com.fr.plugin.third.sms.SRGT"/>
    </extra-core>

    3. 示例

    接口示例可参考:示例源码

    提供第三方短信插件,实现第三方平台发送短信。

    注:仅为提供测试使用,不会真的发送短信,日志里可查看监听事件,具体客户使用时需自己编写代码。

    3.1 插件下载

    安装上述 Demo 使用插件的安装方法:

    点击下载插件:第三方短信服务接口插件

    设计器插件安装方法参照 设计器插件管理 

    服务器安装插件方法参照 服务器插件管理 

    3.2 平台发送短信

    安装插件后,短信平台中的相关功能,手机绑定验证码、登陆验证码、定时调度、多级上报、模板短信相关短信发送测试单人或多人均会触发监听事件,可以看到日志中如下图所示:

    注:发送测试短信不会触发监听事件

    222

    附件列表


    主题: 数据决策系统
    标签: 暂无标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]