新闻中心

EEPW首页>手机与无线通信>设计应用> 利用ASP实现气象短信USSD接口访问

利用ASP实现气象短信USSD接口访问

作者:任广治 黄善斌 郝东敏 石振彬 山东省气象局 时间:2010-06-21 来源:电子产品世界 收藏

业务流程

本文引用地址://m.amcfsurvey.com/article/110153.htm

业务目前是以山东气象移动短信平台为基础设计实现的。用户进入门户后,根据菜单选择具体业务,USSD门户将向移动96159平台发送请求(96159是山东移动的自有业务平台),96159根据具体请求向SP方[2](气象局就是SP之一)转发,气象短信平台收到请求后,将业务结果生成报文,返回给96159平台,再由96159平台打包封装后,提交给USSD门户,最终展示在用户终端上[3](见图1)。其中,传输过程报文采用格式,96159平台与SP平台之间采用http短连接方式,而接口模式采取同步请求/响应模式。简而言之,USSD门户负责业务菜单的设计以及用户的交互显示,96159平台在整个USSD处理流程中起到鉴权指令、计费判断的作用,SP平台则负责具体的业务响应和信息处理。

  对于用户使用来说,只需要记住USSD业务服务号码(可以保存在手机通讯录里),例如:目前山东移动手机用户通过直接拨打表1所列号码即可获取信息服务。对比传统方式,这样的操作无疑大大提高了执行效率,平均响应时间缩短80%。

脚本程序设计接口

  由于气象短信平台后台数据库是SQL SERVER,而程序具有与SQL SERVER数据库良好的访问模式,本身又是脚本程序,精炼灵活,同时在读取、构建报文时的技术应用又很成熟[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[6]是网络上用于传输8Bit字节代码的编码方式,为了将信息进行加密,根据协议要求,需要将返回包XML中的Property字段内容进行。考虑到ASP与Javascript有良好的结合能力,故选择在ASP程序里嵌套Javascript脚本,并要求该脚本在服务器端进行,即,即