很土的話題,但是最近幫朋友做這個東西,所以寫點(diǎn)東西出來給初學(xué)者參考。
一、準(zhǔn)備資料
SP開發(fā)資料網(wǎng)站上有很多,但是主要是以下幾個文檔:
1、MISC1.6 SP訂購?fù)ㄖ涌谝?br>2、SMPP協(xié)議
3、MISC系統(tǒng)短信SP接入培訓(xùn)(精簡版).ppt
4、DSMP規(guī)范中的SSO平臺接入規(guī)范詳細(xì)說明 v1.5.1.pdf
5、可供SP查看的錯誤代碼
6、DSMP規(guī)范中的SSO平臺接入規(guī)范.pdf
7、互聯(lián)網(wǎng)短信網(wǎng)關(guān)接口協(xié)議V3.0
二、短信業(yè)務(wù)分類
短信業(yè)務(wù)主要分2種,一種是點(diǎn)播業(yè)務(wù),另外一種是定制業(yè)務(wù)
1、點(diǎn)播業(yè)務(wù)
其service_id前面沒有-號,例如YLSH
說明:計(jì)費(fèi)代碼,和service_id就是一個東西
手機(jī)用戶有發(fā)送過信息,sp才能下發(fā)信息,移動根據(jù)一個上行分配一個linkid,在一定的時間內(nèi)sp可以給他下發(fā)信息,可以下發(fā)多條信息,但是每條的信息都是同一個linkid
,一個linkid可以帶一個計(jì)費(fèi)代碼(這個是在移動申報(bào)的,憑這個代碼扣費(fèi),1元或者2元或者N元)
例如手機(jī)13912345678 發(fā)了一個上行信息A,該指令是在移動申報(bào)過的,misc平臺通過他,則分配一個linkid返回給sp,sp根據(jù)指令A(yù)來判斷用戶用了什么業(yè)務(wù),然后給用戶下
發(fā)信息,下發(fā)信息一定要帶上lingkid和計(jì)費(fèi)代碼,否則不能下發(fā),例如下發(fā)3條,每條信息的linkid和計(jì)費(fèi)代碼都是一樣的(因?yàn)橛脩糁挥幸粋€上行指令),所以其實(shí)雖然sp發(fā)了3
條,只能扣到一條的費(fèi)用。帶linkid和計(jì)費(fèi)代碼只是為了保證信息的成功下發(fā)的一個參數(shù)。所有的業(yè)務(wù)都是這樣,點(diǎn)播,以及后面說的定制
2、定制業(yè)務(wù):
其service_id前面有-號,例如-YLQTYX
手機(jī)用戶發(fā)送過一次信息,經(jīng)過misc鑒權(quán),承認(rèn)他愿意使用定制業(yè)務(wù),則將他列為定制用戶,之后,哪怕用戶沒有發(fā)過信息,sp也可以主動給他發(fā)信息,此時就沒有分配
linkid了,只是service_id,也就是計(jì)費(fèi)代碼,每次下發(fā)信息都必須帶上這個service_id才可以。
他還分兩小類
1)、定制按條
sp可以給有定購關(guān)系的用戶下發(fā)信息,用戶每收到一條,就按照service_id標(biāo)明的資費(fèi)扣費(fèi),一個月,最多扣用戶10元,超過10元的部分,還是需要帶service_id下發(fā),只是
移動不再扣費(fèi)(該部分,sp不需要管)
2)、包月業(yè)務(wù)
sp可以給有定購關(guān)系的用戶下發(fā)信息,所有的信息都要帶service_id下發(fā),扣費(fèi)由移動發(fā)起,sp不管。
三、開發(fā)技術(shù)
只要滿足第一點(diǎn)的協(xié)議和規(guī)范要求,用目前流行的開發(fā)語言和數(shù)據(jù)庫等都可以做。
1、主要關(guān)鍵的是網(wǎng)絡(luò)編程,和SOAP的編程
2、相關(guān)名詞解釋
MISC(Mobile Information Service Center移動信息服務(wù)中心)是一個完全符合中國移動數(shù)據(jù)業(yè)務(wù)管理平臺技術(shù)規(guī)范(DSMP)的數(shù)據(jù)運(yùn)營平臺,它完成數(shù)據(jù)業(yè)務(wù)的業(yè)務(wù)管理和控制功
能,實(shí)現(xiàn)用戶管理、業(yè)務(wù)管理和SP管理,對外提供開放的、標(biāo)準(zhǔn)統(tǒng)一的Web Service接口,并可以為各個業(yè)務(wù)網(wǎng)關(guān)、SP提供代計(jì)費(fèi)。
SMPP接口協(xié)議最初由ETSI收錄在?。牵樱停埃?39規(guī)范中,描述了短消息中心與短消息實(shí)體之間通信交互的協(xié)議關(guān)系及數(shù)據(jù)傳輸格式,本規(guī)范對SMPP接口協(xié)議的描述
主要面向簡單的通信交互,制定規(guī)范的廠家將其協(xié)議版本號定為V3.30;后由SMPP開發(fā)者論壇將協(xié)議版本向前演進(jìn)為V3.40,SMPP?。郑?40協(xié)議規(guī)范完全兼容G
SM?。埃?39協(xié)議標(biāo)準(zhǔn)。本規(guī)范中,所采用的短消息中心設(shè)備與短消息股票交易業(yè)務(wù)處理平臺之間的接口采用GSM03.39?。郑?30協(xié)議規(guī)范,如無特殊說明全部以此協(xié)
議規(guī)范為準(zhǔn)。SMPP協(xié)議可以以TCP/IP或X.25作為底層通訊承載。
ISMG Intenet Short Message Gateway 互聯(lián)網(wǎng)短信網(wǎng)關(guān)
DSMP Data Service Manage Platform 數(shù)據(jù)業(yè)務(wù)管理平臺
SMPP Short Message Peer to Peer 短消息點(diǎn)對點(diǎn)協(xié)議
CMPP China Mobile Peer to Peer 中國移動點(diǎn)對點(diǎn)協(xié)議
CMPP協(xié)議主要提供以下兩類業(yè)務(wù)操作:
(1)短信發(fā)送(Short Message Mobile Originate,SM MO)
詳細(xì)的流程請參考《移動夢網(wǎng)短信業(yè)務(wù)信令流程規(guī)范V3.0.0》;
(2) 短信接收(Short Message Mobile Terminated,SM MT)
詳細(xì)的流程請參考《移動夢網(wǎng)短信業(yè)務(wù)信令流程規(guī)范V3.0.0》;
SMSC Short Message Service Center 短消息中心
GNS Gateway Name Server 網(wǎng)關(guān)名稱服務(wù)器(匯接網(wǎng)關(guān))
SP Service Provider 業(yè)務(wù)提供者
ISMG_Id 網(wǎng)關(guān)代碼:0XYZ01~0XYZ99,其中XYZ為省會區(qū)號,位數(shù)不足時左補(bǔ)零,如北京編號為1的網(wǎng)關(guān)代碼為001001,江西編號為1的網(wǎng)關(guān)代碼為079101,依此類推
SP_Id SP的企業(yè)代碼:網(wǎng)絡(luò)中SP地址和身份的標(biāo)識、地址翻譯、計(jì)費(fèi)、結(jié)算等均以企業(yè)代碼為依據(jù)。企業(yè)代碼以數(shù)字表示,共6位,從“9XY000”至“9XY999”,其中“
XY”為各移動公司代碼
SP_Code SP的服務(wù)代碼:服務(wù)代碼是在使用短信方式的上行類業(yè)務(wù)中,提供給用戶使用的服務(wù)提供商代碼。服務(wù)代碼以數(shù)字表示,全國業(yè)務(wù)服務(wù)代碼長度為4位,即“1000
”-“9999”;本地業(yè)務(wù)服務(wù)代碼長度統(tǒng)一為5位,即“01000”-“09999”;信產(chǎn)部對新的SP的服務(wù)代碼分配提出了新的要求,要求以“1061”-“1069”作為前綴,目前中國移
動進(jìn)行了如下分配:
1062:用于省內(nèi)SP服務(wù)代碼
1066:用于全國SP服務(wù)代碼
其它號段保留。
Service_Id SP的業(yè)務(wù)類型,數(shù)字、字母和符號的組合,由SP自定,如圖片傳情可定為TPCQ,股票查詢可定義為11
DSMP 數(shù)據(jù)業(yè)務(wù)管理平臺
SSO Single Sign On,單點(diǎn)登錄
HTTP Hyper Text Transfer Protocol,超文本傳輸協(xié)議。
HTTPS Hyper Text Transfer Protocol over Secure Socket Layer,基于安全套接字層的超文本傳輸協(xié)議。
ICP Internet Content Provider,因特網(wǎng)內(nèi)容提供商
WWW World Wide Web
XML eXtensible Markup Language,可擴(kuò)展標(biāo)記語言
Session 是指HTTP 訪問過程中的一個完整會話過程
互聯(lián)網(wǎng)短信網(wǎng)關(guān)(ISMG)是業(yè)務(wù)提供商(SP)與移動網(wǎng)內(nèi)短信中心之間的中介實(shí)體,互聯(lián)網(wǎng)短信網(wǎng)關(guān)一方面負(fù)責(zé)接收SP發(fā)送給移動用戶的信息和提交給短信中心。另一方面,移動
用戶點(diǎn)播SP業(yè)務(wù)的信息將由短信中心通過互聯(lián)網(wǎng)短信網(wǎng)關(guān)發(fā)給SP。另外,為了減輕短信中心的信令負(fù)荷,互聯(lián)網(wǎng)短信網(wǎng)關(guān)還應(yīng)根據(jù)路由原則將SP提交的信息轉(zhuǎn)發(fā)到相應(yīng)的互聯(lián)網(wǎng)短
信網(wǎng)關(guān)?;ヂ?lián)網(wǎng)短信網(wǎng)關(guān)通過向匯接網(wǎng)關(guān)(GNS)查詢的方式獲得網(wǎng)關(guān)間的轉(zhuǎn)發(fā)路由信息。
另外,ISMG還必須與數(shù)據(jù)業(yè)務(wù)管理平臺DSMP進(jìn)行連接,在業(yè)務(wù)流程中對用戶、業(yè)務(wù)以及定購關(guān)系等進(jìn)行鑒權(quán)并對業(yè)務(wù)進(jìn)行批價。
3、接口命名規(guī)范
接口名稱采用單詞首字母大寫,其他字母小寫的方式??s略語中的字母都大寫;接口參數(shù)和消息內(nèi)
容定義中,基本數(shù)據(jù)類型的字段命名規(guī)范采用單詞首字母大寫,單詞間沒有連接符的方式;對于縮寫單
詞,例如ID,URL、ICP、MSISDN 等,將統(tǒng)一采用大寫。
SSO 平臺實(shí)際上是用戶歸屬地DSMP 的一部分功能。用戶登錄時都需要重定向到歸屬地DSMP 的用戶自服務(wù)門戶上,無論全網(wǎng)SP 還是本地SP,都是到用戶歸屬地的SSO 平臺做用戶登
錄,并且完成Session 的管理,用戶訂購的信息是存儲在歸屬地DSMP 平臺的,用戶認(rèn)證由歸屬地DSMP 完成。因此,SP 需要與接入地的SSO 平臺連接,以便完成Session 的管理。
同時,在各個SSO 平臺之間,也需要有一套機(jī)制管理和同步相互間需要的用戶數(shù)據(jù),以保證用戶數(shù)據(jù)在任何SSO 平臺上都可以得到。為實(shí)現(xiàn)這個要求,建議采用集中控制、各點(diǎn)按
需同步的方式實(shí)現(xiàn),也就是在整個DSMP 部署架構(gòu)中存在一個統(tǒng)一的中央節(jié)點(diǎn),集中存放所有已登錄的用戶數(shù)據(jù),各省的SSO 平臺在用戶需要登錄時通過將用戶重定向到中央SSO 平
臺完成登錄操作。具體流程參見下文中的用戶登錄、業(yè)務(wù)訂購/點(diǎn)播和用戶簽退流程說明。
四、相關(guān)數(shù)據(jù)說明
1、SyncOrderRelationReq
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope xmlns:xsi=" xmlns:xsd=" xmlns:SOAP-ENV=" xmlns:SOAP-ENC="<SOAP-ENV:Header>
<TransactionID xmlns="00110338785301http://www.monternet.com/dsmp/schemas/">00110338785301</TransactionID> 該消息編號
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<SyncOrderRelationReq xmlns=" <Version>1.5.0</Version> 該接口消息的版本號
<MsgType>SyncOrderRelationReq</MsgType> 消息類型
<Send_Address> 發(fā)送方的地址
<DeviceType>0</DeviceType> 設(shè)備類型0:DSMP
<DeviceID>0011</DeviceID> 設(shè)備編號
</Send_Address>
<Dest_Address> 接收方的地址 使用用戶標(biāo)識當(dāng)使用用戶和計(jì)費(fèi)用戶為同一用戶的時候,F(xiàn)eeUser_ID和DestUser_ID的值相同。
<DeviceType>400</DeviceType> 設(shè)備類型400:SP
<DeviceID>0</DeviceID> 設(shè)備編號
</Dest_Address>
<FeeUser_ID> 計(jì)費(fèi)用戶標(biāo)識
<UserIDType>1</UserIDType> 用戶標(biāo)識類型1:用手機(jī)號標(biāo)識
<MSISDN>13912345678</MSISDN> 用戶手機(jī)號
<PseudoCode></PseudoCode> 用戶偽碼
</FeeUser_ID>
<DestUser_ID> 使用用戶標(biāo)識
<UserIDType>1</UserIDType> 用戶標(biāo)識類型1:用手機(jī)號標(biāo)識
<MSISDN>13912345678</MSISDN> 用戶手機(jī)號
<PseudoCode></PseudoCode> 用戶偽碼
</DestUser_ID>
<LinkID>SP</LinkID> 臨時訂購關(guān)系的事務(wù)ID
<ActionID>2</ActionID> 服務(wù)狀態(tài)管理動作代碼,具體值如下:1: 開通服務(wù);2: 停止服務(wù);3: 激活服務(wù);4: 暫停服務(wù);
<ActionReasonID>1</ActionReasonID>
ActionReasonID:產(chǎn)生服務(wù)狀態(tài)管理動作原因的代碼,具體值如下:1:用戶發(fā)起行為產(chǎn)生服務(wù)狀態(tài)管理動作原因的代碼,具體值如下:
1:用戶發(fā)起行為
2:Admin&1860發(fā)起行為
3:Boss停機(jī)
4:Boss開機(jī)
5:Boss過戶
6:Boss銷戶
7:Boss改號
8:扣費(fèi)失敗導(dǎo)致的服務(wù)取消
9:其他
<SPID>419613</SPID> SP的企業(yè)代碼
<SPServiceID>-LTYLBY</SPServiceID> SP中該服務(wù)的服務(wù)代碼,標(biāo)示每一種業(yè)務(wù)的內(nèi)容,并也叫計(jì)費(fèi)代碼,業(yè)務(wù)代碼
<AccessMode>3</AccessMode> 服務(wù)的訪問方式3:SMS 2:WAP 1:WEB
<FeatureStr>MTA2NjIxNDQgVERBRA==</FeatureStr> 服務(wù)訂購參數(shù),用BASE64編碼
</SyncOrderRelationReq>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
2、SyncOrderRelationResp
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="xmlns:SOAP-ENC="xmlns:xsi="xmlns:xsd="<%=TransactionID %>
</dsmp:TransactionID> 該消息編號
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<dsmp:SyncOrderRelationResp xmlns:dsmp="<MsgType>SyncOrderRelationResp</MsgType>
<Version><%=Version %></Version> 該接口消息的版本號,本次所有的接口消息的版本都為“1.5.0
<hRet><%=hRet %></hRet>
</dsmp:SyncOrderRelationResp>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
3、取消服務(wù)請求包
反向取消流程描述:
反向取消是從SP發(fā)起的取消流程,MISC在處理來自SP的取消消息的時候,其處理流程和來自其他網(wǎng)元的消息一樣處理,流程如下:
(0) SP代替用戶,向MISC發(fā)起反向取消請求UnSubscribeServiceReq并等待MISC處理;
(0) MISC對消息中的來源地址、企業(yè)代碼進(jìn)行鑒權(quán),判斷是否允許該SP進(jìn)行反向取消;
(0) 接入鑒權(quán)成功后,再進(jìn)行用戶鑒權(quán)和訂購關(guān)系鑒權(quán),判斷用戶狀態(tài)是否正確以及是否存在訂購關(guān)系;
(0) 上面鑒權(quán)成功后,MISC向SP發(fā)送訂購關(guān)系同步請求包SyncOrderRelationReq;
(0) SP收到同步請求后,對訂購請求做相應(yīng)的取消處理,并返回訂購關(guān)系同步應(yīng)答SyncOrderRelationResp;
(0) MISC收到應(yīng)答后,判斷應(yīng)答值是否為0。如果應(yīng)答值為0,則在MISC中取消訂購關(guān)系,并給SP返回成功的反向取消處理應(yīng)答包UnSubscribeServiceResp;如果應(yīng)答值不為0,則
不取消訂購關(guān)系,同時給SP返回不成功的反向取消應(yīng)答包UnSubscribeServiceResp;
(0) SP如果收到MISC的錯誤響應(yīng),則說明取消失敗,SP必須對這個失敗消息做相應(yīng)處理,比如把已取消的訂購關(guān)系恢復(fù)等等;
(0) 如果收到MISC的正確響應(yīng),則SP可以不做任何處理;
<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="</SOAP-ENV:Header>
<SOAP-ENV:Body>
<UnSubscribeServiceReq xmlns="<Version>1.5.0</Version>
<MsgType>UnSubscribeServiceReq</MsgType> 消息類型
<Send_Address> 發(fā)送方的地址
<DeviceType>400</DeviceType>
<DeviceID>913002</DeviceID>
</Send_Address>
<Dest_Address> 接收方的地址
<DeviceType>0</DeviceType>
<DeviceID>0024</DeviceID>
</Dest_Address>
<FeeUser_ID> 計(jì)費(fèi)用戶標(biāo)識
<UserIDType>1</UserIDType> 見下面的定義
<MSISDN>13805002424</MSISDN> 用戶手機(jī)號
<PseudoCode />
</FeeUser_ID>
<DestUser_ID> 使用用戶標(biāo)識當(dāng)使用用戶和計(jì)費(fèi)用戶為同一用戶的時候,F(xiàn)eeUser_ID和DestUser_ID的值相同。
<UserIDType>1</UserIDType>
<MSISDN>13805002424</MSISDN>
<PseudoCode />
</DestUser_ID>
<Service_ID> 服務(wù)標(biāo)識
<ServiceIDType>1</ServiceIDType>
<SPID>913002</SPID>
<SPServiceID>-TQAAU</SPServiceID>
<AccessNo />
<FeatureStr />
</Service_ID>
<FeatureStr />
</UnSubscribeServiceReq>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
取消服務(wù)回應(yīng)包
<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="<SOAP-ENV:Header>
<dsmp:TransactionID xmlns:dsmp="9130020301801050http://www.monternet.com/dsmp/schemas/">9130020301801050</dsmp:TransactionID>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<UnSubscribeServiceResp xmlns="<Version>1.5.0</Version>
<MsgType>UnSubscribeServiceResp</MsgType>
<hRet>0</hRet> 返回值:見下文定義
</UnSubscribeServiceResp>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
4、返回值定義
在HTTP 通信時的狀態(tài)碼請參見HTTP/1.1 協(xié)議中規(guī)定的狀態(tài)碼值,不包含在本
規(guī)范的返回值統(tǒng)一定義中。
具體描述如下:
0 : 成功
1 : 未知錯誤
2-99:保留
4000-4999 為MISC 與SP 之間的接口消息中的錯誤代碼:
4000: 無效的msgtype
4001: 無效的action_id;
4002: 無效的action_reasonid;
4003: 無效的SP ID
4004: 無效的serviceID
4005: 無效的pseudocode
4006: 無效的accessmode
4007: MISC 同步開通服務(wù),但SP 端已存在訂購關(guān)系,且狀態(tài)為開通
4008: MISC 同步開通服務(wù),且SP 端不存在訂購關(guān)系,但開通服務(wù)失敗
4009: MISC 同步開通服務(wù),但SP 端已存在訂購關(guān)系, 且狀態(tài)為暫停
4010: MISC 同步停止服務(wù), 且SP 端存在訂購關(guān)系, 但取消服務(wù)失敗
4011: MISC 同步停止服務(wù), 但SP 端不存在訂購關(guān)系
4012: MISC 同步暫停服務(wù), 且SP 端存在訂購關(guān)系, 但暫停服務(wù)失敗
4013: MISC 同步暫停服務(wù), 但SP 端不存在訂購關(guān)系
4014: MISC 同步暫停服務(wù), 但SP 端已存在訂購關(guān)系, 且狀態(tài)為暫停
4015: MISC 同步激活服務(wù), 但SP 端已存在訂購關(guān)系, 且狀態(tài)為開通
4016: MISC 同步激活服務(wù), 但SP 端不存在訂購關(guān)系
4017: MISC 同步激活服務(wù), 且SP 端存在訂購關(guān)系, 但激活服務(wù)失敗
9000-9999 為系統(tǒng)級錯誤:
9000: 系統(tǒng)磁盤讀寫錯誤
9001: 網(wǎng)絡(luò)異常
9002: 網(wǎng)絡(luò)錯誤
9003: 業(yè)務(wù)網(wǎng)關(guān)忙,業(yè)務(wù)網(wǎng)關(guān)緩存
9004: 業(yè)務(wù)網(wǎng)關(guān)忙,并且業(yè)務(wù)網(wǎng)關(guān)緩沖區(qū)滿,MISC 緩存,并暫時不要發(fā)送消息,
等待一段時間重試。
9005: MISC 忙,MISC 緩存
9006: MISC 忙,并且MISC 緩沖區(qū)滿,業(yè)務(wù)網(wǎng)關(guān)緩存,并暫時不要發(fā)送消息,等待一段時間重試。
9007: 業(yè)務(wù)網(wǎng)關(guān)超過限制的流量
9008: MISC 異常,并不可用
9009: 業(yè)務(wù)網(wǎng)關(guān)異常,并不可用
9010: 該業(yè)務(wù)網(wǎng)關(guān)沒有權(quán)限調(diào)用該接口消息
9011: MISC 沒有權(quán)限發(fā)送該接口消息給業(yè)務(wù)網(wǎng)關(guān)
9012: 版本不支持
第 6 頁
MISC SP 業(yè)務(wù)反向接口
9013: 消息類型不對,系統(tǒng)不支持
9014: 驗(yàn)證錯誤,無法解析SOAP 和XML 結(jié)構(gòu)、缺少必須存在的字段,或者消息,格式不正確
9015: 拒絕消息,服務(wù)器無法完成請求的服務(wù)
5、DeviceType 定義
設(shè)備類型
0:DSMP
100:ISMG
101:WAP SP PROXY
1XX:其他業(yè)務(wù)網(wǎng)關(guān)
200:WAP PORTAL
201:WWW PORTAL
202:VOICE PORTAL
203:PDA PORTAL
2XX:其他門戶
300:MMSC
301:KJAVA SERVER
302:LSP
3XX:其它應(yīng)用平臺
400:SP
6、DeviceID 定義
設(shè)備編號,設(shè)備編號采用各設(shè)備的入網(wǎng)編號,例如短信網(wǎng)關(guān)使用網(wǎng)關(guān)ID、對SP使用其企業(yè)代碼,該設(shè)備編號由DSMP分配,并且在同一設(shè)備類型中該編號唯一
7、UserIDType 定義
用戶標(biāo)識類型
1:用手機(jī)號標(biāo)識
2:用偽碼標(biāo)識
3:兩者同時標(biāo)識
8、SPType
SP業(yè)務(wù)種類
1:所有的SP
2:提供短信服務(wù)的SP
3:提供WAP服務(wù)的SP
4:提供MMS服務(wù)的SP
5:提供KJAVA服務(wù)的SP
6:提供MAIL服務(wù)的SP
7:提供LBS服務(wù)的SP
8:提供WWW服務(wù)的SP
9~:擴(kuò)展
9、ServiceIDType
服務(wù)類型的標(biāo)識方式:
1:SPID+SPServiceID
2:AccessNo+FeatureStr
五、MISC對MO的業(yè)務(wù)匹配處理流程說明
處理說明:
1、 SP進(jìn)行業(yè)務(wù)申請時,按照不同的業(yè)務(wù)類型填寫業(yè)務(wù)指令,根據(jù)業(yè)務(wù)類型的不同,可能存在“訂購指令、取消指令、點(diǎn)播指令和普通MO”4種指令模式,設(shè)置指令時,需要指
定指令對應(yīng)的發(fā)送號碼(長號碼)和指令內(nèi)容,并可分別指定對發(fā)送號碼和指令內(nèi)容是否需要做精確匹配。
精確匹配的意思是指只有當(dāng)所匹配內(nèi)容和所設(shè)置的指令需要完全相同(包括長度也一樣)時,才算匹配。例如如果設(shè)置了發(fā)送號碼為“800101”,則只有當(dāng)用戶發(fā)送一條MO到
“80010123”時,將不會匹配上“800101”的那條指令;只有發(fā)往“800101”的指令才會被匹配上。
【注】對于同一種指令模式,每個服務(wù)可以設(shè)置多條,例如一個服務(wù)可以設(shè)置5條訂購指令和5條取消指令,目前MISC可以支持超過5條的指令,但是從方便管理的角度考慮,對于同
一條模式的指令,建議SP設(shè)置時不要超過5條。
2、 用戶的MO短信由兩部分構(gòu)成:發(fā)送號碼和發(fā)送的內(nèi)容,再加上業(yè)務(wù)申請時設(shè)置的匹配模式,這三樣共同構(gòu)成了匹配時的依據(jù)。
3、 當(dāng)一條MO到MISC進(jìn)行鑒權(quán)時,MISC先對發(fā)送號碼(長號碼)進(jìn)行匹配,按照最大匹配+精確匹配的原則進(jìn)行。如果有匹配成功的,則取出對應(yīng)業(yè)務(wù)代碼和指令類型;如果匹
配不上,則鑒權(quán)失敗,該MO將不能發(fā)給SP。
4、 在上一步匹配出來的列表中,再對指令內(nèi)容進(jìn)行匹配,也是按照最大匹配+精確匹配的原則進(jìn)行。如果有能匹配上的結(jié)果,則取出對應(yīng)的業(yè)務(wù)代碼和指令類型;如果沒有能
對應(yīng)上的匹配結(jié)果,則取Service ID返回空值,同時通知短信網(wǎng)關(guān)將此條短信當(dāng)作普通MO向SP轉(zhuǎn)發(fā)。
5、 SP在填寫MO定購指令是盡量避免有嵌套的指令(例如同時存在“888801”和“8888011”的AccessNO)。
6、 對于匹配成功的指令,MISC根據(jù)匹配出的指令的模式不同,處理方式如下:
對于訂購指令,則MISC將檢查該用戶是否已訂購該服務(wù),如果沒有訂購,則MISC將會完成訂購,同時會將用戶MO中的內(nèi)容通過用戶訂購關(guān)系數(shù)據(jù)同步接口(Provision接口
)傳送給SP,在Provision接口中的FeatureStr字段中將會有用戶MO的長號碼和指令內(nèi)容,長號碼和指令內(nèi)容之間將以空格符分隔。同時MISC會通知短信網(wǎng)關(guān)這是一條訂購指令,短
信網(wǎng)關(guān)將不向SP轉(zhuǎn)發(fā)該MO。
如果該用戶已訂購該服務(wù),則對于包月類服務(wù),MISC會將該MO當(dāng)作普通MO向短信網(wǎng)關(guān)返回鑒權(quán)成功的結(jié)果,通知短信網(wǎng)關(guān)將此條短信當(dāng)作普通MO向SP轉(zhuǎn)發(fā);對于定制包月類服務(wù),
則MISC會將該MO當(dāng)作點(diǎn)播類型的MO向短信網(wǎng)關(guān)返回鑒權(quán)成功的結(jié)果,通知短信網(wǎng)關(guān)將此條短信當(dāng)作點(diǎn)播MO向SP轉(zhuǎn)發(fā)。
對于取消指令,則MISC將檢查該用戶是否已訂購該服務(wù),如果已經(jīng)訂購,則MISC將會完成取消,同時會將用戶MO中的內(nèi)容通過用戶訂購關(guān)系數(shù)據(jù)同步接口(Provision接口
)傳送給SP,在Provision接口中的FeatureStr字段中將會有用戶MO的長號碼和指令內(nèi)容,長號碼和指令內(nèi)容之間將以空格符分隔。
如果該用戶未訂購該服務(wù),則MISC會向短信網(wǎng)關(guān)返回鑒權(quán)失敗,短信網(wǎng)關(guān)將不會向SP轉(zhuǎn)發(fā)該MO。
對于點(diǎn)播指令,MISC需要先判斷該業(yè)務(wù)是定制點(diǎn)播類業(yè)務(wù)還是普通的點(diǎn)播類業(yè)務(wù)
1) 對于定制點(diǎn)播類業(yè)務(wù),需要判斷用戶是否已訂購該服務(wù),如果已訂購,則MISC會生成臨時訂購關(guān)系(LinkID),同時向短信網(wǎng)關(guān)返回鑒權(quán)成功,并將LinkID返回給短信網(wǎng)
關(guān),由短信網(wǎng)關(guān)將該MO作為點(diǎn)播MO向SP轉(zhuǎn)發(fā);如果用戶未訂購,則MISC只是簡單向短信網(wǎng)關(guān)返回鑒權(quán)成功的響應(yīng),通知短信網(wǎng)關(guān)將此條短信當(dāng)作普通MO向SP轉(zhuǎn)發(fā)。
2) 對于點(diǎn)播類業(yè)務(wù),則MISC會直接生成臨時訂購關(guān)系(LinkID),同時向短信網(wǎng)關(guān)返回鑒權(quán)成功,并將LinkID返回給短信網(wǎng)關(guān),由短信網(wǎng)關(guān)將該MO作為點(diǎn)播MO向SP轉(zhuǎn)發(fā)。
對于普通MO短信,MISC向短信網(wǎng)關(guān)返回鑒權(quán)成功的響應(yīng),通知短信網(wǎng)關(guān)將此條短信當(dāng)作普通MO向SP轉(zhuǎn)發(fā)。
范例說明:
seq AccessNO FeatureStr ANCheckFlag FSCheckFlag
1 8888 xw 1 0
2 888801 xw 0 0
3 888801 xw1 0 1
4 8888 01xw 1 1
5 8888 (null) 0 0 (HELP)
【注】AccessNO表示MO的發(fā)送號碼
FeatureStr表示指令內(nèi)容
ANCheckFlag表示對AccessNO是否使用精確匹配
FSCheckFlag表示對指令內(nèi)容是否使用精確匹配
針對上面的設(shè)置,
用戶發(fā)送 xw1到8888011我們匹配第3條記錄
用戶發(fā)送 xw01到888801我們將匹配到第2條記錄(先最長匹配接入號)
用戶發(fā)送01xw到888802我們匹配到第5條記錄(不會匹配到第4條記錄,因?yàn)榈?條記錄的AccessNO是精確匹配)
用戶發(fā)送01xw到8888我們匹配到第4條記錄
用戶發(fā)送 xw01到8888我們匹配第1條記錄
用戶發(fā)送 A到8888我們匹配第5條記錄,
六、業(yè)務(wù)指令舉例
業(yè)務(wù)類別 業(yè)務(wù)名稱 IOD PUSH STK 產(chǎn)品描述
業(yè)務(wù)代碼 點(diǎn)播指令 計(jì)費(fèi)類型 價格 返回條數(shù) 業(yè)務(wù)代碼 計(jì)費(fèi)類型 價格 發(fā)送頻率 業(yè)務(wù)代碼
計(jì)費(fèi)類型 價格 返回條數(shù)
應(yīng)用服務(wù) 哈妮 HY 發(fā)自然語句到XXX 包月 5元 1 通過自然語言和虛擬主
持“哈妮”交流
聊天 帥哥靚妹 LT 發(fā)A到XXX 按條 0.2元 1 用戶注冊分配ID號,通
過ID號找聊友匿名聊天交友
測試 其實(shí)不懂你的心 CS 發(fā)P到XXX 包月 7元 1 心理測試大全
游戲 風(fēng)月俏佳人 JR 法M到XXX 包月 7元 1 戀愛角色游戲
游戲 非常告白 GB 法GB到XXX 按條 0.2元 1 , 情感故事
測試 識情男女 NV 法NV到XXX 按條 0.2元 1 愛情測試游戲
傳情語 魚和水的故事 YS 法YS到XXX 按條 0.1元 1,2 傳情語
測試 官運(yùn)財(cái)運(yùn)桃花運(yùn) YU 法YU到XXX 按條 0.2元 1 生日測試
游戲 女兒國 YG 法YG到XXX 按條 0.2元 1 新西游記角色游戲
游戲 向左走向右走 ZY 法ZY到XXX 按條 0.2元 1,2 漫畫短信故事
游戲 心上人 XR 法XR到XXX 按條 0.3元 1 通過對方的留言,猜他的手機(jī)號
測試 星星知我心 XX 法XX到XXX 按條 0.2元 1,3 星座測試
易程 塔羅牌 TL 法TL到XXX 包月 7.0元 1,3 塔羅牌短信版
易程 姓名與人生 XM 法XM到XXX 按條 0.4元 1,4 姓名測試
游戲 前世今生 QS 法QS到XXX 按條 0.5元 1,4 生日游戲
——即只要是上面的字母開頭的發(fā)送到相應(yīng)端口開頭的,移動都認(rèn)為存在點(diǎn)播或者定制關(guān)系,具體怎么區(qū)別是什么業(yè)務(wù),有provision接受到的包來處理,目前基本已經(jīng)做到。
——由于移動已經(jīng)沒有免費(fèi)代碼,即原來的free等都不能使用,故不再有錯誤提示,如果已經(jīng)設(shè)計(jì)有的,則是扣費(fèi)信息;
——只要用戶存在了定購關(guān)系,所有的下行都必須使用計(jì)費(fèi)代碼下行,定制業(yè)務(wù)則會扣費(fèi),包月業(yè)務(wù)用計(jì)費(fèi)代碼下發(fā),則移動不會將其當(dāng)作沉默用戶
以上是總結(jié)SMS開發(fā)經(jīng)驗(yàn)所得的重點(diǎn)內(nèi)容,由于是剛接觸幾個月,有很多細(xì)節(jié)不能包括,詳細(xì)的內(nèi)容可以察看相關(guān)的文檔。還有理解上肯定存在很多誤區(qū),大家可以到我的BLOG交流
。歡迎轉(zhuǎn)載,但注明出處。blog.csdn.net/cutemose