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