/*** @author lqfeng* @desc  调用代码* @date 2022/6/8 11:07*/
public class JYMessageSend implements IShellSmsMessage {private static Logger log = LoggerFactory.getLogger(JYMessageSend.class);@Overridepublic void sendShortMessage(String mobile, String verifyCode, long verifyNo, Date expiredTime, Map<String, Object> params) {log.info("收到发送短信请求,手机号为:{},验证码为:{},有效期至:{},请求参数为:{},短信模板id:2764532",mobile,verifyCode,expiredTime,params);String templateId = new FrameConfigService9().getFrameConfigValueByNameWithDefault("sms_templateId", "2764532");MessageSendUtil.sendMessage(mobile,verifyCode,templateId);}
}
/*** 短信、公众号信息发送工具类* * @version [1.0, 2021/9/9 17:42]* @Author */
public class MessageSendUtil
{/*** 记录短信发送日志*/private static Logger log = Logger.getLogger(MessageSendUtil.class);/*** 短信发送接口地址*/public static final String MESSAGE_SEND_URL = "";/*** 短信参数cpcode-渠道在融合云信平台申请的cpcode 登录自服务平台,商户信息页面中的【商户编码】*/public static final String CPCODE = "";/*** 短信参数AccessKey-登录自服务平台,进入系统设置页,【AccessKey】值为key*/public static final String ACCESS_Key = "";/*** 消息模板id*/
//    public static final String TEMPLET_ID = "272472";/*** 发送短信消息* * @param mobiles*            手机号码,多个用,隔开* @param msg*            短信内容* @return*/public static void sendMessage(String mobiles, String msg,String templetid) {String retResult = "";// 接口参数JSONObject params = new JSONObject();params.put("cpcode", CPCODE);params.put("msg", msg);params.put("mobiles", mobiles);params.put("excode", "");params.put("templetid", templetid);try {params.put("sign", md5Sign(msg, mobiles, "", templetid));// 设置超时时间10sHttpUtil.RequestOptions options = new HttpUtil.RequestOptions(10000, 10000, 10000);retResult = HttpUtil.doHttp(MESSAGE_SEND_URL, null, params.toString(), HttpUtil.POST_METHOD,HttpUtil.RTN_TYPE_STRING, options);}catch (Exception e) {log.error("---------发送短信消息接口调用失败,错误信息:" + e.getMessage());// 设置短信发送状态 1成功 0失败e.printStackTrace();}if (StringUtil.isNotBlank(retResult) && !"{}".equals(retResult)) {JSONObject rtnJson = JSONObject.parseObject(retResult);// 判断短信是否发送成功if (rtnJson.containsKey("resultcode") && "0".equals(rtnJson.getString("resultcode"))) {// 设置短信发送状态 1成功 0失败}else {//                projectMessagesendLog.setSendstatus(0);}}else {//            projectMessagesendLog.setSendstatus(0);}}/*** * @param cpcode*            渠道在融合云信平台申请的cpcode 登录自服务平台,商户信息页面中的【商户编码】* @param msg*            模板参数值,如果包含多个参数,以半角英文逗号分隔* @param mobiles*            11位手机号,如果包含多个手机号,请用半角英文逗号分隔,最多支持300个手机号* @param excode*            渠道自定义接入号的扩展码,可为空;为空时传空字符串””* @param templetid*            渠道在融合云信平台申请的模板短信ID* @param key*            MD5签名,签名字符串为cpcode+*            msg+mobiles+excode+templetid+key,其中key为融合云信平台分配的私钥,将签名字符串用MD5加密后转换为小写字符串。* @return*/public static String md5Sign(String msg, String mobiles, String excode, String templetid) {String md5source = CPCODE + msg + mobiles + excode + templetid + ACCESS_Key;String md5str = "";try {md5str = StringUtil.toLowerCase(makeMD5(new String(md5source.getBytes("UTF-8"), "UTF-8")));}catch (UnsupportedEncodingException e) {e.printStackTrace();}return md5str;}/*** md5加密* * @param plainText*            要md5加密的字符串* @return*/public static String makeMD5(String plainText) {String re_md5 = "";try {MessageDigest md = MessageDigest.getInstance("MD5");md.update(plainText.getBytes("UTF-8"));byte[] b = md.digest();int i;StringBuffer buf = new StringBuffer("");for (int offset = 0; offset < b.length; offset++) {i = b[offset];if (i < 0) {i += 256;}if (i < 16) {buf.append("0");}buf.append(Integer.toHexString(i));}re_md5 = StringUtil.toLowerCase(buf.toString());}catch (NoSuchAlgorithmException e) {e.printStackTrace();}catch (UnsupportedEncodingException e) {e.printStackTrace();}return re_md5;}/*** 拼接GET请求url* @param apiUrl url* @param params 参数* @return*/public static String getFullApiUrl(String apiUrl, Object params) {if (StringUtil.isBlank(params)) {return apiUrl;}else {StringBuffer param = new StringBuffer();if (params instanceof Map) {Map<String, Object> paramsConvert = (Map)params;int i = 0;String key = "";for(Iterator paramsData = paramsConvert.entrySet().iterator(); paramsData.hasNext(); ++i) {Map.Entry<String, Object> entry = (Map.Entry)paramsData.next();key = entry.getKey();if (i == 0) {param.append("?");}else {param.append("&");}param.append(key).append("=").append(paramsConvert.get(key));}}else {param.append("?" + params.toString());}return apiUrl + param;}}
}

融合云信平台对接_java代码相关推荐

  1. Python发送手机短信(融合云信平台)

    写下这篇文章,算是记录一下Python发送手机短信的过程.现在通过手机短信推送信息一般比较方便,在企业内部,一般用邮件推送通知,如果不是每个人都有邮箱的话,邮件推送的局限性就出来了.手机短信的实时性比 ...

  2. 头条巨量快手广点通等平台APPAPI回传事件注册激活-转化联调-API对接原理代码分析和功能实现

    2022年最新的头条巨量快手广点通等各推广平台APP&API回传事件-转化联调注册激活-API对接原理代码分析和功能实现! 在商户推广管理当中,经常碰到 需要将用户行为数据回传给推广平台.做转 ...

  3. 阿里云消息队列 RocketMQ 5.0 全新升级:消息、事件、流融合处理平台

    从"消息"到"消息.事件.流"的大融合 消息队列作为当代应用的通信基础设施,微服务架构应用的核心依赖,通过异步解耦能力让用户更高效地构建分布式.高性能.弹性健壮 ...

  4. 云栖发布|阿里云消息队列 RocketMQ 5.0:消息、事件、流融合处理平台

    简介:RocketMQ5.0 的发布标志着阿里云消息正式从消息领域正式迈向了"消息.事件.流"场景大融合的新局面. 引言:从"消息"到"消息.事件.流 ...

  5. 2023年,“新一代”固定资产管理平台——支持低代码平台

    固定资产是各企业和工厂的主要生产要素,占企业整体资金比例较重,而且随着企业的发展,实物资产的数量和员工日益增多,固定资产的重要性日益凸显.如何高效管理这些实物资产也成了企业管理者经常考虑的问题.单纯依 ...

  6. 华为云数据融合集成平台ROMA Connect,推进企业数字化转型

    前言 高新科技突飞猛进的今天,企业不断开发新的应用以提升效率,但仍有部分旧的应用会根据业务需求继续服务.Gartner报告显示,到2025年,90%的存量应用将会继续使用,而其中的大部分得不到足够的应 ...

  7. 一次失败的机巡平台对接经历分享

    机巡平台与物联网平台对接:一次失败的平台对接经历.谨以此,总结失败的原因,杜绝类似事件的发生! 背景 由我们公司为用户开发的机巡平台,已经上线运行3年多了.目前来说,从软件全生命周期角度来说,该平台处 ...

  8. 探秘新一代音视频技术融合通信平台全接触

    从社交到视频会议,从金融到医疗,云端通信能力正在与传统的电话/IM.呼叫中心.企业通信融合,打通各个端与渠道的数据,实现实时互联与掌控.而音视频技术在其中扮演着重要的角色,如何为用户提供更低延迟.更佳 ...

  9. 数据来源渠道及采集工具_GrowingIO「转化数据回传」| 平台对接免开发,优化投放更便捷...

    GrowingIO「广告监测」为我们准确监测投放质量.通过「转化数据回传」功能,我们能够快速完成广告平台对接工作,让广告效果优化更为高效. -- 某社交平台明星企业 随头条.腾讯等各广告平台逐步推出 ...

  10. 使用大数据闪存打造融合数据平台

    随着企业.服务提供商和超大型数据中心从描述性分析向预测性和规范性分析演进,结合了融合运营和分析数据管道的融合数据平台变得日益重要.大数据闪存可让数据处理平台快速访问历史数据和实时数据流,从而以较低成本 ...

最新文章

  1. AD,proteus操作
  2. C和C++栈stack
  3. 【宜搭客户说第二期】宜搭助力跨境金融行业实现数字化管理
  4. SAP UI5 Logon Handler of Frame
  5. useGeneratedKeys的用法
  6. Docker如何删除一个镜像
  7. 《大道至简》阅读笔记
  8. 微信终于可以隐身了,快看看!
  9. AttributeError: module 'pip' has no attribute 'main'
  10. 验证码生成php代码,一个php验证码生成类代码
  11. 公司年会抽奖的一个java实现
  12. 软件工程--概要设计
  13. 如何提高迅雷下载速度
  14. 马里兰大计算机专业学phd博士,美国纽约州立大学石溪分校计算机专业博士CS PHD全奖OFFER...
  15. 全新设计 水果忍者-穿靴子的猫官方中文版首发
  16. Secure Socket Tunneling Protocol Service服务无法启动(win7)
  17. AD18如何修改原理图页面图纸的大小
  18. ArcGIS案例学习笔记2_1
  19. matlab 中diag函数的用法
  20. 解决iTunes更新或者重现安装出现“指定账户已存在问题

热门文章

  1. html doc,HTML咸蛋超人版.doc
  2. Namesilo域名解析详细图文教程!
  3. html游戏加载不出图片吗,uc浏览器加载不出图片怎么办?uc浏览器加载不出图片的解决方法...
  4. 使用CSS更改hr标签的厚度
  5. 暴雪战网服务器维护,炉石无法通过暴雪战网服务进行登录
  6. ping 不通百度问题的解决
  7. 【附源码】计算机毕业设计SSM小说阅读网站
  8. 0x00000....蓝屏
  9. 用安卓手机搭建一个可用渗透测试环境/安卓手机搭建linux环境
  10. 红米note4 android8.0,红米Note 4首个安卓8.0刷机包放出,开发者:可日常使用