一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

短信程序:基于CMPP3.0 協(xié)議SP端的實(shí)現(xiàn)C#

 昵稱8888806 2012-03-02

短信程序:基于CMPP3.0 協(xié)議SP端的實(shí)現(xiàn)C# [復(fù)制鏈接]查看:554回復(fù):0

1#
短信程序:基于 CMPP3.0 協(xié)議 SP 端的實(shí)現(xiàn)(C#)     最近一段是時(shí)間項(xiàng)目可能需要提供短信功能,客戶作為一個(gè) SP 端提供短信業(yè)務(wù);網(wǎng)上搜索了一番,找到了比較不錯(cuò)的 CMPP30 類的代碼,該代碼基本實(shí)現(xiàn)了 CMPP3.0 協(xié)議中的短信收發(fā)、網(wǎng)絡(luò)重連等功能。本人將其重新改造,提供了同步發(fā)送、異步發(fā)送的支持(原先版本的異步發(fā)送并非標(biāo)準(zhǔn)的 .NET 異步發(fā)送模式,這部分代碼是一個(gè)異步操作實(shí)現(xiàn)的“范本”,可供大家參考),增加了對(duì) PROVISION 接口的支持。     本人已將這些代碼打包為一個(gè) RAR 文件,稍后會(huì)上傳到 Internet 供大家交流、學(xué)習(xí);下面將對(duì)這版 CMPP30 類的 API 進(jìn)行簡(jiǎn)要介紹:           1)用于收發(fā)短信 CMPP30 類的 API:

Code   1/**//// <summary>   2/// CMPP30 短信網(wǎng)關(guān)通訊組件(供 SP 使用)。   3/// </summary>   4public class CMPP30   5{   6   7    屬性#region 屬性   8    /**//// <summary>   9    /// SMS 事件。 10    /// </summary> 11 public event EventHandler<SMSEventArgs> SMS; 12    #endregion 13 14    構(gòu)造函數(shù)#region 構(gòu)造函數(shù) 15    /**//// <summary> 16    /// 初始化 <see cref="CMPP30"/> 類新實(shí)例。 17    /// </summary> 18 public CMPP30(string spid, string password, string address, int port); 19    #endregion 20 21    公有方法#region 公有方法 22    /**//// <summary> 23    /// 啟動(dòng) CMPP30 服務(wù)。 24    /// </summary> 25 public void Start(); 26    /**//// <summary> 27    /// 發(fā)送短信。 28    /// </summary> 29    /// /// <param name="text"> 30    /// 信息內(nèi)容。 31    /// </param> 32    /// <param name="encoding"> 33    /// 信息編碼。 34    /// </param> 35    /// <param name="sourceID"> 36    /// SP的服務(wù)代碼,將顯示在最終用戶手機(jī)上的短信主叫號(hào)碼。 37    /// </param> 38    /// <param name="destinations"> 39    /// 接收短信的電話號(hào)碼列表。 40    /// </param> 41    /// <param name="serviceID"> 42    /// 業(yè)務(wù)標(biāo)識(shí)(如:woodpack)。 43    /// </param> 44    /// <param name="needReport"> 45    /// 是否要求返回狀態(tài)報(bào)告。 46    /// </param> 47    /// <param name="feeType"> 48    /// 資費(fèi)類別。 49    /// </param> 50    /// <param name="feeUserType"> 51    /// 計(jì)費(fèi)用戶。 52    /// </param> 53    /// <param name="feeUser"> 54    /// 被計(jì)費(fèi)的號(hào)碼(feeUserType 值為 FeeUser 時(shí)有效)。 55    /// </param> 56    /// <param name="realUser"> 57    /// 被計(jì)費(fèi)號(hào)碼的真實(shí)身份(“真實(shí)號(hào)碼”或“偽碼”)。 58    /// </param> 59    /// <param name="informationFee"> 60    /// 信息費(fèi)(以“分”為單位,如:10 分代表 1角)。 61    /// </param> 62    /// <param name="linkID"> 63    /// 點(diǎn)播業(yè)務(wù)的 LinkID。 64    /// </param> 65 public CMPP_SUBMIT_RESP Send( 66        string text, 67        CEncoding encoding, 68        string sourceID, 69        string[] destinations, 70        string serviceID, 71        bool needReport, 72        FeeType feeType, 73        FeeUserType feeUserType, 74        string feeUser, 75        bool realUser, 76        int informationFee, 77        string linkID); 78    /**//// <summary> 79    /// 發(fā)送短信。 80    /// </summary> 81 public CMPP_SUBMIT_RESP Send(CMPP_SUBMIT submit); 82    /**//// <summary> 83    /// 開始異步發(fā)送短信。 84    /// </summary> 85    /// <param name="text"> 86    /// 信息內(nèi)容。 87    /// </param> 88    /// <param name="encoding"> 89    /// 信息編碼。 90    /// </param> 91    /// <param name="sourceID"> 92    /// SP的服務(wù)代碼,將顯示在最終用戶手機(jī)上的短信主叫號(hào)碼。 93    /// </param> 94    /// <param name="destinations"> 95    /// 接收短信的電話號(hào)碼列表。 96    /// </param> 97    /// <param name="serviceID"> 98    /// 業(yè)務(wù)標(biāo)識(shí)(如:woodpack)。 99    /// </param> 100    /// <param name="needReport"> 101    /// 是否要求返回狀態(tài)報(bào)告。 102    /// </param> 103    /// <param name="feeType"> 104    /// 資費(fèi)類別。 105    /// </param> 106    /// <param name="feeUserType"> 107    /// 計(jì)費(fèi)用戶。 108    /// </param> 109    /// <param name="feeUser"> 110    /// 被計(jì)費(fèi)的號(hào)碼(feeUserType 值為 FeeUser 時(shí)有效)。 111    /// </param> 112    /// <param name="realUser"> 113    /// 被計(jì)費(fèi)號(hào)碼的真實(shí)身份(“真實(shí)號(hào)碼”或“偽碼”)。 114    /// </param> 115    /// <param name="informationFee"> 116    /// 信息費(fèi)(以“分”為單位,如:10 分代表 1角)。 117    /// </param> 118    /// <param name="linkID"> 119    /// 點(diǎn)播業(yè)務(wù)的 LinkID。 120    /// </param> 121    /// <param name="callback"> 122    /// 異步回調(diào)函數(shù)。 123    /// </param> 124    /// <param name="asyncState"> 125    /// 傳遞給異步回調(diào)函數(shù)的參數(shù)。 126    /// </param> 127 public IAsyncResult BeginSend( 128        string text, 129        CEncoding encoding, 130        string sourceID, 131        string[] destinations, 132        string serviceID, 133        bool needReport, 134        FeeType feeType, 135        FeeUserType feeUserType, 136        string feeUser, 137        bool realUser, 138        int informationFee, 139        string linkID, 140        AsyncCallback callback, 141        object asyncState); 142    /**//// <summary> 143    /// 開始異步發(fā)送短信。 144    /// </summary> 145 public IAsyncResult BeginSend( 146        CMPP_SUBMIT submit, 147        AsyncCallback cb, 148        object asyncState); 149    /**//// <summary> 150    /// 結(jié)束異步發(fā)送短信。 151    /// </summary> 152 public CMPP_SUBMIT_RESP EndSend(IAsyncResult ar); 153    /**//// <summary> 154    /// 停止 CMPP30 服務(wù)。 155    /// </summary> 156 public void Stop(); 157    #endregion 158 159}

CMPP30 類 API

                      這個(gè)類是核心類,我的代碼注釋很清楚,所以就不再贅述;需要注意一下的就是 Send、BeginSend、EndSend 是符合 .NET 框架標(biāo)準(zhǔn)的異步操

                  作模式;與網(wǎng)上的 CMPP30 類不用的是 Send 函數(shù)要求傳入 CMPP_SUBMIT 數(shù)據(jù)包并返回一個(gè) CMPP_SUBMIT_RESP 包,這有利于調(diào)用者得到

                  由 ISMG 服務(wù)器返回的 MsgID 字段,否則調(diào)用者只能通過(guò) SMS 事件得到 CMPP_SUBMIT_RESP 包,但是僅僅有這個(gè)包是不能與其相對(duì)應(yīng)的

                  CMPP_SUBMIT 進(jìn)行匹配的。

                      另外說(shuō)一下,所有與 ISMG 的交互都會(huì)導(dǎo)致 SMS 事件的引發(fā),該事件參數(shù)中會(huì)提供一個(gè) SMS_EVENT 枚舉供事件處理程序使用,詳細(xì)信息請(qǐng)參

                  考 SMS_EVENT 的代碼。

                      最后對(duì)使用我代碼的朋友說(shuō)一下,Start 與 Stop 這兩個(gè)函數(shù)只能調(diào)用一次。如果你的程序中調(diào)用 Stop 停止了 CMPP30 服務(wù),則必須重新實(shí)例

                  化一個(gè)新的 CMPP30 對(duì)象來(lái)啟動(dòng)該服務(wù)。

          2)對(duì) PROVISION 正向訂購(gòu)/取消接口的支持:                       根據(jù) MISC1.6 的描述,對(duì) PROVISION 接口的實(shí)現(xiàn)應(yīng)該采用基于 SOAP 協(xié)議的 WEB 服務(wù)技術(shù),我這里提供了一個(gè) Provision 抽象類,該類繼                承自 System.Web.Services.WebService。呵呵,看出來(lái)了吧,我的想法就是讓 asmx 頁(yè)的后臺(tái)類繼承 Provision 類。該類封裝了 PROVISION 接                口中的 SyncOrderRelationReqSyncOrderRelationResp 包的實(shí)現(xiàn),將這對(duì)“發(fā)送/響應(yīng)”包的收發(fā)變?yōu)椤耙淮螌?duì) WEB 服務(wù)函數(shù)的調(diào)用”,當(dāng)接                收到 SyncOrderRelationReq 時(shí)就調(diào)用 Provision 類中的 SyncOrderRelationReq 函數(shù)(WebMethod),并將該函數(shù)返回值轉(zhuǎn)變?yōu)橐粋€(gè)                SyncOrderRelationResp 包返回給移動(dòng)的服務(wù)器。API 代碼如下:

Code   1/**//// <summary>   2/// 正向(反向)同步 PROVISION 接口服務(wù)。   3/// </summary>   4[WebService(Namespace = "http://www./dsmp/schemas/")]   5[SoapDocumentService(RoutingStyle = SoapServiceRoutingStyle.RequestElement)]   6public abstract class Provision : System.Web.Services.WebService   7{   8   9    屬性#region 屬性 10    /**//// <summary> 11    /// SOAP 消息編號(hào)(DSMG 調(diào)用該 WEB 服務(wù)時(shí)需要設(shè)置該信息)。 12    /// </summary> 13    [EditorBrowsable(EditorBrowsableState.Never)] 14    public TransactionID TransactionID; 15    #endregion 16 17    保護(hù)方法#region 保護(hù)方法 18    /**//// <summary> 19    /// MISC 因?yàn)槟撤N情況(如:用戶通過(guò)手機(jī)短信的方式執(zhí)行了某操作)更新了用戶訂購(gòu)關(guān)系(包括:訂購(gòu)、取消、暫停、激活)的時(shí)候,通過(guò)此函數(shù)發(fā)起和 SP 的更新訂購(gòu)關(guān)系的交互。 20    /// </summary> 21    /// <param name="id"> 22    /// 消息編號(hào)。 23    /// </param> 24    /// <param name="sendAddr"> 25    /// 發(fā)送方的地址。 26    /// </param> 27    /// <param name="destAddr"> 28    /// 接收方的地址。 29    /// </param> 30    /// <param name="feeUserID"> 31    /// 計(jì)費(fèi)用戶標(biāo)識(shí)。 32    /// </param> 33    /// <param name="destUserID"> 34    /// 使用用戶標(biāo)識(shí)(當(dāng)使用用戶和計(jì)費(fèi)用戶為同一用戶的時(shí)候,F(xiàn)eeUser_ID 和 DestUser_ID 的值相同)。 35    /// </param> 36    /// <param name="linkID"> 37    /// 臨時(shí)訂購(gòu)關(guān)系的事務(wù) ID。 38    /// </param> 39    /// <param name="actionID"> 40    /// 服務(wù)狀態(tài)管理動(dòng)作代碼(1:開通服務(wù);2:停止服務(wù);3:激活服務(wù);4:暫停服務(wù))。 41    /// </param> 42    /// <param name="actionReasonID"> 43    /// 產(chǎn)生服務(wù)狀態(tài)管理動(dòng)作原因的代碼(1:用戶發(fā)起行為;2:Admin&1860發(fā)起行為;3:Boss停機(jī);4:Boss開機(jī);5:Boss過(guò)戶;6:Boss銷戶;7:Boss改號(hào);8:扣費(fèi)失敗導(dǎo)致的服務(wù)取消;9:其他)。 44    /// </param> 45    /// <param name="spid"> 46    /// SP 的企業(yè)代碼。 47    /// </param> 48    /// <param name="serviceID"> 49    /// 業(yè)務(wù)標(biāo)識(shí),是數(shù)字、字母和符號(hào)的組合(長(zhǎng)度為 10,SP的業(yè)務(wù)類型,數(shù)字、字母和符號(hào)的組合,由SP自定,如圖片傳情可定為TPCQ,股票查詢可定義為11),也叫做計(jì)費(fèi)代碼。 50    /// </param> 51    /// <param name="accessMode"> 52    /// 服務(wù)的訪問(wèn)方式(1:WEB;2:WAP;3:SMS)。 53    /// </param> 54    /// <param name="featureStr"> 55    /// 服務(wù)訂購(gòu)參數(shù)(base64加密),內(nèi)容是長(zhǎng)號(hào)碼+空格+用戶發(fā)送內(nèi)容。 56    /// </param> 57    /// <param name="hResult"> 58    /// 返回值(0:成功;1:未知錯(cuò)誤;2-99:保留;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 同步開通服務(wù),但SP 端已存在訂購(gòu)關(guān)系,且狀態(tài)為開通;4008:MISC 同步開通服務(wù),且SP 端不存在訂購(gòu)關(guān)系,但開通服務(wù)失??;4009:MISC 同步開通服務(wù),但SP 端已存在訂購(gòu)關(guān)系, 且狀態(tài)為暫停;4010:MISC 同步停止服務(wù), 且SP 端存在訂購(gòu)關(guān)系, 但取消服務(wù)失??;4011:MISC 同步停止服務(wù), 但SP 端不存在訂購(gòu)關(guān)系;4012:MISC 同步暫停服務(wù), 且SP 端存在訂購(gòu)關(guān)系, 但暫停服務(wù)失??;4013:MISC 同步暫停服務(wù), 但SP 端不存在訂購(gòu)關(guān)系;4014:MISC 同步暫停服務(wù), 但SP 端已存在訂購(gòu)關(guān)系, 且狀態(tài)為暫停;4015:MISC 同步激活服務(wù), 但SP 端已存在訂購(gòu)關(guān)系, 且狀態(tài)為開通;4016:MISC 同步激活服務(wù), 但SP 端不存在訂購(gòu)關(guān)系;4017:MISC 同步激活服務(wù), 且SP 端存在訂購(gòu)關(guān)系, 但激活服務(wù)失??;9000:系統(tǒng)磁盤讀寫錯(cuò)誤;9001:網(wǎng)絡(luò)異常;9002:網(wǎng)絡(luò)錯(cuò)誤;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 緩存,并暫時(shí)不要發(fā)送消息,等待一段時(shí)間重試;9005:MISC 忙,MISC 緩存;9006:MISC 忙,并且MISC 緩沖區(qū)滿,業(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)有權(quán)限調(diào)用該接口消息;9011:MISC 沒(méi)有權(quán)限發(fā)送該接口消息給業(yè)務(wù)網(wǎng)關(guān);9012:版本不支持;9013:消息類型不對(duì),系統(tǒng)不支持;9014:驗(yàn)證錯(cuò)誤,無(wú)法解析SOAP 和XML 結(jié)構(gòu)、缺少必須存在的字段,或者消息,格式不正確;9015:拒絕消息,服務(wù)器無(wú)法完成請(qǐng)求的服務(wù))。 59    /// </param> 60 protected abstract void OnSyncOrderRelationReq( 61        string id, 62        AddressInfo sendAddr, 63        AddressInfo destAddr, 64        UserID feeUserID, 65        UserID destUserID, 66        string linkID, 67        int actionID, 68        int actionReasonID, 69        string spid, 70        string serviceID, 71        int accessMode, 72        byte[] featureStr, 73        out int hResult); 74    #endregion 75 76    公有方法#region 公有方法 77    /**//// <summary> 78    /// MISC 因?yàn)槟撤N情況(如:用戶通過(guò)手機(jī)短信的方式執(zhí)行了某操作)更新了用戶訂購(gòu)關(guān)系(包括:訂購(gòu)、取消、暫停、激活)的時(shí)候,通過(guò)此函數(shù)發(fā)起和 SP 的更新訂購(gòu)關(guān)系的交互。 79    /// </summary> 80    /// <param name="Version"> 81    /// 接口消息的版本號(hào),目前接口消息的版本都為“1.5.0” 82    /// </param> 83    /// <param name="MsgType"> 84    /// 消息類型。 85    /// </param> 86    /// <param name="Send_Address"> 87    /// 發(fā)送方的地址。 88    /// </param> 89    /// <param name="Dest_Address"> 90    /// 接收方的地址。 91    /// </param> 92    /// <param name="FeeUser_ID"> 93    /// 計(jì)費(fèi)用戶標(biāo)識(shí)。 94    /// </param> 95    /// <param name="DestUser_ID"> 96    /// 使用用戶標(biāo)識(shí)(當(dāng)使用用戶和計(jì)費(fèi)用戶為同一用戶的時(shí)候,F(xiàn)eeUser_ID 和 DestUser_ID 的值相同)。 97    /// </param> 98    /// <param name="LinkID"> 99    /// 臨時(shí)訂購(gòu)關(guān)系的事務(wù) ID。 100    /// </param> 101    /// <param name="ActionID"> 102    /// 服務(wù)狀態(tài)管理動(dòng)作代碼(1:開通服務(wù);2:停止服務(wù);3:激活服務(wù);4:暫停服務(wù))。 103    /// </param> 104    /// <param name="ActionReasonID"> 105    /// 產(chǎn)生服務(wù)狀態(tài)管理動(dòng)作原因的代碼(1:用戶發(fā)起行為;2:Admin&1860發(fā)起行為;3:Boss停機(jī);4:Boss開機(jī);5:Boss過(guò)戶;6:Boss銷戶;7:Boss改號(hào);8:扣費(fèi)失敗導(dǎo)致的服務(wù)取消;9:其他)。 106    /// </param> 107    /// <param name="SPID"> 108    /// SP 的企業(yè)代碼。 109    /// </param> 110    /// <param name="SPServiceID"> 111    /// 業(yè)務(wù)標(biāo)識(shí),是數(shù)字、字母和符號(hào)的組合(長(zhǎng)度為 10,SP的業(yè)務(wù)類型,數(shù)字、字母和符號(hào)的組合,由SP自定,如圖片傳情可定為TPCQ,股票查詢可定義為11),也叫做計(jì)費(fèi)代碼。 112    /// </param> 113    /// <param name="AccessMode"> 114    /// 服務(wù)的訪問(wèn)方式(1:WEB;2:WAP;3:SMS)。 115    /// </param> 116    /// <param name="FeatureStr"> 117    /// 服務(wù)訂購(gòu)參數(shù)(base64加密),內(nèi)容是長(zhǎng)號(hào)碼+空格+用戶發(fā)送內(nèi)容。 118    /// </param> 119    /// <param name="hRet"> 120    /// 返回值(0:成功;1:未知錯(cuò)誤;2-99:保留;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 同步開通服務(wù),但SP 端已存在訂購(gòu)關(guān)系,且狀態(tài)為開通;4008:MISC 同步開通服務(wù),且SP 端不存在訂購(gòu)關(guān)系,但開通服務(wù)失??;4009:MISC 同步開通服務(wù),但SP 端已存在訂購(gòu)關(guān)系, 且狀態(tài)為暫停;4010:MISC 同步停止服務(wù), 且SP 端存在訂購(gòu)關(guān)系, 但取消服務(wù)失??;4011:MISC 同步停止服務(wù), 但SP 端不存在訂購(gòu)關(guān)系;4012:MISC 同步暫停服務(wù), 且SP 端存在訂購(gòu)關(guān)系, 但暫停服務(wù)失??;4013:MISC 同步暫停服務(wù), 但SP 端不存在訂購(gòu)關(guān)系;4014:MISC 同步暫停服務(wù), 但SP 端已存在訂購(gòu)關(guān)系, 且狀態(tài)為暫停;4015:MISC 同步激活服務(wù), 但SP 端已存在訂購(gòu)關(guān)系, 且狀態(tài)為開通;4016:MISC 同步激活服務(wù), 但SP 端不存在訂購(gòu)關(guān)系;4017:MISC 同步激活服務(wù), 且SP 端存在訂購(gòu)關(guān)系, 但激活服務(wù)失??;9000:系統(tǒng)磁盤讀寫錯(cuò)誤;9001:網(wǎng)絡(luò)異常;9002:網(wǎng)絡(luò)錯(cuò)誤;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 緩存,并暫時(shí)不要發(fā)送消息,等待一段時(shí)間重試;9005:MISC 忙,MISC 緩存;9006:MISC 忙,并且MISC 緩沖區(qū)滿,業(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)有權(quán)限調(diào)用該接口消息;9011:MISC 沒(méi)有權(quán)限發(fā)送該接口消息給業(yè)務(wù)網(wǎng)關(guān);9012:版本不支持;9013:消息類型不對(duì),系統(tǒng)不支持;9014:驗(yàn)證錯(cuò)誤,無(wú)法解析SOAP 和XML 結(jié)構(gòu)、缺少必須存在的字段,或者消息,格式不正確;9015:拒絕消息,服務(wù)器無(wú)法完成請(qǐng)求的服務(wù))。 121    /// </param> 122    [WebMethod] 123    [SoapHeader("TransactionID", Direction = SoapHeaderDirection.InOut)] 124    [SoapDocumentMethod("sim.SyncOrderRelation", RequestElementName = "SyncOrderRelationReq", ResponseElementName = "SyncOrderRelationResp")] 125    [return: System.Xml.Serialization.SoapElementAttribute("return")] 126    [EditorBrowsable(EditorBrowsableState.Never)] 127    public void SyncOrderRelationReq( 128        ref string Version, 129        ref string MsgType, 130        AddressInfo Send_Address, 131        AddressInfo Dest_Address, 132        UserID FeeUser_ID, 133        UserID DestUser_ID, 134        string LinkID, 135        int ActionID, 136        int ActionReasonID, 137        string SPID, 138        string SPServiceID, 139        int AccessMode, 140        byte[] FeatureStr, 141        out int hRet) 142    { 143 144        Version = "1.5.0"; 145        MsgType = "SyncOrderRelationResp"; 146 147        OnSyncOrderRelationReq( 148            TransactionID == null ? null : TransactionID.ID, 149            Send_Address, 150            Dest_Address, 151            FeeUser_ID, 152            DestUser_ID, 153            LinkID, 154            ActionID, 155            ActionReasonID, 156            SPID, SPServiceID, 157            AccessMode, 158            FeatureStr, 159            out hRet); 160    } 161    #endregion 162 163}

Provision 類的 API

                       注意:asmx 頁(yè)還是需要使用者自己建的,只需要將 asmx 的后臺(tái)代碼類繼承 Provision 類,并實(shí)現(xiàn)抽象函數(shù) OnSyncOrderRelationReq

                   可,在該抽象函數(shù)內(nèi),記錄手機(jī)用戶訂購(gòu)(或取消)業(yè)務(wù)的信息。

          3)對(duì) PROVISION 反向訂購(gòu)/取消接口的支持:                    最后再簡(jiǎn)要地說(shuō)一下關(guān)于對(duì)反向訂購(gòu)/取消的支持,我的實(shí)現(xiàn)就是對(duì) dsmp.wsdl 這個(gè) WEB 服務(wù)的一個(gè)簡(jiǎn)單封裝。該 WEB 在移動(dòng)的服務(wù)器上發(fā)               布。需要說(shuō)明的是:根據(jù)反向訂購(gòu)/取消的業(yè)務(wù)流程,在這個(gè)過(guò)程中會(huì)執(zhí)行正向訂購(gòu)/取消的那個(gè) WEB 服務(wù)函數(shù),因?yàn)榉聪蛴嗁?gòu)/取消業(yè)務(wù)也會(huì)要求SP               接收一個(gè) SyncOrderRelationReq 包并返回與其相應(yīng)的 SyncOrderRelationResp 包。所以 PROVISION 實(shí)現(xiàn)的關(guān)鍵還是在 Provision 類。               下面是本文代碼的下載鏈接:http://blogs.com/arcadiaray/CMPP30.rar

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    九九热最新视频免费观看| 殴美女美女大码性淫生活在线播放| 亚洲少妇人妻一区二区| 91在线播放在线播放观看| 午夜视频成人在线免费| 色婷婷久久五月中文字幕| 欧美日韩精品久久第一页| 久久国产精品亚州精品毛片| 亚洲日本中文字幕视频在线观看| 美国欧洲日本韩国二本道| 精品少妇人妻av免费看| 国产av一区二区三区四区五区| 日韩精品一区二区三区含羞含羞草| 中文字幕中文字幕在线十八区| 欧美性高清一区二区三区视频| 亚洲日本久久国产精品久久| 国产av熟女一区二区三区四区 | 最新69国产精品视频| 亚洲精品国产美女久久久99| 欧美乱视频一区二区三区| 国产精品香蕉在线的人| 欧美黑人黄色一区二区| 国产欧美一区二区色综合| 日本男人女人干逼视频| 国产香蕉国产精品偷在线观看| 国产精品不卡一区二区三区四区| 经典欧美熟女激情综合网| 亚洲一区二区福利在线| 在线观看那种视频你懂的| 视频在线观看色一区二区| 婷婷开心五月亚洲综合| 日本午夜乱色视频在线观看| 日韩一级欧美一级久久| 国产自拍欧美日韩在线观看| 精品老司机视频在线观看| 丰满人妻熟妇乱又伦精另类视频| 国产高清精品福利私拍| 国产精品久久精品毛片| 国产黄色高清内射熟女视频| 日本深夜福利在线播放| 亚洲一区二区久久观看|