利用ASP实现气象短信USSD接口访问
USSD业务流程
本文引用地址:https://www.eepw.com.cn/article/110153.htmUSSD业务目前是以山东气象移动短信平台为基础设计实现的。用户进入USSD门户后,根据菜单选择具体业务,USSD门户将向移动96159平台发送请求(96159是山东移动的自有业务平台),96159根据具体请求向SP方[2](气象局就是SP之一)转发,气象短信平台收到请求后,将业务结果生成XML报文,返回给96159平台,再由96159平台打包封装后,提交给USSD门户,最终展示在用户终端上[3](见图1)。其中,传输过程报文采用XML格式,96159平台与SP平台之间采用http短连接方式,而接口模式采取同步请求/响应模式。简而言之,USSD门户负责业务菜单的设计以及用户的交互显示,96159平台在整个USSD处理流程中起到鉴权指令、计费判断的作用,SP平台则负责具体的业务响应和信息处理。
对于用户使用来说,只需要记住USSD业务服务号码(可以保存在手机通讯录里),例如:目前山东移动手机用户通过直接拨打表1所列号码即可获取信息服务。对比传统方式,这样的操作无疑大大提高了执行效率,平均响应时间缩短80%。
ASP脚本程序设计接口
由于气象短信平台后台数据库是SQL SERVER,而ASP程序具有与SQL SERVER数据库良好的访问模式,本身又是脚本程序,精炼灵活,同时ASP在读取、构建XML报文时的技术应用又很成熟[4],综合考虑,选择ASP作为接口程序语言。下面通过代码简要说明asp脚本编写过程。
第一步:首先解析96159平台传递过来的SPServiceAccessReq 请求数据包。
Set ReceivedDoc = server.CreateObject("Msxml2.DOMDocument") ReceivedDoc.load Request
TransactionID=ReceivedDoc.selectSingleNode("//Head/TransactionID").text
……
feemsisdn=ReceivedDoc.selectSingleNode("//Body/Request/FeeMSISDN").text
linkid=ReceivedDoc.selectSingleNode("//Body/Request/LinkID").text
第二步:调用函数,进行数据库查询,此处利用了ASP中的ADO[5]组件。
第三步:将查询结果生成XML包,返回给96159平台。
第四步:USSD门户接收到96159透传的信息包后,进行解析,并将结果响应在用户终端上,最终完成整个交互操作。
BASE64编码实现
Base64[6]是网络上用于传输8Bit字节代码的编码方式,为了将信息进行加密,根据协议要求,需要将返回包XML中的Property字段内容进行BASE64编码。考虑到ASP与Javascript有良好的结合能力,故选择在ASP程序里嵌套Javascript脚本,并要求该脚本在服务器端进行,即,即<script language=javascript runat="server">。
由于返回字段内容包括汉字、数字等字符,在进行BASE64编码前需要将字段内容由UTF-16转换成UTF-8格式,即function utf16to8(str) (此处代码省略),此过程非常重要,否则汉字字符无法被正确的编解码,最终导致乱码的出现。
然后再进行编码function base64encode(str) (此处代码省略)。
结语
利用ASP做接口程序,可以轻松实现短信平台与USSD门户的信息交互,通过USSD方式,用户可以方便的获取气象信息,既方便了用户体验,又为气象信息发布提供了一个新颖的途径,随着USSD菜单设计的丰富,更多的气象信息可以通过这种方式向公众发布。ASP作为经典的B/S模式Web Service应用已经非常成熟,虽然在处理大型数据的能力上,能力有所欠缺,但巧妙的利用它,凭借其与Windows系统、XML良好的兼容性,代码编写、调试的简便,轻松容易的存取数据库等特点,可以在很多HTTP环境下、系统负载相对小的的应用领域发挥重要作用,并且开发周期短,定会起到事半功倍的效果。
参考文献:
[1]于淼,贾瑞新. USSD交互移动数据业务系统与增值业务的实现[J]. 电信技术, 2005 (12):62-64
[2]中国移动通信集团公司.中国移动通信互联网短信网关接口协议(CMPP) v2.0[S].2002,4
[3]中国移动通信集团公司.中国移动通信USSD业务接口协议[S].2003
[4]陈锦辉.XML与ASP网站实作大全[M].北京:中国铁道出版社,2001
[5]张益星,罗敬. XML和SQL Server 2000数据交换的实现[J]. 湖南工程学院学报,2006(1):64-66
[6]唐武生,田立红,曹伟. Base64编码的实现与应用研究[J].长春大学学报, 2006(4):69-72
网线测试仪相关文章:网线测试仪原理
评论