配置文件:

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开发包)相关推荐

  1. Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用...

    近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口,下面我把我在项目中用到的记录一下,以便给大家提供个思路,由于本人的文采有限, ...

  2. Java调用WebService接口实现发送手机短信验证码功能

    为什么80%的码农都做不了架构师?>>>    一.样式示例: 二.前台的注册页面的代码:reg.jsp <%@ page language="java" ...

  3. 手机同步软件(PhoneSync2.0)--新增短信接收功能

    前一篇文章"PyQt开发的手机同步软件(方便的电话本编辑和短信群发功能)"发布了自己写的款手机同步软件,前两天有朋友对该软件提出了一些建议,于是就针对性的改了改,主要是添加了短信接 ...

  4. SpringBoot下实现华为云短信验证功能(含代码)

    准备工作 登入华为云控制台,找到"消息&短信"模块,找到国内短信(本次开发只针对国内用户),下面分别有 应用管理–签名管理–模板管理 三块 自上而下依次添加应用,首先是 应 ...

  5. java实现基于SGIP协议开发联通短信的方法

    本文实例讲述了java实现基于SGIP协议开发联通短信的方法.分享给大家供大家参考.具体如下: 近段时间,由于公司的业务需要,开发出了联通短信.此文章的编写也是根据网上的一些示例来完成的.闲话少说,下 ...

  6. java调接口实现发送手机短信验证码功能,手机验证码,接口调用

    原文地址:  http://blog.csdn.net/sxdtzhaoxinguo/article/details/34437591 近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用 ...

  7. Java使用华软通信能力平台实现短信发送

    根据项目及客户需求,集成华软通信短信网关,实现短信发送功能,具体实现流程如下如下: 1.登录华软通信能力平台,配置相关免审核短信模板 在配置的时候,需要注意的是,如果短信内容中包含有敏感字符,比如&q ...

  8. java短信验证码功能发送的验证码如何校验_java 实现发送短信验证码功能

    原标题:java 实现发送短信验证码功能 如何使用java + maven的项目环境发送短信验证码,本文使用的是榛子云短信 的接口. 1. 安装sdk 下载地址: http://smsow.zhenz ...

  9. JAVA接入短信接口,实现短信验证码功能

    最近网站要加短信验证功能,不得不要折腾一番.好了,不多说了,说一下过程.首先是短信服务商的选择,以前没接触过,只能找度娘了,找了三家,对比一下. 价格: 1.秒嘀科技 - 短信接口.短信验证码.语音验 ...

  10. java短信验证码功能发送的验证码如何校验_Java实现发送短信验证码功能

    一个发送短信验证码的功能,使用的是信易通的短信平台接口,然后在Java中使用HttpClient模拟POST请求或者GET请求(看短信平台要求,一般的情况下都是POST请求),调用短信平台提供的接口( ...

最新文章

  1. Nagios系统监控软件的安装设置(4)
  2. 你觉得什么才是 Java 的基础知识?
  3. Manjaro使用笔记-使用中国源的方法
  4. finalize方法_final,finally,finalize三者的含义和区别
  5. C++工作笔记-设计普通类的格式,实现简单工厂中接口的定义
  6. 根据选择计算Mask值
  7. S1:动态方法调用:call apply
  8. 深度学习自学(三十):基于深度学习误排序学习的行人重识别对抗攻击
  9. SharedMaterial的一些问题
  10. 《QQ欢乐斗地主》山寨版
  11. 入手 M1 Mac 之前,你可以通过这个工具了解常用软件兼容性
  12. 设置PyCharm相同词汇高亮
  13. EM 算法求解高斯混合模型python实现
  14. 制作MHDD启动U盘
  15. java blog 引擎_推荐10个Java开源CMS系统
  16. 学习笔记(26):NumPy数据分析-NumPy 统计函数-var方差
  17. 市场调研-全球与中国汽车零部件涂层市场现状及未来发展趋势
  18. mysql中1和0分别代表什么
  19. mysql对比时间段百分比_如何使用MySQL计算每日最高价格变化百分比?
  20. 罗马数字到底是怎么组成的(内容详细)

热门文章

  1. Idea如何设置页面内容模板
  2. Java突击学习 Day2 Part1
  3. IDEA炫酷主题推荐!非常好看!
  4. 新买的笔记本电脑怎么分盘_2020年笔记本电脑选购有哪些建议和推荐?
  5. AI 人工智能学习之微积分
  6. WPS 2019 用户界面分析
  7. 超实用oracle数据库可视化管理工具
  8. Chrome 插件PPAPI 开发(一)环境搭建
  9. 购票系统c语言座位分配,铁路购票系统的简单座位分配算法
  10. IntelliJ IDEA 使用教程(2019图文版)