采用API方式发送,接收短信(嘉信)

API方式:

首选要在jx01移动代理服务器中进行如下配置

系统管理-->接口管理-->短信接口模块增加如下配置信息

接口编码: 
接口名称: 
接口类型:DB接口 API接口   WEB SERVICE接口   SOCKET接口  
通信能力:短信 WAP  
业务类型:CRM应用 SCM应用 ERP应用 OA应用 EMAIL应用 行业应用 其它应用
业务代码:IMMF
短信子码:22 23 24
手机指令: 
短号支持:启用   关闭
回执要求:支持回执   不支持回执
登录用户: 
登录密码: 
接口状态:运行状态   调试状态   暂停(失效)状态
失效日期: (不设置表示永久生效)

其中,接口编码,必须唯一系统内部识别码;接口名称:用于开发人员识别项目;短信子码:会加上特服号作为号码发送到用户手机上;登录用户:对于API开发中会用到;登录密码:同上API开发中会用到;接口状态:运行就是正常运行时使用,调试状态用于开发模式.

附:其他模块

系统管理-->话单管理:可以查看所有接收与发送的短信

系统管理-->通讯设置:可以查看到 SP特服号,短信网关IP,登录短信网关帐号等信息

系统管理-->设备配置管理(网管参数,设备信息,业务能力查看-确定是否开启相关的服务在配置中有用.

统计报表-->接口业务统计,可以分析发送短信的总数

 

源码分析:

 private String mobileStr = "13500000000";//手机号可用逗号分开
 private String content = "短信发送测试内容 via  IM JAVA API ";//测试的短信内容
 private long smId = 1;            //手机显示来电的尾号
 private int smType = 0;           //0:默认为短信,1:wap方式等
 private String url = "wap.myself.com";//"wap.sohu.com";      wap方式用到的网址
 private String host = "127.0.0.1";//嘉信信息机的ip
 private String dbName = "mas";        //数据库名称
 //正式
 private String apiId = "接口编码";         //信息机中定义的API接口,关键字
 private String name = "登录用户";        //信息机中API接口的用户名
 private String pwd = "登录密码";          //信息机中API接口的密码

 private APIClient handler = new APIClient();//客调用嘉信api处理类

 //线程是否启用的标识
 private boolean flag=true;
 

 // 基本参数设置
 private void ProBaseConf() {
  System.out.println("初始化连接信息");
  log.debug("初始化连接信息/n");
  // 连接配置信息
  int connectRe = handler.init(host, name, pwd, apiId, dbName);
  if (connectRe == APIClient.IMAPI_SUCC)
  {
   System.out.println("初始化成功");
   log.debug("初始化成功/n");
  }
  else if (connectRe == APIClient.IMAPI_CONN_ERR)
   log.debug("连接失败/n");
  else if (connectRe == APIClient.IMAPI_API_ERR)
   log.debug("apiID不存在/n");
 }

 

 //2009-12-24整型值的判断处理
 public int getInt(String str) {
  int ret = Integer.MIN_VALUE;
  try {
   ret = Integer.parseInt(str);
  } catch (NumberFormatException e) {
   ret = Integer.MIN_VALUE;
  }
  return ret;
 }

 

//短信发送方法

//SmsBean短信类,包括手机号,内容,序号

 public int SendMessage(SmsBean sms) {
  int resultcol = 0;
  // 当短信收发接口为空时重新初始化
  if (handler == null) {
   System.out.println("handler==null");
   ProBaseConf();
   System.out.println("handler信息:" + handler.toString());
  }

  // 发送号码,数组
  ArrayList telList = sms.getMobileNoList();
  String[] dest_Terminal_Id = new String[telList.size()];
  for (int i = 0; i < telList.size(); i++) {
   dest_Terminal_Id[i] = telList.get(i).toString();
  }

  //组装源手机号,即:短信接入号+业务号
  String tmpSrcID = null;
  if (sms.getSn().length() == 6) {
   //组装成6位,1位命令字+5位自动增加的.
   tmpSrcID = sms.getSn();//组装原发送号
  }
  if (tmpSrcID == null || tmpSrcID.trim().length() == 0
    || getInt(tmpSrcID.trim()) == Integer.MIN_VALUE) {
   tmpSrcID = "" + smId;
   //tmpSrcID = "";
  }
  //短信内容
  String tmpContent = sms.getSmsContent();
  //日志提示
  System.out.println("短信发送,手机号:"+dest_Terminal_Id.toString()+"短信尾号Long:"+Long.parseLong(tmpSrcID)+"内容:"+tmpContent);
  log.debug("短信发送,手机号:"+dest_Terminal_Id.toString()+"短信尾号Long:"+Long.parseLong(tmpSrcID)+"内容:"+tmpContent+"/n");
  //发送短信,非push wap方式
  int result = handler.sendSM(dest_Terminal_Id, tmpContent, smId, Long
    .parseLong(tmpSrcID));

  if (result == APIClient.IMAPI_SUCC) {
   System.out.println("发送成功");
   log.debug("发送成功/n");
   resultcol = 1;
  } else if (result == APIClient.IMAPI_INIT_ERR)
   log.debug("未初始化");
  else if (result == APIClient.IMAPI_CONN_ERR)
   log.debug("数据库连接失败");
  else if (result == APIClient.IMAPI_DATA_ERR)
   log.debug("参数错误");
  else if (result == APIClient.IMAPI_DATA_TOOLONG)
   log.debug("消息内容太长");
  else if (result == APIClient.IMAPI_INS_ERR)
   log.debug("数据库插入错误");
  else
   log.debug("出现其他错误");
  return resultcol;
 }

 

 

 //短信接收线程
 class RecTask extends Thread
 {
  long interval = 10000L;//时间间隔,每隔10秒钟
  public RecTask()
  {
  }
  public void run()
  {
   while(flag)
   {
    try
    {
     //关闭线程
     flag=false;
     //接收短信
     recvSM();
     //每隔
     Thread.sleep(interval);
     //启动线程
     flag=true;
    }catch(InterruptedException e)
    {
     System.out.println("线程异常"+e.toString());
    }  
   }
  }
 }
 
 /**
  * 接收短信
  */
 public void recvSM() {
  // 当短信收发接口为空时重新初始化
  if (handler == null) {
   System.out.println("handler==null");
   ProBaseConf();
   System.out.println("handler信息:" + handler.toString());
  }
  
  MOItem[] mos = handler.receiveSM();
  if (mos == null) {
   log.debug("未初始化或接收失败/n");
   return;
  } else if (mos.length != 0) {
   try{
    RecPro(mos);//对于接收的短信进行处理
   }catch(Exception e)
   {
    log.debug("处理接收短信异常:"+e.toString());
   }
  }
 }

 

 

//构造函数

public ClassName(){

  ProBaseConf();
  //启动接收短信线程
  RecTask rt=new RecTask();
  rt.start();

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/45403.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

免费短信接口

话不多说&#xff0c;自己短信量太多了&#xff0c;快过期了&#xff0c;提供自己的免费云短信接口和测试窗口&#xff0c;想用的直接调我接口就行。 ps&#xff1a;不打马赛克不能发出来图&#xff1b;参数传递的id说一下&#xff0c;注册就传1173965&#xff0c;登录传&#…

解决微信“聊天界面中的新消息通知”设置按钮不见了问题

原因 解决微信“聊天界面中的新消息通知”设置按钮不见了问题 解决方法 开启“接收新消息通知”后&#xff0c;“聊天界面中的新消息通知”设置按钮就会出现

Android使用通知(Notification)——方法过时的解决办法

今天照着《Android第一行代码第二版-郭霖》把通知那部分的代码实现了一下&#xff0c;结果发现 Notification notification new NotificationCompat.Builder(this)过时了。 我查了一下开发者文档&#xff0c;根据文档可以看到public Builder (Context context)已经过时了&…

企业微信客户群事件通知

企业微信: https://work.weixin.qq.com/ 概述 企业微信在推送消息给企业时&#xff0c;会对消息内容做AES加密&#xff0c;以XML格式POST到企业应用的URL上。 企业在被动响应时&#xff0c;也需要对数据加密&#xff0c;以XML格式返回给企业微信。 通知回调地址配置 获取access…

Android APP被关闭后无法收到推送消息(尝试)

1. Android端进程被杀死后&#xff0c;目前自带的保护后台接收消息活跃机制。暂时没有什么好的机制保持任何情况下都活跃 文章参考&#xff1a;http://blog.csdn.net/marswin89/article/details/50917098 android原生系统用home键杀进程可以起来&#xff0c;如果是强行停止…

通知与服务——消息通知——通知推送Notification

手机通知栏存放的是App主动推给用户的提醒消息&#xff0c;每条消息包括消息图标、消息标题、消息内容等&#xff0c;这些消息元素由通知建造器Notification.Builder设定。 常用方法如下&#xff1a; setSmallIcon&#xff1a;设置应用名称左边的小图标。setLargeIcon&#xff…

Android Notification(通知消息)

Android Notification通知消息 Android Notification(通知消息)样式一、核心文件源码二、主界面页面三、单击通知跳转的Activity四、单击通知跳转的页面五、最终效果 Android Notification(通知消息)样式 ① 为小图标 ② 为App名称 ③ 为标题 ④ 为内容 ⑤ 为大图标 一、核心文…

Android直接回复通知

Android直接回复通知 通知直接回复 Android N/7.0 Android直接回复通知 前言创建通知 创建notification对象添加一个Action添加一个广播接收Action事件添加直接回复输入框把直接回复的内容发送到广播接收器结合Hands Up带来超棒的用户体验 Hands Up直接回复通知不消失的问题总结…

Android 实现微信,QQ的程序前后台切换:back键切换后台;点击通知栏恢复前台。

实现类似微信&#xff0c;QQ的前后台切换&#xff1a;back键切换后台&#xff1b;点击通知栏恢复前台。 1、back键切换后台的实现&#xff1a; 这个实现需要在主activity重写onbackpressed()方法。代码如下&#xff1a; Overridepublic void onBackPressed() {Intent intent…

Python源码学习笔记:Python虚拟机

Python虚拟机 注&#xff1a;本篇是根据教程学习记录的笔记&#xff0c;部分内容与教程是相同的&#xff0c;因为转载需要填链接&#xff0c;但是没有&#xff0c;所以填的原创&#xff0c;如果侵权会直接删除。此外&#xff0c;本篇内容大部分都咨询了ChatGPT&#xff0c;为笔…

Windows PyCharm 2022/2023 使用Centos7 的虚拟环境 venv 实现文件实时同步 代码代码Git自动识别 解决 Samba Cannot Save File 的问题

前期准备 git报错 fatal: unsafe repository 解决方法 因为是远程文件夹&#xff0c;老版本时没这个问题&#xff0c;新版本git或者pycharm有这个限制&#xff0c;不能自动识别更改的代码&#xff0c;报unsafe.directory的问题&#xff0c;直接暴力解决&#xff0c;加* git c…

接口间参数传递的一种解决方案

引言 做过接口自动化测试的同学肯定都熟悉在全链路测试过程中&#xff0c;很多业务场景的完成并非由单一接口实现&#xff0c;而是由很多接口组成的一条链路实现。例如你在淘宝上购物场景。 不同于单接口测试&#xff0c;这种链路型的接口自动化测试&#xff0c;由于接口间有参…

计算机应用设计大赛获奖信息,北京大学第六届“计算机应用设计大赛”圆满落幕...

6月6日下午&#xff0c;北京大学创新创意系列赛事颁奖典礼在英杰交流中心月光厅举行&#xff0c;会上颁发了计算机应用设计大赛、“挑战杯”系列竞赛、数学建模与计算机应用竞赛和“禁毒教育”创意大赛四项赛事的各类奖项。信息科学技术学院2013级本科生王迪作为获奖代表上台领…

魔物学院计算机,测试 | 你属于魔法学校什么学院的?

原标题&#xff1a;测试 | 你属于魔法学校什么学院的&#xff1f; 本Part长年主持&#xff1a;绿茶 本Part今日主人公&#xff1a;心理测试 如果你有机会在霍格沃茨魔法学校读书,依据你的性格,分院帽会把你分到哪个学院呢?你适合哪个学院呢?是高贵的斯莱特林,还是勇敢的格兰芬…

uniapp 微信小程序通过 wx.openCustomerServiceChat对接客服。

直接上解决方案&#xff0c;直接在绑定的方法中调用wx.openCustomerServiceChat 方法即可。 需要注意的几点。 hbuilder x 需升级到 3.4.3 版本以上。使用的&#xff0c;微信开发者工具中是看不到效果的&#xff0c;需要打包后&#xff0c;在微信中扫码查看。&#xff08;体验…

微软丢出王炸:微软发布重磅更新Windows Copilot

在今天凌晨结束的微软 Build 2023 大会上&#xff0c;微软发布了重磅更新Windows Copilot. 微软此前把 GPT-4 接入Office 套件而推出的 Copilot&#xff0c;将全面集成到 Windows 系统。 Windows Copilot 注册直通&#xff1a; https:/forms.office.com/pages/responsepage.asp…

仿QQ聊天程序

仿QQ聊天程序 转载请标明出处&#xff1a;牟尼的专栏 http://blog.csdn.net/u012027907 一、设计内容及要求 1.1综述 A.系统概述 我们要做的就是类似QQ这样的面向企业内部的聊天软件&#xff0c;基本功能和QQ类似。首先&#xff0c;系统分为两大部分&#xff0c;第一部分是…

仿微信语音聊天

如上图&#xff0c;是常见的仿微信的聊天程序&#xff0c;实现的效果如上图所示&#xff0c;由于项目太大&#xff0c;本文只讲录音部分。本项目示例代码&#xff1a;https://github.com/xiangzhihong/weixinAudio 主要用到4个核心类&#xff1a; 自定义录音按钮&#xff08;R…

Android 仿微信实现语音聊天功能

在此感谢鸿洋大神&#xff0c;因为我这是在慕课上看大神的视频做出来的。 代码中我已经添加了很多很多注释&#xff0c;不光是为了大家&#xff0c;也是为了自己能够更加透彻的理解该功能 支持原创&#xff0c;也不算原创了哈哈~ http://blog.csdn.net/lhk147852369/article/…

【Unity人物动画】SALSA With RandomEyes (语音生成嘴型/人物说话) 使用

SALSA使用探索 之前做项目时想实现人物说话的效果&#xff0c;因为我们的语音是AI合成的&#xff0c;有很多片段&#xff0c;如果能根据语音生成嘴部的动画&#xff0c;那将极大便利我们的工作。后面是找到了SALSA的这款插件&#xff0c;并摸索出使用方法。 1 插件介绍 官方网…