联通一信通短信平台接口调用

  • 起承转
  • 准备工作
  • 主要调用功能
    • 发送短信
    • 接收回复短信

起承转

业务需要调用联通一信通短信接口。

准备工作

调用接口前需要一系列准备工作,步骤如下:

  1. 企业账户相关信息,你需要有相应的账户和密码 官网入口;
  2. 工作台选择接口业务
  3. 接口配置中主要就是接口接入ip白名单和发送短信相关配置选项(无法自己修改,直接致电主页里的服务热线);
  4. 发送模板则用来预先配置你的短信模板;
  5. 接口申请即申请接口开发权限页面,另外调用接口的密钥也在这里,ps(因为在我接手之前已经申请好了,所以我也不太清楚具体流程,想了解的可以咨询联通客服);
  6. 开发教程下载接口规范和demo程序。

主要调用功能

发送短信

参考demo写的定时任务(quartz),其中需要注意的是发送短信的内容一定要和之前定义的模板格式相同

public static String company  = "***";public static String userName = "****";public static String pwd = "****";public static SmsStub stub = null;static{try {stub = new SmsStub("http://sms.api.ums86.com:8899/sms_hb/services/Sms?wsdl");//高并发时注意使用单实例stub._getServiceClient().getOptions().setProperty(HTTPConstants.REUSE_HTTP_CLIENT, true);//高并发时设置成true} catch (AxisFault e) {e.printStackTrace();}}public void execute(JobExecutionContext context) throws JobExecutionException {//crm系统中查询出请求参数String resource = "mybatis-crm-config.xml";InputStream inputStream = null;List<Satisfaction> list = new ArrayList<Satisfaction>();try {inputStream = Resources.getResourceAsStream(resource);} catch (IOException e) {e.printStackTrace();}SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession = sqlSessionFactory.openSession();DateControl dateControl = new DateControl();String searchTime =  dateControl.getHalfHourBefore();list = sqlSession.selectList("com.xzzx.liminghua.dao.SatisfactionDao.SelectSatisfactionParam", searchTime);if(!list.isEmpty()) {//调用发送短信接口SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmssSSS");SimpleDateFormat formatTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //发送接口,高并发请采用多线程提交SmsStub.Sms sms0 = new SmsStub.Sms();//重新加载数据源resource = "mybatis-amdb-config.xml";try {inputStream = Resources.getResourceAsStream(resource);} catch (IOException e1) {e1.printStackTrace();}sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);sqlSession = sqlSessionFactory.openSession();SmsStub.SmsResponse resp;int num = 0;//循环插入参数并发送短信,同时上传至数据库for(int index = 0;index<list.size();index++) {//若为军品服务不发送短信,跳过循环if(list.get(index).customerPhone.startsWith("★★★")) {continue;}//流水号String serialId = "000"+format.format(new Date());//当前发送时间String sendSmsTime = formatTime.format(new Date());//企业编号sms0.setIn0(company);//登录名sms0.setIn1(userName);//密码sms0.setIn2(pwd);//转换时间格式String receiveProblemTime = null;try {receiveProblemTime = dateControl.formateDate(list.get(index).getReceiveProblemTime());} catch (ParseException e1) {e1.printStackTrace();}//拼接短信内容sms0.setIn3("尊敬的客户,您好,您于"+receiveProblemTime+"发起的"+list.get(index).getProductId()+"("+ list.get(index).getVinName()+")信息单已服务完毕,为改善和提升服务质量,邀请您对本次服务过程进行评价: 1.非常满意  2.满意  3.不满意,回复数字即可,感谢您的支持。");//手机号码sms0.setIn4(list.get(index).getCustomerPhone());//流水号sms0.setIn5(serialId);//立即发送sms0.setIn6(sendSmsTime);//设置上传参数//将短信流水号作为唯一标识idlist.get(index).setId(serialId);//将发送信息时间赋到要插入的满意度信息中list.get(index).setSendSmsTime(sendSmsTime);sms0.setIn7("1");sms0.setIn8("");sms0.setIn9("");    //执行发送操作try {resp = stub.Sms(sms0);//发送成功if(resp.getOut().startsWith("result=0")) {//设置调研状态 0-已发送短信  1-客户已回复list.get(index).setResearchState("0");num = num+sqlSession.insert("com.xzzx.liminghua.dao.SatisfactionDao.insertToAmdb", list.get(index));sqlSession.commit();//发送失败}else {System.out.println("发送失败,错误代码:"+resp.getOut());}stub.cleanup();//使用完后cleanup} catch (RemoteException e) {e.printStackTrace();}}System.out.println("上传"+num+"条数据成功");}else {System.out.println("无可发送客户列表");}}

接收回复短信

public static String company  = "***";public static String userName = "***";public static String pwd = "***";public static SmsStub stub = null;static{try {stub = new SmsStub("http://sms.api.ums86.com:8899/sms_hb/services/Sms?wsdl");//高并发时注意使用单实例stub._getServiceClient().getOptions().setProperty(HTTPConstants.REUSE_HTTP_CLIENT, false);//高并发时设置成true} catch (AxisFault e) {e.printStackTrace();}}public void execute(JobExecutionContext context) throws JobExecutionException {//获取用户回复SmsStub.ReplyRequest replyRequest = new SmsStub.ReplyRequest();SmsStub.ReplyResponse resp1 = null;replyRequest.setIn0(company);//企业编号replyRequest.setIn1(userName);//登录名replyRequest.setIn2(pwd);//密码//存放回复信息的中间变量实例化ArrayList<ReplyInfo> replyList = new ArrayList<ReplyInfo>();//获取客户回复信息try {resp1 = stub.Reply(replyRequest);} catch (RemoteException e) {e.printStackTrace();}//执行结果System.out.println("查询客户回复完毕,结果状态代码:"+resp1.getResult());//得到客户信息并存放进中间变量SmsStub.Reply[] replys = resp1.getReplys();if(replys!=null){for(int i=0;i<replys.length;i++){ReplyInfo replyInfo = new ReplyInfo();replyInfo.setCustomerPhone(replys[i].getMdn());replyInfo.setReplyTime(replys[i].getReply_time());replyInfo.setReplyContent(replys[i].getContent());replyList.add(replyInfo);}}//调用Mybatis进行jdbc操作String resource = "mybatis-amdb-config.xml";InputStream inputStream = null;try {inputStream = Resources.getResourceAsStream(resource);} catch (IOException e1) {e1.printStackTrace();}SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession = sqlSessionFactory.openSession(false);//若存在回复信息,则执行更新操作,根据回复信息中的手机号码进行客户满意度调查数据更新if(!replyList.isEmpty()){for(int i=0;i<replyList.size();i++) {sqlSession.update("com.xzzx.liminghua.dao.SatisfactionDao.updateSatisfaction", replyList.get(i));sqlSession.commit();}}else {System.out.println("无客户回复信息");}//回复确认,以便下一次获取新的客户回复信息SmsStub.ReplyConfirmRequest confirm = new SmsStub.ReplyConfirmRequest();confirm.setIn0(company);//企业编号confirm.setIn1(userName);//登录名confirm.setIn2(pwd);//密码confirm.setIn4(resp1.getId());//上一次得到客户回复信息中最后一条的id值SmsStub.ReplyConfirmResponse resp2 = null;try {resp2 = stub.ReplyConfirm(confirm);System.out.println("确认完毕,状态代码:"+resp2.getResult());} catch (RemoteException e) {e.printStackTrace();}}

需要调用的类如图

相关的包和类都在链接里链接里 >一信通demo
突然发现上传的资源终于可以设置不要积分了哈哈哈很好很好-

联通一信通短信平台接口调用相关推荐

  1. 吉信通短信接口(HTTP协议) java

    最近学习了吉信通接口的内容,做了简单的短信对接功能.和大家分享一下吉信通短信接口(HTTP协议).吉信通官网上也有相关的代码示例. 吉信通官网:http://www.winic.org/api/Sen ...

  2. PHP调用企信通短信平台接口

    本篇文章介绍企信通(www.woxp.cn)短信平台接口的调用. 个人觉得这个平台接口的调用蛮简单的,也好用,不过得先申请好一个账号. HTML代码: <form action="{: ...

  3. 企信通短信平台接口文档

    客户接口说明 客户接口说明 1 第一章 发送接口 2 1.1 请求地址 2 1.2参数说明 2 1.3返回值 2 第二章 余额及已发送量查询接口 3 2.1 请求地址 3 2.2参数说明 3 2.3返 ...

  4. 企信通 短信接口对接

    /* 功能: 企信通PHP HTTP接口 发送短信 修改日期: 2014-03-19 说明: http://api.cnsms.cn/?ac=send&uid=用户账号&pwd=MD5 ...

  5. 一信通短信接口对接_短信接口对接

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  6. 一信通短信接口对接_如何对接短信接口

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  7. 一信通短信接口对接_对接阿里通信短信接口

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  8. 一信通短信接口对接_短信接口对接流程

    下面是php开发语言短信接口接入到项目中的demo示例: // ① 该代码仅供接入动力思维乐信短信接口参考使用,客户可根据实际需要自行编写: // ② 支持发送验证码短信.触发通知短信等: // ③ ...

  9. destoon7.0第三方短信插件下载 destoon7.0整合云信通短信平台教程

    destoon7.0整合云信通短信插件 destoon7.0完全替代官方短信插件 信通短信价格和阿里大鱼一样,到达速度也差不多,最主要的一个好处是无需设置模板,完全可以继承destoon官方默认模板. ...

最新文章

  1. python中prettytable模块_Python库: PrettyTable 模块
  2. 组件方式开发 Web App全站 学习视频 分享
  3. Node.js的安装
  4. HashMap HashTable HashSet区别剖析
  5. makefile与make
  6. [SDOI 2010]外星千足虫
  7. jquery 毫秒转换成日期_jquery js 秒 毫秒转时分秒
  8. dhcp服务器批量修改ip租期,dhcp服务器的ip地址租期默认是多久
  9. ddwrt开启USB硬盘
  10. SQL数据库的查询操作大全(select)
  11. STM8S 低功耗模式
  12. 贵州最新建筑八大员(土建)模拟真题集及答案解析
  13. WP全新COS美女写真网站整站源码+两套下载站模板
  14. 用pywinhook或pyhook监听鼠标事件
  15. 基于Matlab对三自由度并联机构的正逆解
  16. 汪磊老师整理的前端进阶课程目录
  17. 2013菏泽国际牡丹文化旅游节
  18. kali linux虚拟机镜像的安装(详细手把手教你)
  19. 在线测试输入输出语法的测试
  20. 腾讯物联网云平台 密钥 MQTT参数生成及密码加密算法实现

热门文章

  1. mysql读/写文件操作
  2. 高斯列主元消元法求解线性方程组
  3. 预约挂号系统技术点详解(一)
  4. python古诗词风格分析_2017年高考古诗词鉴赏技巧:分析语言风格题解题模式
  5. 昆仑分布式数据库Sequence功能及其实现机制
  6. 干掉iTerm,号称下一代 Terminal 终端神器,用完爱不释手
  7. tg群组大全-tg导航-TG中文导航机器人
  8. mysql数据库管理工具(navicat for mysql) 10.1.7 绿色中文版
  9. HCFT和HCFTstar在OTB数据集中测试的接口函数
  10. 背景平铺两栏自适应(占满剩余高度)fastclick、IScroll双飞翼布局