《MAS20DB接口插件开发手册教学文案.doc》由会员分享,可在线阅读,更多相关《MAS20DB接口插件开发手册教学文案.doc(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Good is good, but better carries it.精益求精,善益求善。MAS20DB接口插件开发手册-中国移动代理服务器MASV2.0DB接口插件开发手册深圳市嘉讯软件有限公司2008年11月1.引言41.1.编写目的41.2.相关术语与缩略语解释42.概述43.运行环境44.接口描述44.1.短信接口44.1.1.接口说明44.1.2.流程说明54.2.彩信接口54.2.1.接口说明64.2.2.流程说明64.3.Wappush短信接口74.3.1.接口说明74.3.2.流程说明75.数据库及相关表定义75.1.短信数据库表结构85.1.1.短信待发送表(SMS_OUT
2、BOX)85.1.2.短信已处理表(SMS_SENT)85.1.3.上行短信表(SMS_INBOX)95.2.彩信数据库表结构105.2.1.彩信发送表(MMS_OUTBOX)105.2.2.彩信已处理表(MMS_SENT)105.2.3.彩信接收表(MMS_INBOX)115.3.WAPPUSH数据库表结构125.3.1.WAPPUSH待发送表(WAPPUSH_OUTBOX)125.3.2.WAPPUSH已处理表(WAPPUSH_SENT)126.开发步骤136.1.在Mas服务器新建一个企业应用136.2.打开DB插件开关146.3.接口开发及使用举例156.3.1.短信接口156.3.1
3、.1.发送短信操作156.3.1.1.1.开发代码举例156.3.1.2.获取状态报告操作156.3.1.2.1.开发代码举例156.3.1.3.获取短信MO操作156.3.1.3.1.开发代码举例156.3.2.彩信接口166.3.2.1.发送彩信操作166.3.2.1.1.发送彩信开发代码举例166.3.2.2.获取彩信状态报告操作166.3.2.2.1.开发代码举例166.3.2.3.获取彩信MO操作166.3.2.3.1.开发代码举例166.3.3.Wappush短信接口166.3.3.1.发送Wappush短信操作说明166.3.3.1.1.开发代码举例166.3.3.2.获取wap
4、push短信状态报告操作176.3.3.2.1.开发代码举例177.彩信多媒体消息内容格式定义说明177.1.彩信多媒体内容类型177.2.彩信多媒体内容加密177.3.彩信多媒体内容编码177.4.彩信多媒体内容编码177.5.彩信多媒体消息内容示例177.6.彩信多媒体消息具体加密前后内容示例181. 8.参考文档19引言1.1. 编写目的本文档描述了MAS2.0DB通信接口的使用方法,文档的使用对象为MAS开发人员、数字化部队、SI工程技术人员、SI开发人员、集团客户技术人员。1.2. 相关术语与缩略语解释缩写词英文解析中文解析MASMobileAgentServer移动代理服务器HTT
5、PHypertextTransferProtocol超文本传输协议HTTPSSecureHTTP加密的HTTP协议SOAPSimpleObjectAccessProtocol简单对象访问协议UCAUnifiedCommunicationAgent统一通信代理DBDatabaseDB服务接口概述数据库方式通信适配插件为MAS服务器内部各模块和插件以及集团客户应用之间提供统一格式的接口,用于实现通信请求及响应。并将繁杂的通信能力协议与具体的业务应用分离开来。DB方式通信适配插件接口封装了以下移动通信能力:l 短信l 彩信l wappush通过本文档的学习,将获知如何进行DB插件的开发。2. 运行环
6、境l MAS2.0基座运行环境l MAS管理平台环境l DB适配插件开关打开3. 接口描述3.1. 短信接口3.1.1. 接口说明集团客户应用系统和应用插件通过此接口收发短消息。DB方式通信适配插件收到应用插件的发送请求后,通过MAS服务器基座中的SMS通信协议模块发送SMS;当从SMS通信协议模块收到SMS后,通过此接口将短消息发送给集团客户应用系统和应用插件。3.1.2. 流程说明DB适配插件的短信发送以及接收过程。图5-2短消息发送流程示意图l MAS启动l DB插件往待发送表插入要发送的相关数据l MAS从待发送表(sms_outbox)获取该内容并将该记录删除,马上写入已发送记录表(
7、sms_sent),同时通过UCA模块将短信发送出去l 当短信的发送报告回来后,更新已发送记录表(sms_sent)的状态l 获取报告并在处理后删除所获取的记录l MAS的UCA模块获取MO后,写入短信接收表(sms_inbox)l DB插件读取短信接收表(sms_inbox),并在处理后删除所获取的记录3.2. 彩信接口3.2.1. 接口说明应用系统或应用插件调用发送接口给目的用户发送一条彩信。通信适配插件采用非同步的通知机制将彩信提交状态通知给应用系统或应用插件。对于彩信接收,可以由通信适配插件主动通知应用系统或应用插件有彩信到达,应用系统或应用插件也可通过接口从通信适配插件接收彩信。流程
8、说明l MAS启动l DB插件往待发送表(mms_outbox)插入要发送的相关数据l MAS从待发送表(mms_outbox)获取该内容并将该记录删除,马上写入已发送记录表(mms_sent),同时通过UCA模块将彩信发送出去l 当彩信的发送报告回来后,更新已发送记录表(mms_sent)的状态l 获取报告并在处理后删除所获取的记录l MAS的UCA模块获取MO后,写入彩信接收表(mms_inbox)3.3. DB插件读取彩信接收表(mms_inbox),并在处理后删除所获取的记录Wappush短信接口3.3.1. 接口说明3.3.2. 应用系统或应用插件通过此接口发送WAPPUSH并获取P
9、USH发送状态。流程说明DB适配插件发送WAPPush图5-2短消息发送流程示意图l MAS启动l DB插件往待发送表(wappush_outbox)插入要发送的相关数据l MAS从待发送表(wappush_outbox)获取该内容并将该记录删除,马上写入已发送记录表(wappush_sent),同时通过UCA模块将短信发送出去l 当短信的发送报告回来后,更新已发送记录表(wappush_sent)的状态4. 获取报告并在处理后删除所获取的记录数据库及相关表定义DB插件数据库名为:dbadapterDB插件数据库编码格式为:utf84.1. 短信数据库表结构4.1.1. 短信待发送表(SMS_
10、OUTBOX)字段名约束可否为空Default类型长度备注SISMSIDPKNVARCHAR50UUID/GUID(由应用侧产生)EXTCODEYVARCHAR21扩展码,指由该应用填写的内部扩展号码DESTADDRNVARCHAR2000接受手机,多个用“;”分号分割,最大不超过50个手机号码。MESSAGECONTENTNVARCHAR2000短信内容。当MSGFMT为4时,消息内容为十六进制字符串REQDELIVERYREPORTN0Int4是否需要状态报告0:不需要1:需要MSGFMTN0Int4消息类型0-ASCII4-Binary8-usc215-gb231216-gb18030S
11、ENDMETHODN0Int40-普通短信1-普通短信立即显示2-长短信组包3-带结构短信REQUESTTIMEINDEXNNOWDateTime入库时间(短信发送请求时间)APPLICATIONIDNVARCHAR16EC/SI应用的ID,即应用ID或插件的IDEC应用/SI应用插件仅有插入的权限,无读取权限,插入短信也无法取消;数据库方式适配插件读取相关数据后,自行删除该记录,并转存储到SMS_SENT内。短信已处理表(SMS_SENT)字段名约束可否为空Default类型长度备注SMSIDPKNVARCHAR50MAS产生的IDGWSMSIDYVARCHAR50行业网关产生的MsgIDS
12、ISMSIDINDEXNVARCHAR50UUID/GUID,从SMS_OUTBOX带来EXTCODENVARCHAR21扩展码DESTADDRNVARCHAR21单个手机号码REQUESTTIMENDateTime入库时间,从SMS_OUTBOX带来SENTTIMENNOWDateTime提交到行业网关的时间SENTRESULTNInt4对应CMPP_SUBMIT的返回值SMSSTATUSYVARCHAR20如果用户需要状态报告,发送成功后状态报告保存在此字段STATUSTIMEYDateTime收到状态报告的时间APPLICATIONIDNVARCHAR16EC/SI应用的ID,即应用ID
13、或插件的IDEC应用/SI应用插件可SELECT,可DELETE,不可INSERT和UPDATE;要求EC应用/SI应用插件定期5天内清理,数据库方式适配插件定期7天内清理此表。上行短信表(SMS_INBOX)字段名约束可否为空Default类型长度备注MASSMSIDPKNVARCHAR50MAS产生的IDEXTCODEYVARCHAR21扩展号码(可以为空)SOURCEADDRINDEXNVARCHAR21单个手机号码RECEIVETIMENNOWDATETIME短信接收时间MESSAGECONTENTYVARCHAR400当MSGFMT为4时,消息内容为十六进制字符串MSGFMTN0In
14、t4消息类型0-ASCII4-Binary8-usc215-gb231216-gb18030REQUESTTIMENNOWDateTime短信发送入库时间,同SMS_OUTBOXAPPLICATIONIDNVARCHAR16EC/SI应用的IDEC应用/SI应用插件可SELECT,可DELETE,不可INSERT和UPDATE;要求EC应用/SI应用插件定期5天内清理,数据库方式适配插件定期7天内清理此表。4.2. 彩信数据库表结构4.2.1. 彩信发送表(MMS_OUTBOX)字段名约束可否为空Default类型长度备注SIMMSIDPKNVARCHAR50UUID/GUID(由AP产生)E
15、XTCODEYVARCHAR21扩展号码DESTADDRNVARCHAR2000接受手机MSISDN,多人用“;”分割,最大不超过50人REQDELIVERYREPORTN0Int(0/1)4是否需要状态报告0:不需要1:需要SUBJECTNVARCHAR500彩信标题MESSAGECONTENTYTEXT/CLOB/BLOB500KBMIME组包或SMIL格式文件REQUESTTIMEINDEXNNOWDateTime入库时间APPLICATIONIDNVARCHAR16EC/SI应用的IDEC应用/SI应用插件仅有插入的权限,无读取权限,插入彩信也无法取消;数据库方式适配插件读取相关数据后
16、,自行删除该记录,并转存储到MMS_SENT内。4.2.2. 彩信已处理表(MMS_SENT)字段名约束可否为空Default类型长度备注MASMMSIDPKNVARCHAR50MAS产生的IDGWMMSIDVARCHAR50行业网关产生的MsgIDSIMMSIDVARCHAR50UUID/GUID,从MMS_OUTBOX表带来DESTADDRNVARCHAR21单个手机号码SENTTIMENDateTime提交到行业网关的时间SENTRESULTNint4对应SUBMITREQ的返回值MMSSTATUSYVARCHAR40如果用户需要状态报告,发送成功后状态报告保存在此字段STATUSTIM
17、EYDateTime收到状态报告的时间APPLICATIONIDNVARCHAR16EC/SI应用的ID4.2.3. EC应用/SI应用插件可SELECT,可DELETE,不可INSERT和UPDATE;要求EC应用/SI应用插件定期5天内清理,数据库方式适配插件定期7天内清理此表。彩信接收表(MMS_INBOX)字段名约束可否为空Default类型长度备注MASMMSIDPKNVARCHAR50MAS产生的IDEXTCODEYVARCHAR21扩展号码(可以为空)SOURCEADDRNVARCHAR21单个手机号码RECEIVETIMENDateTime彩信接收时间SUBJECTNVARCH
18、AR500彩信标题MESSAGECONTENTYTEXT/CLOB/BLOB500kbMIME组包或SMIL格式文件REQUESTTIMENDateTime入库时间APPLICATIONIDNVARCHAR16EC/SI应用的IDEC应用/SI应用插件可SELECT,可DELETE,不可INSERT和UPDATE;要求EC应用/SI应用插件定期5天内清理,数据库方式适配插件定期7天内清理此表。4.3. WAPPUSH数据库表结构4.3.1. WAPPUSH待发送表(WAPPUSH_OUTBOX)字段名约束可否为空Default类型长度备注MASWAPPUSHIDPKNVARCHAR50MAS产
19、生的IDGWWAPPUSHIDYVARCHAR50行业网关产生的MsgIDSIWAPPUSHIDNVARCHAR50UUID/GUID(从WAPPUSH_OUTBOX表带来)EXTCODENVARCHAR21扩展代码DESTADDRNVARCHAR21单个手机号码REQUESTTIME(INDEX)NDateTime入库时间SENTTIMEINDEXNNOWDateTime提交到行业网关的时间SENTRESULTNint4对应CMPP_SUBMIT的返回值WAPPUSHSTATUSYVARCHAR20如果用户需要状态报告,发送成功后状态报告保存在此字段STATUSTIMEYDateTime收到
20、状态报告的时间APPLICATIONIDNVARCHAR16EC/SI应用的IDEC应用/SI应用插件仅有插入的权限,无读取权限,插入记录也无法取消;数据库方式适配插件读取相关数据后,自行删除该记录,并转存储到WAPPUSH_SENT内。WAPPUSH已处理表(WAPPUSH_SENT)字段名约束可否为空Default类型长度备注MASWAPPUSHIDPKNVARCHAR50MAS产生的IDGWWAPPUSHIDYVARCHAR50行业网关产生的MsgIDSIWAPPUSHIDNVARCHAR50UUID/GUID(从WAPPUSH_OUTBOX表带来)EXTCODENVARCHAR21扩展
21、代码DESTADDRNVARCHAR21单个手机号码REQUESTTIME(INDEX)NDateTime入库时间SENTTIMEINDEXNNOWDateTime提交到行业网关的时间SENTRESULTNint4对应CMPP_SUBMIT的返回值WAPPUSHSTATUSYVARCHAR20如果用户需要状态报告,发送成功后状态报告保存在此字段STATUSTIMEYDateTime收到状态报告的时间APPLICATIONIDNVARCHAR16EC/SI应用的IDEC应用/SI应用插件可SELECT,可DELETE,不可INSERT和UPDATE;要求EC应用/SI应用插件定期5天内清理,数据
22、库方式适配插件定期7天内清理此表。5. 开发步骤5.1. 在Mas服务器新建一个企业应用在MAS2.0插件管理平台中新增一个DB插件,如图:注意:新建时“通信接口方式”选择“Database”。5.2. 新建成功后,在插件列表页面显示如下图:要新建的插件DB接口可用,需要点击“开关”列的运行按钮。否则在使用DB接口通信时可能会报POL0906错误。打开DB插件开关在系统管理-配置管理-参数设置-DB接口一栏中,将DB接口所需要的服务能力启动。如下图:数据库用户名:请输入DB数据库用户名。5.3. 数据库密码:请输入DB数据库密码。接口开发及使用举例5.3.1. 短信接口5.3.1.1. 发送短
23、信操作发送短信是由DB插件发起,向DB插件数据库dbadapter中的等待发送表sms_outbox表中插件要发送的相关记录。5.3.1.1.1. 开发代码举例例如:新建一个DB插件,插件标识为“333”,发送短信代码实现如下:Insertintosms_outbox(sismsid,extcode,destaddr,messagecontent,reqdeliveryreport,msgfmt,sendmethod,requesttime,applicationid)VALUES(64a24682-e267-4564-8e58-6450d74e631e,333,13689520370;136
24、89520371,短信内容,1,15,0,2008-07-0214:06:53,333)5.3.1.2. 获取状态报告操作5.3.1.2.1. 开发代码举例获取状态报告代码实现如下:Select*fromsms_sentwheresismsid=64a24682-e267-4564-8e58-6450d74e631eandapplicationid=333andsmsstatusisnotnull5.3.1.3. 获取短信MO操作开发代码举例获取短信MO代码实现如下:Select*fromsms_inboxwhereapplicationid=3335.3.2. 彩信接口5.3.2.1. 发送
25、彩信操作发送彩信是由DB插件发起,向DB插件数据库dbadapter中的等待发送表mms_outbox表中插件要发送的相关记录。5.3.2.1.1. 发送彩信开发代码举例输入:代码实现如下:Insertintomms_outbox(simmsid,extcode,destaddr,reqdeliveryreport,subject,messagecontent,requesttime,applicationid)values(16bde705-07e9-4021-938a-c7033faf7827,333,13689520370,1,标题,?,2008-07-0215:38:27,333)5.
26、3.2.2. 注:?彩信内容很长,是标准彩信文件格式的Base64encode,具体请参考本手册中第7节彩信多媒体消息内容格式定义说明。获取彩信状态报告操作5.3.2.2.1. 开发代码举例输入:代码实现如下:Select*frommms_sentwheresimmsid=16bde705-07e9-4021-938a-c7033faf7827andapplicationid=333andmmsstatusisnotnull5.3.2.3. 获取彩信MO操作5.3.2.3.1. 开发代码举例输入:代码实现如下:Select*frommms_inboxwhereapplicationid=333
27、5.3.3. Wappush短信接口5.3.3.1. 发送Wappush短信操作说明5.3.3.1.1. 发送Wappush短信是由DB插件发起,向DB插件数据库dbadapter中的等待发送表wappush_outbox表中插件要发送的相关记录。开发代码举例输入:代码实现如下:Insertintowappush_outbox(siwappushid,extcode,destaddr,subject,reqdeliveryreport,targeturl,requesttime,applicationid)VALUES(1247ea58-8915-44a5-a99d-38eab571e745,
28、333,13689520370,主题,1,2008-07-0218:38:27,333)5.3.3.2. 获取wappush短信状态报告操作5.3.3.2.1. 开发代码举例输入:代码实现如下:Select*fromwappush_sentwheresiwappushid=1247ea58-8915-44a5-a99d-38eab571e745andapplicationid=333andwappushstatusisnotnull6. 彩信多媒体消息内容格式定义说明6.1. 彩信多媒体内容类型6.2. mas提供的各种彩信发送接口,彩信内容(content)一项均是字符串类型。彩信多媒体内容
29、加密6.3. 彩信多媒体消内容必须经是过BASE64的字符串。彩信多媒体内容编码6.4. 彩信多媒体消内容文本附件内容必须采用utf-8编码。彩信多媒体内容编码6.5. text/plain,text/xml,application/smil,audio/amr,audio/midi,text/i-melody,text/e-melody,image/gif,image/jpeg,image/vnd.wap.wbm,image/png彩信多媒体消息内容示例以下为加密前内容示例,通过mas发送彩信必须将此内容采用BASE64加密后发送:-SubPart_7452684322002_77645Co
30、ntent-Type:application/smilContent-Transfer-Encoding:8bitContent-ID:20080815103000023.smilContent-Location:20080815103000023.smilsmil附件内容-SubPart_7452684322002_77645Content-Type:image/gifContent-Transfer-Encoding:8bitContent-ID:20080815102800026.gifContent-Location:20080815102800026.gifgif附件内容-SubPa
31、rt_7452684322002_77645Content-Type:text/plain;charset=UTF-8Content-Transfer-Encoding:8bitContent-ID:200808151030000231.txtContent-Location:200808151030000231.txt文本附件内容-SubPart_7452684322002_77645-NextPart_0_2817_24856示例内容说明,内容中可以存在多个附件,每个附件前必须“-SubPart_7452684322002_77645”开始,最后一个附件后加-SubPart_7452684
32、322002_77645-NextPart_0_2817_24856附件内容属性说明Content-Type附件类型Content-Transfer-Encoding附件编码位数,默认采用8位编码Content-ID附件名称Content-Location附件名称6.6. 彩信多媒体消息具体加密前后内容示例加密前:-SubPart_7452684322002_77645Content-Type:application/smilContent-Transfer-Encoding:8bitContent-ID:20080815114700048.smilContent-Location:20080
33、815114700048.smil-SubPart_7452684322002_77645Content-Type:text/plain;charset=UTF-8Content-Transfer-Encoding:8bitContent-ID:200808151147000481.txtContent-Location:200808151147000481.txtHELLOMMS!-SubPart_7452684322002_77645-NextPart_0_2817_24856加密后:LS1TdWJQYXJ0Xzc0NTI2ODQzMjIwMDJfNzc2NDUNCkNvbnRlbnQtV
34、HlwZTphcHBsaWNhdGlvbi9zbWlsDQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOjhiaXQNCkNvbnRlbnQtSUQ6MjAwODA4MTUxMTQ3MDAwNDguc21pbA0KQ29udGVudC1Mb2NhdGlvbjoyMDA4MDgxNTExNDcwMDA0OC5zbWlsDQoNCjxzbWlsPjxoZWFkPjxtZXRhIG5hbWU9InRpdGxlIiBjb250ZW50PSIiLz48bGF5b3V0Pjxyb290LWxheW91dCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiAgL
35、z48cmVnaW9uIGlkPSJ0eHRfdG9wIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxNiUiIGxlZnQ9IjAiIHRvcD0iMCIgZml0PSJzY3JvbGwiLz48cmVnaW9uIGlkPSJ0eHRfYnV0dG9uIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxNiUiIGxlZnQ9IjAiIHRvcD0iODQlIiBmaXQ9InNjcm9sbCIvPjxyZWdpb24gaWQ9ImltZ190b3AiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9Ijg0JSIgbGVmdD0iMCIgdG9wPSIwI
36、iBmaXQ9ImZpbGwiLz48cmVnaW9uIGlkPSJpbWdfYnV0dG9uIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSI4NCUiIGxlZnQ9IjAiIHRvcD0iMTYlIiBmaXQ9ImZpbGwiLz48cmVnaW9uIGlkPSJhbGwiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGxlZnQ9IjAiIHRvcD0iMCIgZml0PSJmaWxsIiAvPjwvbGF5b3V0PjwvaGVhZD48Ym9keT48cGFyIGR1cj0iMTAwMDBtcyI+PHRleHQgc3JjPSIyMDA4M
37、DgxNTExNDcwMDA0ODEudHh0IiByZWdpb249ImFsbCIgLz48L3Bhcj48L2JvZHk+PC9zbWlsPg0KDQoNCi0tU3ViUGFydF83NDUyNjg0MzIyMDAyXzc3NjQ1DQpDb250ZW50LVR5cGU6dGV4dC9wbGFpbjtjaGFyc2V0PVVURi04DQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOjhiaXQNCkNvbnRlbnQtSUQ6MjAwODA4MTUxMTQ3MDAwNDgxLnR4dA0KQ29udGVudC1Mb2NhdGlvbjoyMDA4MDgxNTExNDcwMDA0ODEudHh0DQoNCkhFTExPIE1NUyENCg0KDQotLVN1YlBhcnRfNzQ1MjY4NDMyMjAwMl83NzY0NS0tDQotLS0tTmV4dFBhcnRfMF8yODE3XzI0ODU2LS0NCg=7. 参考文档-