博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
短信发送接口 - SubMail
阅读量:5986 次
发布时间:2019-06-20

本文共 3395 字,大约阅读时间需要 11 分钟。

hot3.png

public class SubMailSmsSender {    private static Logger logger = LoggerFactory.getLogger(SubMailSmsSender.class);    private String submailSendUrl;    private String submailAppid;    private String submailAppkey;    public SubMailSmsSender(String submailSendUrl, String submailAppid, String submailAppkey) {        this.submailSendUrl = submailSendUrl;        this.submailAppid = submailAppid;        this.submailAppkey = submailAppkey;    }    ObjectMapper objectMapper = new ObjectMapper();    /**     * SUBMAIL 的短信一对多(即1条API请求发送多个号码,并可以灵活控制每个联系人的文本变量)和群发 API 。调用方需要确保 templateId 正确, smsList 中至少有一条     *     * @param templateId 短信模板     * @param multi      批量发送列表json字符串     * @return 返回发送成功的接收方手机号列表     */    public List
multixsend(String templateId, String multi) { String info = null; boolean success = false; List
params = new ArrayList<>(); params.add(new BasicNameValuePair("appid", submailAppid)); params.add(new BasicNameValuePair("project", templateId)); params.add(new BasicNameValuePair("multi", multi)); params.add(new BasicNameValuePair("signature", submailAppkey)); try { List
successPhoneList = new ArrayList<>(); HttpResponse post = HttpClientHelper.INSTANCE.post(submailSendUrl, params, "utf-8", null, null); info = EntityUtils.toString(post.getEntity(), "utf-8"); if (logger.isDebugEnabled()) { logger.debug("SUBMAIL 返回:" + info); } JsonNode jsonNode = objectMapper.readTree(info); Iterator
iterator = jsonNode.iterator(); while (iterator.hasNext()) { JsonNode next = iterator.next(); String status = next.get("status").asText(); String to = next.get("to").asText(); if ("success".equals(status)) { successPhoneList.add(to); if (logger.isInfoEnabled()) { logger.info("成功发送短信给[" + to + "]"); } } else { String logContent = "发送短信给[" + to + "]失败"; if (logger.isInfoEnabled()) { logger.error(logContent); } } } return successPhoneList; } catch (IOException e) { logger.error("请求 SubMail 服务器发送短信产生IO 错误", e); return Collections.emptyList(); } } /** * SUBMAIL 的短信一对多(即1条API请求发送多个号码,并可以灵活控制每个联系人的文本变量)和群发 API 。调用方需要确保 templateId 正确, smsList 中至少有一条 * * @param templateId 短信模板 * @param smsList 批量发送列表 * @return 返回发送成功的接收方手机号列表 */ public List
multixsend(String templateId, List
smsList) { if (smsList == null || smsList.isEmpty()) { return Collections.emptyList(); } String multi = null; try { multi = objectMapper.writeValueAsString(smsList); } catch (JsonProcessingException e) { e.printStackTrace(); } return this.multixsend(templateId, multi); } /** * 短信发送信息 */ static class SubMailSms { private String to; private Map
vars; public String getTo() { return to; } public void setTo(String to) { this.to = to; } public Map
getVars() { return vars; } public void setVars(Map
vars) { this.vars = vars; } }}
 

tips:

本文由导入,原文链接:

转载于:https://my.oschina.net/yangyan/blog/859212

你可能感兴趣的文章
如何才能正确的关闭Socket连接
查看>>
MongoDB基本操作
查看>>
[转]微擎(微赞)学习之 -- 模块开发:目录结构
查看>>
css 手机适配
查看>>
5个界面效果很炫的JavaScript UI框架
查看>>
根据标准word模板生成word文档类库(开源)
查看>>
Html网页表格结构化标记的应用
查看>>
数据结构和算法 (二)数据结构基础、线性表、栈和队列、数组和字符串
查看>>
二叉树的层序遍历算法实现
查看>>
Measuring Power Values
查看>>
wince6下载地址
查看>>
UIView+LHQExtension(分类)
查看>>
KiB、MiB与KB、MB的区别
查看>>
Java开发环境配置
查看>>
ASP.NET MVC实现多个按钮提交事件
查看>>
移动端与PHP服务端接口通信流程设计(增强版)
查看>>
Linux 下模拟Http 的get or post请求(curl和wget两种方法)
查看>>
Windows去除快捷箭头
查看>>
关于分页的解决方案收集
查看>>
angularjs指令参数transclude
查看>>