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();

}

采用API方式发送,接收短信(嘉信)相关推荐

  1. Android发送接收短信的代码示例

    1.SMS Activity 短信发送Class package cn.dccssq; import java.util.List; import android.app.Activity; impo ...

  2. php 对接 新酷卡,新酷卡socket对接支持读取信息发送/接收短信及参数命令

    参数命令 SOCKET接口使用说明 功能说明:新酷卡可以作为服务端,实现SOCKET通讯,实现三大功能: 1> 支持端口信息和新短xin主动上报. 2> 客户端可以向新酷卡软件发送xx,提 ...

  3. win32 串口阻塞的方式发送接收数据

    参考博文 https://blog.csdn.net/liuzhuomju/article/details/7479507 #pragma once #define RX_CHAR WM_USER+1 ...

  4. 手机收不到第三方发送的短信及验证码

    一. 问题描述 在手机App上都会有给手机号发送验证码的功能,一般都是找手机短信平台的第三方供应商, 通过接口的方式发送手机短信及验证码. 今天一个上线的项目反馈说156xxxxxxxx收不到我们系统 ...

  5. 树莓派+4G模块接收短信实时转发到邮箱

    概述 在该文档中,将使用树莓派(linux).4G模块等设备,即时将SIM卡收到的短信转发到个人邮箱. 由于手机仅支持单卡,副卡需要及时接受短信.曾用旧手机加绿芽app的方案,通过绿芽微信公众号接收短 ...

  6. springMVC+阿里云API = 实现发送手机验证码短信

    springMVC+阿里云API = 实现发送手机验证码短信 前段时间vue框架做了一个旅游APP软件,其中在用户登录APP的时候,我不仅提供了用户可以自己手动先去注册账号在进行登陆App.然后我还提 ...

  7. Android中发送和接收短信

    在做Android开发中经常要用到短信的发送和短信的接收,调用Android提供的api实现起来很简单,今天要用到这个功能研究了一下顺便写下来加强一下记忆. 1.首先创建一个Android Proje ...

  8. twilio php 发送短信,如何接收短信到一个twilio号码

    Twilio福音传教士在这里. Twilio通知您​​传入短信和传入语音电话呼叫的方式是使用称为webhook的东西.这基本上是Twilio对您告诉我们的URL所做的HTTP请求.通常,这个网址是您创 ...

  9. 计算机控制手机短信的接收代码,计算机发送手机短信的C++程序

    手机短信已经成为当今的流行时尚,但怎样在计算机之间体验短信的方便与快捷呢?其实我们利用Windows 2000提供的信使服务就可以自制一个短信发送程序,令笔者最为得意的是它几乎可以穿越各种网络防火墙, ...

最新文章

  1. 图像的上采样和下采样
  2. win8 远程桌面时提示凭证不工作问题的终极解决办法
  3. vs2008编译中文变量名的lua解释器环境
  4. 使用注解 @requires 给 SAP CAP CDS 模型添加权限控制
  5. bitmapdata的知识点
  6. spring mvc学习(34):restful的delete
  7. Linux基本操作——VI和VIM
  8. 3GPP realease 5G realease
  9. 谱比法计算岩石的品质因子的c语言程序,地层品质因子计算方法及系统与流程...
  10. 深入浅出——搞懂卷积神经网络的过拟合、梯度弥散、batchsize的影响的问题
  11. jQuery/javascript实现全选全不选
  12. DataSet和实体类的相互转换
  13. Java权限管理系统之代码实现(二)
  14. 教育未来JAVA培训中心笔记(一):初学者如何学好JAVA
  15. HP 打印机驱动安装报错Return code: 1603解决办法
  16. 基于Android studio+SSH的单词记忆(背单词)APP设计
  17. 完全卸载VMware
  18. Android开发应该用什么语言
  19. Vmware Ubuntu虚拟机磁盘扩容(非常简单)
  20. 评估行人行动预测的基准——Benchmark for Evaluating Pedestrian Action Prediction

热门文章

  1. 精心整理的超好的共享文库
  2. Kaldi运行thchs30中文语音识别教程
  3. 数据库show的用法
  4. c语言常量中有负数吗,c语言能对负数求余吗 在c语言中是什么意思
  5. 用PPA下载codeblocks
  6. PPLive for Ubuntu Linux
  7. ValueError: source code string cannot contain null bytes
  8. matlab实现dijkstra算法(.m文件可直接运行)
  9. Package is in a very bad inconsistent state
  10. Android 外卖订餐APP开发