联通长短信开发--使用smproxyapi.jar
- - ITeye博客联通短信是基于sgip协议的,作为第三方接入使用的是smproxyapi.jar包来开发短信功能. 联通普通短信长度是140字节,超长就会报错不能提交给网关. 起初规避措施是自己把长短信拆分,然后分条发送,这样手机用户接收到的就是多条短信,体验不好. 后来通过查资料发现可以使用udhi头来使多条短信最终能合成一条短信展示给手机用户.
// 头信息。包头一共6个字节,如下: // 1、字节一:包头长度,固定填写0x05; // 2、字节二:包头类型标识,固定填写0x00,表示长短信; // 3、字节三:子包长度,固定填写0x03,表示后面三个字节的长度; // 4、字节四到字节六:包内容: // 1)字节四:长消息参考号,每个SP给每个用户发送的每条参考号都应该不同,可以从0开始,每次加1,最大255,便于同一个终端对同一个SP的消息的不同的长短信进行识别; // 2)字节五:本条长消息的的总消息数,从1到255,一般取值应该大于2; // 3)字节六:本条消息在长消息中的位置或序号,从1到255,第一条为1,第二条为2,最后一条等于第四字节的值。 byte[] tp_udhiHead = new byte[6]; tp_udhiHead[0] = 0x05; tp_udhiHead[1] = 0x00; tp_udhiHead[2] = 0x03; tp_udhiHead[3] = 0x00;// 初始化,后面会具体赋值 tp_udhiHead[4] = 0x00;// 初始化,后面会具体赋值。 tp_udhiHead[5] = 0x00;// 初始化,后面会具体赋值。
tp_udhiHead[3] = (byte)(int)(Math.random() * 255);