cmpp3.0 java 华为_CMPP3.0/2.0完成短信收发功能(引用华为smsproxy开发包)
配置文件:
10
10
5
10
1
true
java代码:
Args args1 = new Cfg(“classpath:cmpp.xml”).getArgs(“ismg”);
args1.set(“source-addr”,simSupplier.getSmsAccount());
args1.set(“shared-secret”,simSupplier.getSmsPwd());
SMProxy30 smProxy = new SMProxy30(args1){
@Override
public CMPPMessage onDeliver(CMPP30DeliverMessage msg) {
//复写方法 主要是用来做接收短信
int commandId = msg.getCommandId();
if (commandId==5){
String intoNo=msg.getSrcterminalId();
String content="";
if (msg.getRegisteredDeliver() == 0) {
try {
if (msg.getMsgFmt() == 8) {
LOGGER.info(String.valueOf(String.valueOf((new StringBuffer("接收消息: 主叫号码=")).append(msg.getSrcterminalId()).append(";内容=").append(new String(msg.getMsgContent(), "UTF-16BE")))));
content=new String(msg.getMsgContent(), "UTF-16BE");
} else {
LOGGER.info(String.valueOf(String.valueOf((new StringBuffer("接收消息: 主叫号码=")).append(msg.getSrcterminalId()).append(";内容=").append(new String(msg.getMsgContent())).append(";destterm=").append(new String(msg.getDestnationId())).append(";serviceid=").append(new String(msg.getServiceId())).append(";tppid=").append(msg.getTpPid()).append(";tpudhi=").append(msg.getTpUdhi()).append(";msgfmt").append(msg.getMsgFmt()).append(";srctermid=").append(new String(msg.getSrcterminalId())).append(";deliver=").append(msg.getRegisteredDeliver()).append(";msgcontent=").append(new String(msg.getMsgContent())).append(";LinkID=").append(new String(msg.getLinkID())))));
content=new String(msg.getMsgContent());
}
TradeSmsMsg smsMsg = new TradeSmsMsg();
smsMsg.setId(IdCreateUtil.getId());
smsMsg.setSendIntoNo(intoNo);
smsMsg.setSendState(2);
smsMsg.setMsg(content);
smsMsg.setCreateTime(new Date());
smsMsg.setReceiveIntoNo(intoNo);
smsMsg.setRemark("接收成功");
//插入记录
smsMsgMapper.insertSelective(smsMsg);
} catch (Exception var4) {
var4.printStackTrace();
}
} else {
// LOGGER.info(String.valueOf(String.valueOf((new StringBuffer("收到状态报告消息: stat=")).append(new String(msg.getStat())).append("dest_termID=").append(new String(msg.getDestTerminalId())).append(";destterm=").append(new String(msg.getDestnationId())).append(";serviceid=").append(new String(msg.getServiceId())).append(";tppid=").append(msg.getTpPid()).append(";tpudhi=").append(msg.getTpUdhi()).append(";msgfmt").append(msg.getMsgFmt()).append(";srctermid=").append(new String(msg.getSrcterminalId())).append(";deliver=").append(msg.getRegisteredDeliver()).append(";LinkID=").append(new String(msg.getLinkID())))));
}
}
LOGGER.info("接收到网关消息:{}",new String(msg.getMsgContent()));
return super.onDeliver(msg);
}
};
//此处为发送短信
String[] dest_Terminal_Id ={innoNo};
byte[] msg_Content = dto.getMsg().getBytes("gb2312");
CMPP30SubmitMessage submitMsg = new CMPP30SubmitMessage(
0x01,//@pk_Total 相同msg_Id消息总条数,短短信这里是1
0x01,//@pk_Number 相同msg_Id的消息序号
0x01,//@registered_Delivery 是否要求返回状态报告
0x01,//@msg_Level 信息级别
simSupplier.getSmsServiceId(),// @service_Id 业务类型 用户自定义 用来分类查询
0x00,//@fee_UserType 0对目的终端计费;1对源终端计费;2对SP计费;
innoNo,//@fee_Terminal_Id 被计费用户的号码 update
0x00, //fee_Terminal_Type add
0x00,//@tp_Pid GSM协议类型 一般文本的时候设0,铃声图片设1
0x00,//@tp_Udhi GSM协议类型 0不包含头部信息 1包含头部信息
0x00,//@msg_Fmt 消息格式 15 ,中文 要用8
simSupplier.getSmsMsgSrc(),//@msg_Src 消息内容来源 6位的企业代码,这里需修改
"01",// @fee_Type 资费类别 一般为02:按条计信息费
"0",//@fee_Code 资费代码(以分为单位)
null,//@valid_Time 存活有效期
null,//@at_Time 定时发送时间
simSupplier.getSmsSrcTerminalId(),//@src_Terminal_Id 移动所提供的服务代码 此处需修改 1064899168477
dest_Terminal_Id,//@dest_Terminal_Id 接收业务的MSISDN号码,就是接收短信的手机号,String数组
0x00, //dest_Terminal_Type 接收号码类型 add
msg_Content,//@msg_Content 消息内容 byte[],发送的消息内容,需要转化为byte[]
"" //预留
);
CMPP30SubmitRepMessage sub = (CMPP30SubmitRepMessage)smProxy.send(submitMsg);//这里的smProxy就是第2点中用单例创建的smProxy对象
LOGGER.info("CMPP返回信息为{}",sub);
LOGGER.info("CMPP返回信息为{}",sub.toString());
System.out.println(sub);
if(sub.getResult() == 0){//表示发送成功
tradeSmsMsg.setSendState(1);
tradeSmsMsg.setRemark("发送成功");
}else {
tradeSmsMsg.setRemark("发送失败!");
tradeSmsMsg.setSendState(1);
}
以上还有自己建的类,如有不明白,可留下回复 一一解答;
cmpp3.0 java 华为_CMPP3.0/2.0完成短信收发功能(引用华为smsproxy开发包)相关推荐
- Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用...
近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口,下面我把我在项目中用到的记录一下,以便给大家提供个思路,由于本人的文采有限, ...
- Java调用WebService接口实现发送手机短信验证码功能
为什么80%的码农都做不了架构师?>>> 一.样式示例: 二.前台的注册页面的代码:reg.jsp <%@ page language="java" ...
- 手机同步软件(PhoneSync2.0)--新增短信接收功能
前一篇文章"PyQt开发的手机同步软件(方便的电话本编辑和短信群发功能)"发布了自己写的款手机同步软件,前两天有朋友对该软件提出了一些建议,于是就针对性的改了改,主要是添加了短信接 ...
- SpringBoot下实现华为云短信验证功能(含代码)
准备工作 登入华为云控制台,找到"消息&短信"模块,找到国内短信(本次开发只针对国内用户),下面分别有 应用管理–签名管理–模板管理 三块 自上而下依次添加应用,首先是 应 ...
- java实现基于SGIP协议开发联通短信的方法
本文实例讲述了java实现基于SGIP协议开发联通短信的方法.分享给大家供大家参考.具体如下: 近段时间,由于公司的业务需要,开发出了联通短信.此文章的编写也是根据网上的一些示例来完成的.闲话少说,下 ...
- java调接口实现发送手机短信验证码功能,手机验证码,接口调用
原文地址: http://blog.csdn.net/sxdtzhaoxinguo/article/details/34437591 近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用 ...
- Java使用华软通信能力平台实现短信发送
根据项目及客户需求,集成华软通信短信网关,实现短信发送功能,具体实现流程如下如下: 1.登录华软通信能力平台,配置相关免审核短信模板 在配置的时候,需要注意的是,如果短信内容中包含有敏感字符,比如&q ...
- java短信验证码功能发送的验证码如何校验_java 实现发送短信验证码功能
原标题:java 实现发送短信验证码功能 如何使用java + maven的项目环境发送短信验证码,本文使用的是榛子云短信 的接口. 1. 安装sdk 下载地址: http://smsow.zhenz ...
- JAVA接入短信接口,实现短信验证码功能
最近网站要加短信验证功能,不得不要折腾一番.好了,不多说了,说一下过程.首先是短信服务商的选择,以前没接触过,只能找度娘了,找了三家,对比一下. 价格: 1.秒嘀科技 - 短信接口.短信验证码.语音验 ...
- java短信验证码功能发送的验证码如何校验_Java实现发送短信验证码功能
一个发送短信验证码的功能,使用的是信易通的短信平台接口,然后在Java中使用HttpClient模拟POST请求或者GET请求(看短信平台要求,一般的情况下都是POST请求),调用短信平台提供的接口( ...
最新文章
- Nagios系统监控软件的安装设置(4)
- 你觉得什么才是 Java 的基础知识?
- Manjaro使用笔记-使用中国源的方法
- finalize方法_final,finally,finalize三者的含义和区别
- C++工作笔记-设计普通类的格式,实现简单工厂中接口的定义
- 根据选择计算Mask值
- S1:动态方法调用:call apply
- 深度学习自学(三十):基于深度学习误排序学习的行人重识别对抗攻击
- SharedMaterial的一些问题
- 《QQ欢乐斗地主》山寨版
- 入手 M1 Mac 之前,你可以通过这个工具了解常用软件兼容性
- 设置PyCharm相同词汇高亮
- EM 算法求解高斯混合模型python实现
- 制作MHDD启动U盘
- java blog 引擎_推荐10个Java开源CMS系统
- 学习笔记(26):NumPy数据分析-NumPy 统计函数-var方差
- 市场调研-全球与中国汽车零部件涂层市场现状及未来发展趋势
- mysql中1和0分别代表什么
- mysql对比时间段百分比_如何使用MySQL计算每日最高价格变化百分比?
- 罗马数字到底是怎么组成的(内容详细)