[9.0]第三方短信接口

编辑
  • 文档创建者:秃破天际
  • 浏览次数:1043次
  • 编辑次数:4次
  • 最近更新:珠珠 于 2019-01-08
  • 1. 描述

    先安装插件获得扩展需要的接口:第三方短信服务接口插件V9.0  第三方短信服务接口插件V10.0

    2. 接口

    安装后获得如下的接口:

    1)发送短信的接口

    package com.tptj.plugin.hg.fun; import java.util.List; import com.fr.json.JSONArray; import com.fr.json.JSONObject; import com.fr.stable.fun.mark.Immutable; import com.tptj.plugin.hg.bean.ThirdResponse; public interface SMSServer extends Immutable { int CURRENT_LEVEL = 1; String XML_TAG = "SMSServer"; /** * 发送测试短信 * @param mobile 接收短信的手机号 * @return 发送的结果 */ public ThirdResponse sendTest( String mobile ); /** * FR包含的短信发送功能 * @param template 发送短信的模板(里面有参数,需要根据后面的para里的参数值进行替换) * @param mobile 接收短信的手机号 * @param para 生成最终短信需要的参数 * @param receiver 接收者(用户) * @return 发送的结果 * @throws Exception */ public ThirdResponse 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 */ public ThirdResponse batchSendSMS(String template, List<String> mobiles, JSONArray params, List<String> receivers )throws Exception; } 

    2)发送短信的一个demo

    package com.tptj.plugin.hg.third.sms.test.rgt; import com.fr.base.FRContext; import com.fr.json.JSONArray; import com.fr.json.JSONObject; import com.fr.plugin.transform.ExecuteFunctionRecord; import com.fr.plugin.transform.FunctionRecorder; import com.tptj.plugin.hg.bean.ThirdResponse; import com.tptj.plugin.hg.impl.AbstractSMSServer; import java.util.List; @FunctionRecorder public class SRGT extends AbstractSMSServer { public static void main(String []args){} @Override @ExecuteFunctionRecord public ThirdResponse send( String template, String mobile, JSONObject para, String receiver ) throws Exception { //你自己的短信服务发送短信的代码【每个短信服务商各不相同,需要自己实现】 //我没有啥第三方短信服务(穷逼买不起)~就直接输出到日志代表发送过程了 //System.out.println("发送成功!"+para.toString()); FRContext.getLogger().info("发送成功!"+para.toString()); return ThirdResponse.create(ThirdResponse.RES_STATUS_SUCCESS, "发送成功!", JSONObject.create() ); } @Override public ThirdResponse sendTest( String mobile ) { //你自己的短信服务发送短信的代码【每个短信服务商各不相同,需要自己实现】 //System.out.println("发送测试信息成功!"); FRContext.getLogger().info("发送测试信息成功!"); //ThirdResponse.RES_STATUS_FAILED 失败的状态 return ThirdResponse.create( ThirdResponse.RES_STATUS_SUCCESS, "发送测试信息成功!", JSONObject.create() ); } @Override public ThirdResponse batchSendSMS(String template, List<String> mobiles, JSONArray params, List<String> receivers )throws Exception{ //发送批量短信 mobiles params receivers 这三个数组根据序号一一对应的 //你自己的短信服务发送短信的代码【每个短信服务商各不相同,需要自己实现】 //System.out.println("发送测试信息成功!"); FRContext.getLogger().info("发送批量信息成功!"); //ThirdResponse.RES_STATUS_FAILED 失败的状态 return ThirdResponse.create( ThirdResponse.RES_STATUS_SUCCESS, "发送批量信息成功!", JSONObject.create() ); } } 

    plugin.xml注册方式

    <extra-platform> <SMSServer class="com.tptj.plugin.hg.third.sms.test.rgt.SRGT"/> </extra-platform>

    除了可以使用第三方短信服务发送短信,还有额外的监听接口(你使用的就是FR的短信服务,只是发送短信前后需要做一些自定义的操作):

    1)接口介绍

    package com.tptj.plugin.hg.fun; import java.util.List; import com.fr.json.JSONArray; import com.tptj.plugin.hg.bean.ThirdResponse; public interface SMSListener { /** * 短信发送前/发送后事件处理接口 * @param text 发送短信的模板(里面有参数,需要根据后面的para里的参数值进行替换) * @param mobiles 接收短信的手机号列表 * @param params 生成最终短信需要的参数JSON数组 * @param receivers 接收者(用户)列表 * @param response 响应(仅在使用了第三方服务接口后且仅在发送结束后事件有效!) */ public void run(String text, List<String> mobiles, JSONArray params, List<String> receivers, ThirdResponse response ); } 

    2)一个监听的demo

    package com.tptj.plugin.hg.third.sms.test.rgt; import com.fr.base.FRContext; import com.fr.json.JSONArray; import com.fr.stable.fun.impl.AbstractLocaleFinder; import com.tptj.plugin.hg.bean.ThirdResponse; import com.tptj.plugin.hg.fun.SMSListener; import com.tptj.plugin.hg.sdk.SMSAPI; import java.util.List; public class LRGT extends AbstractLocaleFinder { private static boolean rgt = false; @Override public String find() { //事件只注册一遍,就简单写一下~线程同步什么的没考虑哈~ if(!rgt){ rgt = true; SMSAPI.addBeforeSendSmsListeners(new SMSListener(){ @Override public void run(String text, List<String> mobiles, JSONArray params, List<String> receivers, ThirdResponse response) { System.out.println("短信发送前事件执行!"); FRContext.getLogger().info("短信发送前事件执行!"); } }); SMSAPI.addAfterSendSmsListeners(new SMSListener(){ @Override public void run(String text, List<String> mobiles, JSONArray params, List<String> receivers, ThirdResponse response) { System.out.println("短信发送后事件执行!"); FRContext.getLogger().info("短信发送前事件执行!"); } }); } return "com/tptj/plugin/hg/third/sms/test/rgt/reset"; } } 

    plugin.xml注册方式

    <extra-core> <LocaleFinder class="com.tptj.plugin.hg.third.sms.test.rgt.LRGT"/> </extra-core>



    【插件活动】参与插件评论,拿100元京东E卡和悟帆抱枕

    附件列表


    主题: 二次开发
    如果您认为本文档还有待完善,请编辑

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

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