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

本文共 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/859427

你可能感兴趣的文章
转载 radio值获取
查看>>
学习SpringMVC——你们要的REST风格的CRUD来了
查看>>
NLPIR数据语义挖掘技术为企业提供精准管理
查看>>
通过本地yum源安装软件报错[Errno 14] PYCURL ERROR 56 - "Failure when receiving data from the peer"...
查看>>
android常用调试工具fiddle、wireshark和android studio的配置
查看>>
Java实现几种常见排序方法
查看>>
NOIP2017 复盘
查看>>
jxa快速入门,Javascript已加入AppleScript全家桶
查看>>
洛谷P3622 动物园
查看>>
Angular Encapsulation - css选择器选不到非angular组件(插件)
查看>>
iOS开发之UIScrollView
查看>>
mysql 使用 insert ignore into和unique实现不插入重复数据功能
查看>>
c++操作符重载_12
查看>>
eclipse 安装反编译工具
查看>>
我的Java开发学习之旅------>Java多线程下载文件 实例
查看>>
WireShark简单使用以及TCP三次握手
查看>>
什么是@guid
查看>>
nodeType的12种类型
查看>>
步步为营 .NET 代码重构学习笔记 十三
查看>>
053:Field的常用参数详解:
查看>>