采用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();
}
采用API方式发送,接收短信(嘉信)相关推荐
- Android发送接收短信的代码示例
1.SMS Activity 短信发送Class package cn.dccssq; import java.util.List; import android.app.Activity; impo ...
- php 对接 新酷卡,新酷卡socket对接支持读取信息发送/接收短信及参数命令
参数命令 SOCKET接口使用说明 功能说明:新酷卡可以作为服务端,实现SOCKET通讯,实现三大功能: 1> 支持端口信息和新短xin主动上报. 2> 客户端可以向新酷卡软件发送xx,提 ...
- win32 串口阻塞的方式发送接收数据
参考博文 https://blog.csdn.net/liuzhuomju/article/details/7479507 #pragma once #define RX_CHAR WM_USER+1 ...
- 手机收不到第三方发送的短信及验证码
一. 问题描述 在手机App上都会有给手机号发送验证码的功能,一般都是找手机短信平台的第三方供应商, 通过接口的方式发送手机短信及验证码. 今天一个上线的项目反馈说156xxxxxxxx收不到我们系统 ...
- 树莓派+4G模块接收短信实时转发到邮箱
概述 在该文档中,将使用树莓派(linux).4G模块等设备,即时将SIM卡收到的短信转发到个人邮箱. 由于手机仅支持单卡,副卡需要及时接受短信.曾用旧手机加绿芽app的方案,通过绿芽微信公众号接收短 ...
- springMVC+阿里云API = 实现发送手机验证码短信
springMVC+阿里云API = 实现发送手机验证码短信 前段时间vue框架做了一个旅游APP软件,其中在用户登录APP的时候,我不仅提供了用户可以自己手动先去注册账号在进行登陆App.然后我还提 ...
- Android中发送和接收短信
在做Android开发中经常要用到短信的发送和短信的接收,调用Android提供的api实现起来很简单,今天要用到这个功能研究了一下顺便写下来加强一下记忆. 1.首先创建一个Android Proje ...
- twilio php 发送短信,如何接收短信到一个twilio号码
Twilio福音传教士在这里. Twilio通知您传入短信和传入语音电话呼叫的方式是使用称为webhook的东西.这基本上是Twilio对您告诉我们的URL所做的HTTP请求.通常,这个网址是您创 ...
- 计算机控制手机短信的接收代码,计算机发送手机短信的C++程序
手机短信已经成为当今的流行时尚,但怎样在计算机之间体验短信的方便与快捷呢?其实我们利用Windows 2000提供的信使服务就可以自制一个短信发送程序,令笔者最为得意的是它几乎可以穿越各种网络防火墙, ...
最新文章
- 图像的上采样和下采样
- win8 远程桌面时提示凭证不工作问题的终极解决办法
- vs2008编译中文变量名的lua解释器环境
- 使用注解 @requires 给 SAP CAP CDS 模型添加权限控制
- bitmapdata的知识点
- spring mvc学习(34):restful的delete
- Linux基本操作——VI和VIM
- 3GPP realease 5G realease
- 谱比法计算岩石的品质因子的c语言程序,地层品质因子计算方法及系统与流程...
- 深入浅出——搞懂卷积神经网络的过拟合、梯度弥散、batchsize的影响的问题
- jQuery/javascript实现全选全不选
- DataSet和实体类的相互转换
- Java权限管理系统之代码实现(二)
- 教育未来JAVA培训中心笔记(一):初学者如何学好JAVA
- HP 打印机驱动安装报错Return code: 1603解决办法
- 基于Android studio+SSH的单词记忆(背单词)APP设计
- 完全卸载VMware
- Android开发应该用什么语言
- Vmware Ubuntu虚拟机磁盘扩容(非常简单)
- 评估行人行动预测的基准——Benchmark for Evaluating Pedestrian Action Prediction