1、SP 短信开发- 基础知识篇 很土的话题,但是最近帮朋友做这个东西,所以写点东西出来给初学者参考。一、准备资料SP 开发资料网站上有很多,但是主要是以下几个文档:1、MISC1.6 SP 订购通知接口要求2、协议3、MISC 系统短信 SP 接入培训 (精简版).ppt4、DSMP 规范中的 SSO 平台接入规范详细说明 v1.5.1.pdf5、可供 SP 查看的错误代码6、DSMP 规范中的 SSO 平台接入规范.pdf7、互联网短信网关接口协议 V3.0二、短信业务分类短信业务主要分 2 种,一种是点播业务,另外一种是定制业务1、点播业务其 service_id 前面没有- 号, 例如 Y
2、LSH说明:计费代码,和 service_id 就是一个东西手机用户有发送过信息,sp 才能下发信息,移动根据一个上行分配一个 linkid,在一定的时间内 sp 可以给他下发信息,可以下发多条信息,但是每条的信息都是同一个 linkid,一个 linkid 可以带一个计费代码(这个是在移动申报的,凭这个代码扣费,1 元或者 2元或者 N 元)例如手机 13912345678 发了一个上行信息 A,该指令是在移动申报过的,misc 平台通过他,则分配一个 linkid 返回给 sp,sp 根据指令 A 来判断用户用了什么业务,然后给用户下发信息,下发信息一定要带上 lingkid 和计费代码,
3、否则不能下发,例如下发 3 条,每条信息的 linkid 和计费代码都是一样的(因为用户只有一个上行指令) ,所以其实虽然 sp 发了 3条,只能扣到一条的费用。带 linkid 和计费代码只是为了保证信息的成功下发的一个参数。所有的业务都是这样,点播,以及后面说的定制2、定制业务:其 service_id 前面有- 号,例如 -YLQTYX手机用户发送过一次信息,经过 misc 鉴权,承认他愿意使用定制业务,则将他列为定制用户,之后,哪怕用户没有发过信息,sp 也可以主动给他发信息,此时就没有分配linkid 了,只是 service_id,也就是计费代码,每次下发信息都必须带上这个 ser
4、vice_id 才可以。他还分两小类1) 、定制按条sp 可以给有定购关系的用户下发信息,用户每收到一条,就按照 service_id 标明的资费扣费,一个月,最多扣用户 10 元,超过 10 元的部分,还是需要带 service_id 下发,只是移动不再扣费(该部分,sp 不需要管)2) 、包月业务sp 可以给有定购关系的用户下发信息,所有的信息都要带 service_id 下发,扣费由移动发起,sp 不管。三、开发技术只要满足第一点的协议和规范要求,用目前流行的开发语言和数据库等都可以做。1、主要关键的是网络编程,和 SOAP 的编程2、相关名词解释MISC(Mobile Informat
5、ion Service Center 移动信息服务中心)是一个完全符合中国移动数据业务管理平台技术规范(DSMP )的数据运营平台,它完成数据业务的业务管理和控制功能,实现用户管理、业务管理和 SP 管理,对外提供开放的、标准统一的 Web Service 接口,并可以为各个业务网关、SP 提供代计费。接口协议最初由收录在 .规范中,描述了短消息中心与短消息实体之间通信交互的协议关系及数据传输格式,本规范对接口协议的描述主要面向简单的通信交互,制定规范的厂家将其协议版本号定为.;后由开发者论坛将协议版本向前演进为., .协议规范完全兼容 .协议标准。本规范中,所采用的短消息中心设备与短消息股票
6、交易业务处理平台之间的接口采用. .协议规范,如无特殊说明全部以此协议规范为准。协议可以以或.作为底层通讯承载。ISMG Intenet Short Message Gateway 互联网短信网关DSMP Data Service Manage Platform 数据业务管理平台SMPP Short Message Peer to Peer 短消息点对点协议CMPP China Mobile Peer to Peer 中国移动点对点协议CMPP 协议主要提供以下两类业务操作:(1)短信发送(Short Message Mobile Originate,SM MO )详细的流程请参考移动梦网短信
7、业务信令流程规范 V3.0.0 ;(2) 短信接收(Short Message Mobile Terminated,SM MT)详细的流程请参考移动梦网短信业务信令流程规范 V3.0.0 ;SMSC Short Message Service Center 短消息中心GNS Gateway Name Server 网关名称服务器(汇接网关)SP Service Provider 业务提供者ISMG_Id 网关代码:0XYZ010XYZ99 ,其中 XYZ 为省会区号,位数不足时左补零,如北京编号为 1 的网关代码为 001001,江西编号为 1 的网关代码为 079101,依此类推SP_Id
8、SP 的企业代码:网络中 SP 地址和身份的标识、地址翻译、计费、结算等均以企业代码为依据。企业代码以数字表示,共 6 位,从“9XY000 ”至“9XY999 ”,其中“XY”为各移动公司代码SP_Code SP 的服务代码:服务代码是在使用短信方式的上行类业务中,提供给用户使用的服务提供商代码。服务代码以数字表示,全国业务服务代码长度为 4 位,即“1000”“9999” ;本地业务服务代码长度统一为 5 位,即“01000”“09999” ;信产部对新的 SP 的服务代码分配提出了新的要求,要求以“1061” “1069”作为前缀,目前中国移动进行了如下分配:1062:用于省内 SP 服
9、务代码1066:用于全国 SP 服务代码其它号段保留。Service_Id SP 的业务类型,数字、字母和符号的组合,由 SP 自定,如图片传情可定为TPCQ,股票查询可定义为 11DSMP 数据业务管理平台SSO Single Sign On,单点登录HTTP Hyper Text Transfer Protocol,超文本传输协议。HTTPS Hyper Text Transfer Protocol over Secure Socket Layer,基于安全套接字层的超文本传输协议。ICP Internet Content Provider,因特网内容提供商WWW World Wide W
10、ebXML eXtensible Markup Language,可扩展标记语言Session 是指 HTTP 访问过程中的一个完整会话过程互联网短信网关(ISMG)是业务提供商(SP)与移动网内短信中心之间的中介实体,互联网短信网关一方面负责接收 SP 发送给移动用户的信息和提交给短信中心。另一方面,移动用户点播 SP 业务的信息将由短信中心通过互联网短信网关发给 SP。另外,为了减轻短信中心的信令负荷,互联网短信网关还应根据路由原则将 SP 提交的信息转发到相应的互联网短信网关。互联网短信网关通过向汇接网关(GNS)查询的方式获得网关间的转发路由信息。另外,ISMG 还必须与数据业务管理平
11、台 DSMP 进行连接,在业务流程中对用户、业务以及定购关系等进行鉴权并对业务进行批价。3、接口命名规范接口名称采用单词首字母大写,其他字母小写的方式。缩略语中的字母都大写;接口参数和消息内容定义中,基本数据类型的字段命名规范采用单词首字母大写,单词间没有连接符的方式;对于缩写单词,例如 ID, URL、ICP 、MSISDN 等,将统一采用大写。SSO 平台实际上是用户归属地 DSMP 的一部分功能。用户登录时都需要重定向到归属地DSMP 的用户自服务门户上,无论全网 SP 还是本地 SP,都是到用户归属地的 SSO 平台做用户登录,并且完成 Session 的管理,用户订购的信息是存储在归
12、属地 DSMP 平台的,用户认证由归属地 DSMP 完成。因此,SP 需要与接入地的 SSO 平台连接,以便完成 Session 的管理。同时,在各个 SSO 平台之间,也需要有一套机制管理和同步相互间需要的用户数据,以保证用户数据在任何 SSO 平台上都可以得到。为实现这个要求,建议采用集中控制、各点按需同步的方式实现,也就是在整个 DSMP 部署架构中存在一个统一的中央节点,集中存放所有已登录的用户数据,各省的 SSO 平台在用户需要登录时通过将用户重定向到中央SSO 平台完成登录操作。具体流程参见下文中的用户登录、业务订购/点播和用户签退流程说明。四、相关数据说明1、SyncOrderR
13、elationReq00110338785301 该消息编号1.5.0 该接口消息的版本号SyncOrderRelationReq 消息类型发送方的地址0 设备类型 0:DSMP0011 设备编号接收方的地址 使用用户标识当使用用户和计费用户为同一用户的时候,FeeUser_ID 和 DestUser_ID 的值相同。400 设备类型 400:SP0 设备编号计费用户标识1 用户标识类型 1:用手机号标识13912345678 用户手机号用户伪码使用用户标识1 用户标识类型 1:用手机号标识13912345678 用户手机号用户伪码SP 临时订购关系的事务 ID2 服务状态管理动作代码,具体值
14、如下: 1: 开通服务;2: 停止服务;3: 激活服务;4: 暂停服务;1 ActionReasonID:产生服务状态管理动作原因的代码,具体值如下:1:用户发起行为产生服务状态管理动作原因的代码,具体值如下:1:用户发起行为2:Admin&1860 发起行为3:Boss 停机4:Boss 开机5:Boss 过户6:Boss 销户7:Boss 改号8:扣费失败导致的服务取消9:其他419613 SP 的企业代码-LTYLBY SP 中该服务的服务代码,标示每一种业务的内容,并也叫计费代码,业务代码3 服务的访问方式 3:SMS 2:WAP 1:WEBMTA2NjIxNDQgVERBRA= 服务
15、订购参数,用 BASE64 编码2、SyncOrderRelationResp该消息编号SyncOrderRelationResp该接口消息的版本号,本次所有的接口消息的版本都为“1.5.03、取消服务请求包反向取消流程描述:反向取消是从 SP 发起的取消流程,MISC 在处理来自 SP 的取消消息的时候,其处理流程和来自其他网元的消息一样处理,流程如下:(0) SP 代替用户,向 MISC 发起反向取消请求 UnSubscribeServiceReq 并等待 MISC 处理;(0) MISC 对消息中的来源地址、企业代码进行鉴权,判断是否允许该 SP 进行反向取消;(0) 接入鉴权成功后,再
16、进行用户鉴权和订购关系鉴权,判断用户状态是否正确以及是否存在订购关系;(0) 上面鉴权成功后,MISC 向 SP 发送订购关系同步请求包 SyncOrderRelationReq;(0) SP 收到同步请求后,对订购请求做相应的取消处理,并返回订购关系同步应答SyncOrderRelationResp;(0) MISC 收到应答后,判断应答值是否为 0。如果应答值为 0,则在 MISC 中取消订购关系,并给 SP 返回成功的反向取消处理应答包 UnSubscribeServiceResp;如果应答值不为0,则不取消订购关系,同时给 SP 返回不成功的反向取消应答包 UnSubscribeSer
17、viceResp;(0) SP 如果收到 MISC 的错误响应,则说明取消失败,SP 必须对这个失败消息做相应处理,比如把已取消的订购关系恢复等等;(0) 如果收到 MISC 的正确响应,则 SP 可以不做任何处理;9130020301801050 该消息编号1.5.0UnSubscribeServiceReq 消息类型发送方的地址400913002接收方的地址00024计费用户标识1 见下面的定义13805002424 用户手机号使用用户标识当使用用户和计费用户为同一用户的时候,FeeUser_ID和 DestUser_ID 的值相同。113805002424 服务标识1913002-TQA
18、AU取消服务回应包91300203018010501.5.0UnSubscribeServiceResp0 返回值:见下文定义4、返回值定义在 HTTP 通信时的状态码请参见 HTTP/1.1 协议中规定的状态码值,不包含在本规范的返回值统一定义中。具体描述如下:0 : 成功1 : 未知错误2-99:保留40004999 为 MISC 与 SP 之间的接口消息中的错误代码:4000: 无效的 msgtype4001: 无效的 action_id;4002: 无效的 action_reasonid;4003: 无效的 SP ID4004: 无效的 serviceID4005: 无效的 pseud
19、ocode4006: 无效的 accessmode4007: MISC 同步开通服务,但 SP 端已存在订购关系,且状态为开通4008: MISC 同步开通服务,且 SP 端不存在订购关系,但开通服务失败4009: MISC 同步开通服务,但 SP 端已存在订购关系, 且状态为暂停4010: MISC 同步停止服务, 且 SP 端存在订购关系, 但取消服务失败4011: MISC 同步停止服务, 但 SP 端不存在订购关系4012: MISC 同步暂停服务, 且 SP 端存在订购关系, 但暂停服务失败4013: MISC 同步暂停服务, 但 SP 端不存在订购关系4014: MISC 同步暂停
20、服务, 但 SP 端已存在订购关系, 且状态为暂停4015: MISC 同步激活服务, 但 SP 端已存在订购关系, 且状态为开通4016: MISC 同步激活服务, 但 SP 端不存在订购关系4017: MISC 同步激活服务, 且 SP 端存在订购关系, 但激活服务失败9000-9999 为系统级错误:9000: 系统磁盘读写错误9001: 网络异常9002: 网络错误9003: 业务网关忙,业务网关缓存9004: 业务网关忙,并且业务网关缓冲区满,MISC 缓存,并暂时不要发送消息,等待一段时间重试。9005: MISC 忙,MISC 缓存9006: MISC 忙,并且 MISC 缓冲区
21、满,业务网关缓存,并暂时不要发送消息,等待一段时间重试。9007: 业务网关超过限制的流量9008: MISC 异常,并不可用9009: 业务网关异常,并不可用9010: 该业务网关没有权限调用该接口消息9011: MISC 没有权限发送该接口消息给业务网关9012: 版本不支持第 6 页MISC SP 业务反向接口9013: 消息类型不对,系统不支持9014: 验证错误,无法解析 SOAP 和 XML 结构、缺少必须存在的字段,或者消息,格式不正确9015: 拒绝消息,服务器无法完成请求的服务5、DeviceType 定义设备类型0:DSMP100:ISMG101:WAP SP PROXY1
22、XX:其他业务网关200:WAP PORTAL201:WWW PORTAL202:VOICE PORTAL203:PDA PORTAL2XX:其他门户300:MMSC301:KJAVA SERVER302:LSP3XX:其它应用平台400:SP6、DeviceID 定义设备编号,设备编号采用各设备的入网编号,例如短信网关使用网关 ID、对 SP 使用其企业代码,该设备编号由 DSMP 分配,并且在同一设备类型中该编号唯一7、UserIDType 定义用户标识类型1:用手机号标识2:用伪码标识3:两者同时标识8、SPTypeSP 业务种类1:所有的 SP2:提供短信服务的 SP3:提供 WAP 服务的 SP4:提供 MMS 服务的 SP5:提供 KJAVA 服务的 SP6:提供 MAIL 服务的 SP7:提供 LBS 服务的 SP8:提供 WWW 服务的 SP9:扩展9、ServiceIDType服务类型的标识方式: