资源描述
深圳百利通科技有限公司
无线信息数据库接口
应用程序
使
用
说
明
书
版权所有:深圳百利通科技有限公司
二〇一二年三月
目 录
一、简介 2
二、使用方法说明 2
2.1 java虚拟环境配置 2
2.2 数据库安装、建表、配置 2
2.3 运行接口应用程序 2
三、功能实现方法 2
3.1 发送普通短信 2
3.2 发送长短信 2
3.3 发送彩信 2
3.4 查询提交状态 2
3.5 接收信息 2
附录 彩信信息文件类型及格式 2
1.支持文件类型 2
2.SMIL彩信结构文件 2
一、简介
本彩短信客户端数据库接口是一款基于深圳百利通科技有限公司自研全网信息管理平台数据库所开发的接口应用程序。彩短信客户端数据库接口程序通过IP网络连接到全网信息管理平台中心服务器后,应用系统向数据库读写记录即可实现短信、彩信收发功能。
彩短信客户端数据库接口应用程序,具备短信彩信发送、接收功能开发接口,接口调用通过数据库数据交换完成。具备的特点如下:
1、绿色版免安装应用接口,只需简单的配置即可完成接口调试与运行。
2、操作系统独立性,在unix、linux、windows下都能正常运行。
3、全网信息收发服务,三大运营商手机号码都能正常实现接收服务。
二、使用方法说明
2.1 java虚拟环境配置
安装jdk1.6版本,进行相关环境变量配置。
2.2 数据库安装、建表、配置
本系统需在数据库环境下运行,支持MySQL、SQLServer、Oracle等主流数据库。数据库安装完成后,创建表sendmsg、receivemsg;详细字段说明如下:
表名:sendmsg (发送信息表) 注:列名必须全部大写,编码统一为utf-8
列名
类型
长度
是否可以为空
注译
MSGINDEX
整数
11
否
信息编号,主键
PHONENUMBERPATH
字符串
120
否
11位手机号码txt文件绝对路径(一行一个号码)
MSGTITLE
字符串
900
否
彩信标题或短信内容
MMSINFOFILE
字符串
120
是
彩信smil文件所在的绝对路径
MSGSTATUS
字符
1
否
信息状态;0:未提交,1:提交成功,2:提交失败
MSGTYPE
字符
1
否
信息类型;0:彩信,1:普通短信,2:长短信息
MSGSENDTIME
字符串
20
是
信息定时发送时间,格式为:yyyy-MM-dd HH24:mm:ss
MSGSENDCHANNEL
字符串
120
是
信息发送所用通道,多通道以,隔开
SERVERMSGID
整数
11
是
服务器端返回的信息编号
MSGSUBMITREPORT
字符串
4
是
信息提交报告,详情请见附表
SUCCESSPHONEPATH
字符串
120
是
提交成功的手机号码存放路径(服务器端返回提交成功号码详情)
MSGKEYWORD
字符串
120
是
信息所包含的敏感词
MSGSUBMITPHONELOG
字符串
120
是
信息提交号码记录,格式为:成功号码数,重复号码数,错误号码数
MSGSUBMITTIME
字符串
20
是
信息提交时间
表名:receivemsg (接收信息表) 注:列名必须全部大写,编码统一为utf-8
列名
类型
长度
是否可以为空
注译
ID
字符串
15
否
唯一标识ID号,主键
MSGINDEX
整数
11
否
所返回的信息编号,与sendmgs表的MSGINDEX是对应的
PHONENUMBER
字符串
11
否
手机号码
MSGTITLE
字符串
900
否
短信回复内容或回复彩信标题
MMSINFOFILE
字符串
120
是
彩信smil文件存放路径
MSGTYPE
字符
1
否
信息类型;0:彩信,1:短信
RECEIVETIME
字符串
20
否
信息接收时间,格式为:yyyy-MM-dd HH24:mm:ss
修改应用程序
phonedb\webapps\phoneclient\WEB-INF\classes
下的jdbc.properties文件,用记事本打开即可。
#MySQL
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc\:mysql\://localhost\:3306/phonedb?useUnicode\=true&characterEncoding\=UTF-8
jdbc.username=root
jdbc.password=123456
jdbc.hibernate.dialect=org.hibernate.dialect.MySQLDialect
以上是MySQL数据库的配置,其中红色部分可自行设置。
#SQLServer
jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.url=jdbc:sqlserver://localhost:1433;DatabaseName=phonedb
jdbc.username=root
jdbc.password=123456
jdbc.hibernate.dialect=org.hibernate.dialect.SQLServerDialect
以上是SQLServer数据库的配置,其中红色部分可自行设置。
#Oracle
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:sqlserver://localhost:1521;DatabaseName=phonedb
jdbc.username=root
jdbc.password=123456
jdbc.hibernate.dialect=org.hibernate.dialect.OracleDialect
以上是SQLServer数据库的配置,其中红色部分可自行设置。
MySQL建表语句:
DROP TABLE IF EXISTS `receivemsg`;
CREATE TABLE `receivemsg` (
`ID` varchar(13) NOT NULL COMMENT '主键',
`MSGINDEX` int(11) NOT NULL COMMENT '信息编号',
`PHONENUMBER` varchar(11) NOT NULL COMMENT '发送信息的手机号码',
`MSGTITLE` varchar(360) NOT NULL COMMENT '短信的内容或彩信的标题',
`MMSINFOFILE` varchar(120) default NULL COMMENT '接收到的彩信信息文件路径名',
`MSGTYPE` char(1) NOT NULL COMMENT '信息类型,0:彩信;1:短信',
`RECEIVETIME` varchar(20) NOT NULL COMMENT '信息接收时间,格式为yyyy-MM-dd HH24:mm:ss',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `sendmsg`;
CREATE TABLE `sendmsg` (
`MSGINDEX` int(11) NOT NULL auto_increment COMMENT '自动生成信息编号',
`PHONENUMBERPATH` varchar(120) NOT NULL COMMENT '电话号码路径',
`MSGTITLE` varchar(360) NOT NULL COMMENT '信短内容或彩信标题',
`MMSINFOFILE` varchar(120) default NULL COMMENT '彩信信息全路径文件名',
`MSGSTATUS` char(1) NOT NULL COMMENT '信息状态,0:未提交;1:提交成功;2:提交失败',
`MSGTYPE` char(1) NOT NULL COMMENT '信息类型,0:彩信;1:普通短信;2:长短信',
`MSGSENDTIME` varchar(20) default NULL COMMENT '信息发送时间(定时用),格式为yyyy-MM-dd HH24:mm:ss',
`MSGSENDCHANNEL` varchar(120) default NULL COMMENT '信息发送所用的通道编码,多通道以逗号隔开',
`SERVERMSGID` int(11) default NULL COMMENT '服务器上随机产生的信息编号',
`MSGSUBMITREPORT` varchar(4) default NULL COMMENT '信息提交报告,返回提交状态码',
`SUCCESSPHONEPATH` varchar(120) default NULL COMMENT '提交成功号码存放路径',
`MSGKEYWORD` varchar(120) default NULL COMMENT '系统敏感词',
`MSGSUBMITPHONELOG` varchar(30) default NULL COMMENT '提交号码记录:成功号码数,重复号码数,错误号码数',
`MSGSUBMITTIME` varchar(20) default NULL COMMENT '信息提交时间,格式为yyyy-MM-dd HH24:mm:ss',
PRIMARY KEY (`MSGINDEX`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Oracle建表示例
SENDMSG表
RECEIVEMSG表
2.3 运行接口应用程序
Windows下,点击phonedb/bin目录下的startup.bat即可。
Linux/Unix下,运行phonedb/bin目录下的startup.sh即可。
三、功能实现方法
3.1 发送普通短信
向sendmsg表中写入一条新记录,记录中包括发送号码路径和短信内容,同时将消息类型设为1(即普通短信),信息状态为0(即未提交)。
示例SQL语句:
insert into sendmsg (PHONENUMBERPATH, MSGTITLE, MSGSTATUS, MSGTYPE) values (‘D:/phone.txt’,’我的普通短信发送内容,未指定发送通道,未定时’,’0’,’1’)
insert into sendmsg (PHONENUMBERPATH, MSGTITLE, MSGSTATUS, MSGTYPE, MSGSENDCHANNEL) values (‘D:\phone.txt’,’我的普通短信发送内容,指定发送通道’,’0’,’1’,’YS001,LS001,DS001’)
insert into sendmsg (PHONENUMBERPATH, MSGTITLE, MSGSTATUS, MSGTYPE, MSGSENDCHANNEL, MSGSENDTIME) values (‘D:\phone.txt’,’我的普通短信发送内容,指定发送通道,并定时发送’,’0’,’1’,’YS001,LS001,DS001’,’2012-01-20 08:00:00’)
3.2 发送长短信
向sendmsg表中写入一条新记录,记录中包括发送号码路径和长短信内容,同时将消息类型设为2(即长短信),信息状态为0(即未提交)。
示例SQL语句:
insert into sendmsg (PHONENUMBERPATH, MSGTITLE, MSGSTATUS, MSGTYPE) values (‘D:/phone.txt’,’我的长短信发送内容,未指定发送通道,未定时’,’0’,’2’)
insert into sendmsg (PHONENUMBERPATH, MSGTITLE, MSGSTATUS, MSGTYPE, MSGSENDCHANNEL) values (‘D:\phone.txt’,’我的长短信发送内容,指定发送通道’,’0’,’2’,’YC001,LC001,DC001’)
insert into sendmsg (PHONENUMBERPATH, MSGTITLE, MSGSTATUS, MSGTYPE, MSGSENDCHANNEL, MSGSENDTIME) values (‘D:\phone.txt’,’我的长短信发送内容,指定发送通道,并定时发送’,’0’,’2’,’YC001,LC001,DC001’,’2012-01-20 08:00:00’)
3.3 发送彩信
向sendmsg表中写入一条新记录,记录中包括发送号码路径和彩信标题,彩信smil文件路径,同时将消息类型设为0(即彩信),信息状态为0(即未提交)。
示例SQL语句:
insert into sendmsg (PHONENUMBERPATH, MSGTITLE, MMSINFOFILE, MSGSTATUS, MSGTYPE) values (‘D:/phone.txt’,’我的彩信标题,未指定发送通道,未定时’,’D:/smil.smil’,’0’,’0’)
insert into sendmsg (PHONENUMBERPATH, MSGTITLE, MMSINFOFILE, MSGSTATUS, MSGTYPE, MSGSENDCHANNEL) values (‘D:/phone.txt’,’我的彩信标题,指定发送通道,未定时’,’D:/smil.smil’,’0’,’0’,’YM001,LM001,DM001’)
insert into sendmsg (PHONENUMBERPATH, MSGTITLE, MMSINFOFILE, MSGSTATUS, MSGTYPE, MSGSENDCHANNEL, MSGSENDTIME) values (‘D:/phone.txt’,’我的彩信标题,指定发送通道,并定时发送’,’D:/smil.smil’,’0’,’0’,’YM001,LM001,DM001’,’2012-01-20 08:00:00’)
注:所有彩信资源都必须在smil.smil文件所在的目录下
3.4 查询提交状态
一、通过查询发送表sendmsg中记录的MSGSTATUS字段值,可得知消息的提交情况。
1、新加入的消息,如果接口程序还未读入处理,此时MSGSTATUS字段值为0;
2、如果信息提交成功,MSGSTATUS字段值为1;
3、如果信息提交失败,此时MSGSTATUS字段值为2
二、通过查询发送表sendmsg记录的MSGSUBMITPHONELOG字段值,可得知电话号码提交情况。
当信息提交成功, MSGSUBMITPHONELOG的字段值依次记录(用逗号隔开),如例:
成功号码数,重复号码数,错误号码数
三、通过查询发送表sendmsg记录的SUCCESSPHONEPATH字段值,可得到具体提交成功号码。
如果信息提交成功,且MSGSUBMITPHONELOG字段值记录的成功号码数大于0,SUCCESSPHONEPATH字段值为所有提交成功的手机号码的存放路径
四、通过查询发送表sendmsg记录的MSGSUBMITREPORT字段值,可得到具体提交状态报告码。
状态码
说明
0000
提交成功
0001
提交失败,原因不详
1001
读取配置文件有误
1002
读取电话号码文件有误
1003
电话号码文件过大(不能超过5MB,可一次提交500,000个手机号码)
1004
电话号码文件类型有误(必须是txt文件)
1005
普通短信字数有误(不能超过70字且不能为空)
1006
长短信字数有误(不能超过280字且不能为空)
1007
彩信标题有误(不能超过30字且不能为空)
1008
读取彩信资源文件有误
1009
彩信资源文件过大(视频类不能超过100K,其它不能超过80K)
1010
smil文件内容有误
1011
读取smil文件有误
1012
彩信文件类型有误(必须是smil文件)
1013
信息类型有误
1014
提交账号有误
1015
提交密码有误
1016
绑定IP有误
1017
绑定通道不正确
1018
没有可发送的手机号码
1019
含有敏感词
1020
生成资源文件出错
1021
插入发送列表异常
1022
信息状态有误
1023
账户余额不足
1024
定时时间格式有误
1025
资源文件类型有误
1026
提交时段错误
3.5 接收信息
读取receivemsg表中各字段值,如果MSGTYPE为0,表示接收到的为短信,如果MSGTYPE为1,表示接收到的为彩信。
当接收到短信时,可通过读取MSGINDEX、PHONENUMBER、MSGTITLE获得回复信息编码(对应sendmsg表中的MSGINDEX)、回复手机号码、回复短信内容
当接收到彩信时,可通过读取MSGINDEX、PHONENUMBER、MSGTITLE、MMSINFOFILE获得回复信息编码(对应sendmsg表中的MSGINDEX)、回复手机号码、回复短信内容、回复的彩信smil文件路径(其对应的彩信资源也在其相应目录下)
注:此表可以根据自己需求,添加MSGSTATUS字段,用来标识哪些信息已读取。
附录 彩信信息文件类型及格式
1.支持文件类型
◇ 图片文件只支持gif、jpg、jpeg、png、bmp
◇ 音频文件支持mid、amr、mp3
◇ 视频文件支持3gp
◇ 文本文件支持txt
支持视频文件大小在100K以内,其它文件大小控制在80K以内。
2.SMIL彩信结构文件
SMIL是同步多媒体集成语言(Synchronized Multimedia Integration Language)的缩写,音同smile。它是由3W(World Wide Web Consortium)组织规定的多媒体操作语言。关于SMIL语言的知识请参考相关专业书籍。
值得注意的是:当用户使用SMIL文件作为彩信结构格式文件来提交要发送的彩信,则务必要把该SMIL文件引用到的资源文件放在SMIL文件的同一目录下,否则彩信客户端数据库接口程序会无法找到引用资源文件。
相应内容如下:
<smil xmlns="http://www.w3.org/2000/SMIL20/CR/Language">
<smil>
<head>
<layout>
<root-layout width="240" height="320" />
<region id="img_region" width="240" height="200" left="0" top="0" />
<region id="text_region" width="240" height="120" left="0" top="200" />
</layout>
</head>
<body>
<par dur="100s">
<img src="1.jpg" region="img_region" />
<text src="2.txt" region="text_region" />
</par>
</body>
</smil>
14
展开阅读全文