微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ISAG 网关接收上行消息和接收订购指令

第一步:定义一个接口

using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Serialization;

//
// 此源代码由 wsdl 自动生成,Version=2.0.50727.1432。
//


/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl","2.0.50727.1432")]
[System.Web.Services.WebServiceBindingAttribute(Name = "IsmpSpEnginesoapBinding",Namespace = "http://sp.ismp.chinatelecom.com")]
public interface IIsmpSpEnginesoapBinding
{

    /// <remarks/>
    [System.Web.Services.WebMethodAttribute()]
    [System.Web.Services.Protocols.soapDocumentMethodAttribute("",Use = System.Web.Services.Description.soapBindingUse.Literal,ParameterStyle = System.Web.Services.Protocols.soapParameterStyle.Bare)]
    [return: System.Xml.Serialization.XmlElementAttribute("orderRelationUpdateNotifyReturn",Namespace = "http://sp.ismp.chinatelecom.com")]
    Response orderRelationUpdateNotify([System.Xml.Serialization.XmlElementAttribute(Namespace = "http://sp.ismp.chinatelecom.com")] OrderRelationUpdateNotifyReq orderRelationUpdateNotifyReq);

    /// <remarks/>
    [System.Web.Services.WebMethodAttribute()]
    [System.Web.Services.Protocols.soapDocumentMethodAttribute("",ParameterStyle = System.Web.Services.Protocols.soapParameterStyle.Bare)]
    [return: System.Xml.Serialization.XmlElementAttribute("serviceConsumeNotifyReturn",Namespace = "http://sp.ismp.chinatelecom.com")]
    Response serviceConsumeNotify([System.Xml.Serialization.XmlElementAttribute(Namespace = "http://sp.ismp.chinatelecom.com")] ServiceConsumeNotifyReq serviceConsumeNotifyReqPara);

    /// <remarks/>
    [System.Web.Services.WebMethodAttribute()]
    [System.Web.Services.Protocols.soapDocumentMethodAttribute("",ParameterStyle = System.Web.Services.Protocols.soapParameterStyle.Bare)]
    [return: System.Xml.Serialization.XmlElementAttribute("spWithdrawSubscriptionReturn",Namespace = "http://sp.ismp.chinatelecom.com")]
    Response spWithdrawSubscription([System.Xml.Serialization.XmlElementAttribute(Namespace = "http://sp.ismp.chinatelecom.com")] SPWithdrawSubscriptionReq spWithdrawSubscriptionReqPara);

    /// <remarks/>
    [System.Web.Services.WebMethodAttribute()]
    [System.Web.Services.Protocols.soapDocumentMethodAttribute("",ParameterStyle = System.Web.Services.Protocols.soapParameterStyle.Bare)]
    [return: System.Xml.Serialization.XmlElementAttribute("notifyManagementInfoReturn",Namespace = "http://sp.ismp.chinatelecom.com")]
    NotifyManagementInfoRsp notifyManagementInfo([System.Xml.Serialization.XmlElementAttribute(Namespace = "http://sp.ismp.chinatelecom.com")] NotifyManagementInfoReq notifyManagementInfoReq);
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl","2.0.50727.1432")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://req.sp.ismp.chinatelecom.com")]
public partial class OrderRelationUpdateNotifyReq
{

    private int oPTypeField;

    private string packageIDField;

    private string oldPackageIDField;

    private string productIDField;

    private string oldProductIDField;

    private string streamingNoField;

    private string userIDField;

    private int userIDTypeField;

    private string[] verUserIDField;

    /// <remarks/>
    public int OPType
    {
        get
        {
            return this.oPTypeField;
        }
        set
        {
            this.oPTypeField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]
    public string packageID
    {
        get
        {
            return this.packageIDField;
        }
        set
        {
            this.packageIDField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]
    public string oldPackageID
    {
        get
        {
            return this.oldPackageIDField;
        }
        set
        {
            this.oldPackageIDField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]
    public string productID
    {
        get
        {
            return this.productIDField;
        }
        set
        {
            this.productIDField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]
    public string oldProductID
    {
        get
        {
            return this.oldProductIDField;
        }
        set
        {
            this.oldProductIDField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]
    public string streamingNo
    {
        get
        {
            return this.streamingNoField;
        }
        set
        {
            this.streamingNoField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]
    public string userID
    {
        get
        {
            return this.userIDField;
        }
        set
        {
            this.userIDField = value;
        }
    }

    /// <remarks/>
    public int userIDType
    {
        get
        {
            return this.userIDTypeField;
        }
        set
        {
            this.userIDTypeField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute("VerUserID",IsNullable = true)]
    public string[] VerUserID
    {
        get
        {
            return this.verUserIDField;
        }
        set
        {
            this.verUserIDField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl","2.0.50727.1432")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://rsp.sp.ismp.chinatelecom.com")]
public partial class NotifyManagementInfoRsp
{

    private int resultCodeField;

    private string streamingNoField;

    /// <remarks/>
    public int resultCode
    {
        get
        {
            return this.resultCodeField;
        }
        set
        {
            this.resultCodeField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]
    public string streamingNo
    {
        get
        {
            return this.streamingNoField;
        }
        set
        {
            this.streamingNoField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl","2.0.50727.1432")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://req.sp.ismp.chinatelecom.com")]
public partial class NotifyManagementInfoReq
{

    private string idField;

    private int iDTypeField;

    private int statusField;

    private string streamingNoField;

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]
    public string ID
    {
        get
        {
            return this.idField;
        }
        set
        {
            this.idField = value;
        }
    }

    /// <remarks/>
    public int IDType
    {
        get
        {
            return this.iDTypeField;
        }
        set
        {
            this.iDTypeField = value;
        }
    }

    /// <remarks/>
    public int status
    {
        get
        {
            return this.statusField;
        }
        set
        {
            this.statusField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]
    public string streamingNo
    {
        get
        {
            return this.streamingNoField;
        }
        set
        {
            this.streamingNoField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl","2.0.50727.1432")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://req.sp.ismp.chinatelecom.com")]
public partial class SPWithdrawSubscriptionReq
{

    private int userIDTypeField;

    private string userIDField;

    private int iDTypeField;

    private string idField;

    private string streamingNoField;

    private string sPIDField;

    private string sPAdminField;

    private string sPAdminPwdField;

    /// <remarks/>
    public int userIDType
    {
        get
        {
            return this.userIDTypeField;
        }
        set
        {
            this.userIDTypeField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]
    public string userID
    {
        get
        {
            return this.userIDField;
        }
        set
        {
            this.userIDField = value;
        }
    }

    /// <remarks/>
    public int IDType
    {
        get
        {
            return this.iDTypeField;
        }
        set
        {
            this.iDTypeField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]
    public string ID
    {
        get
        {
            return this.idField;
        }
        set
        {
            this.idField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]
    public string streamingNo
    {
        get
        {
            return this.streamingNoField;
        }
        set
        {
            this.streamingNoField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]
    public string SPID
    {
        get
        {
            return this.sPIDField;
        }
        set
        {
            this.sPIDField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]
    public string SPAdmin
    {
        get
        {
            return this.sPAdminField;
        }
        set
        {
            this.sPAdminField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]
    public string SPAdminPwd
    {
        get
        {
            return this.sPAdminPwdField;
        }
        set
        {
            this.sPAdminPwdField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl","2.0.50727.1432")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://req.sp.ismp.chinatelecom.com")]
public partial class ServiceConsumeNotifyReq
{

    private string featureStrField;

    private string linkIDField;

    private string productIDField;

    private string streamingNoField;

    private string userIDField;

    private int userIDTypeField;

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]
    public string featureStr
    {
        get
        {
            return this.featureStrField;
        }
        set
        {
            this.featureStrField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]
    public string linkID
    {
        get
        {
            return this.linkIDField;
        }
        set
        {
            this.linkIDField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]
    public string productID
    {
        get
        {
            return this.productIDField;
        }
        set
        {
            this.productIDField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]
    public string streamingNo
    {
        get
        {
            return this.streamingNoField;
        }
        set
        {
            this.streamingNoField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]
    public string userID
    {
        get
        {
            return this.userIDField;
        }
        set
        {
            this.userIDField = value;
        }
    }

    /// <remarks/>
    public int userIDType
    {
        get
        {
            return this.userIDTypeField;
        }
        set
        {
            this.userIDTypeField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl","2.0.50727.1432")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://rsp.sp.ismp.chinatelecom.com")]
public partial class Response
{

    private int resultCodeField;

    private string streamingNoField;

    /// <remarks/>
    public int resultCode
    {
        get
        {
            return this.resultCodeField;
        }
        set
        {
            this.resultCodeField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]
    public string streamingNo
    {
        get
        {
            return this.streamingNoField;
        }
        set
        {
            this.streamingNoField = value;
        }
    }
}

 

第二步:接收上行指令

 

    /// <summary>
    ///IsmpSpService 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://rsp.sp.ismp.chinatelecom.com")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    //若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
    // [System.Web.Script.Services.ScriptService]
    [SoapDocumentService(RoutingStyle = SoapServiceRoutingStyle.RequestElement)]
    public class IsmpSpService : System.Web.Services.WebService,IIsmpSpEnginesoapBinding
    {

        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }

        #region IIsmpSpEnginesoapBinding 成员

        public Response orderRelationUpdateNotify(OrderRelationUpdateNotifyReq orderRelationUpdateNotifyReq)
        {
            string oldPackageID = orderRelationUpdateNotifyReq.oldPackageID;
            string oldProductID = orderRelationUpdateNotifyReq.oldProductID;
            int OPType = orderRelationUpdateNotifyReq.OPType;
            string packageID = orderRelationUpdateNotifyReq.packageID;
            string productID = orderRelationUpdateNotifyReq.productID;
            string streamingNo = orderRelationUpdateNotifyReq.streamingNo;
            string userID = orderRelationUpdateNotifyReq.userID;
            int userIDType = orderRelationUpdateNotifyReq.userIDType;
            string[] VerUserID = orderRelationUpdateNotifyReq.VerUserID;
            string verUserid = "";
            if (VerUserID != null)
            {
                for (int i = 0; i < VerUserID.Length; i++)
                {
                    verUserid = verUserid + VerUserID[i].ToString() + ",";
                }
            }

            //此处实现业务逻辑


            Response response = new Response();
           // response.
            response.resultCode = 0;
            response.streamingNo = streamingNo;

            //StreamWriter sw = new StreamWriter("c://orderRelationUpdateNotify.txt",true);
            //sw.WriteLine("orderRelationUpdateNotify");
            //sw.Close();

            return response;
           // throw new NotImplementedException();
        }

        public Response serviceConsumeNotify(ServiceConsumeNotifyReq serviceConsumeNotifyReqPara)
        {
            throw new NotImplementedException();
        }

        public Response spWithdrawSubscription(SPWithdrawSubscriptionReq spWithdrawSubscriptionReqPara)
        {
            throw new NotImplementedException();
        }

        public NotifyManagementInfoRsp notifyManagementInfo(NotifyManagementInfoReq notifyManagementInfoReq)
        {
           throw new NotImplementedException();
        }

        #endregion
    }

 

第三步:接收上行消息

 

    /// <summary>
    ///Notification 的摘要说明
    /// </summary>
    ///
    //[WebService(Namespace = "http://www.chinatelecom.com.cn/schema/ctcc/common/v2_1")]
    //[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    //[SoapDocumentService(RoutingStyle = SoapServiceRoutingStyle.RequestElement)]

    [WebService(Namespace = "http://www.chinatelecom.com.cn/wsdl/ctcc/sms/send/v2_1/interface")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    //若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
    // [System.Web.Script.Services.ScriptService]
    [SoapDocumentService(RoutingStyle = SoapServiceRoutingStyle.RequestElement)]
    public class Notification : System.Web.Services.WebService,ISmsNotificationBinding
    {
        public Notification()
        {

        }


        [WebMethod]
        public notifySmsDeliveryReceiptResponse notifySmsDeliveryReceipt(notifySmsDeliveryReceipt notifySmsDeliveryReceipt1)
        {


            string correlator = notifySmsDeliveryReceipt1.correlator;

 


            Delivery@R_12_4045@ion delivery@R_12_4045@ion = (Delivery@R_12_4045@ion)(notifySmsDeliveryReceipt1.deliveryStatus);
            if (delivery@R_12_4045@ion != null)
            {

                string address = delivery@R_12_404[email protected];
                DeliveryStatus deliver = delivery@R_12_404[email protected];
                string deliveryStatus = "DeliveredToNetwork";

                if (deliver == DeliveryStatus.DeliveredToNetwork)
                {
                    deliveryStatus = "DeliveredToNetwork";
                }
                else if (deliver == DeliveryStatus.AuthPriceFailed)
                {
                    deliveryStatus = "AuthPriceFailed";
                }
                else if (deliver == DeliveryStatus.DeliveryImpossible)
                {
                    deliveryStatus = "DeliveryImpossible";
                }
                else if (deliver == DeliveryStatus.DeliveryNotificationNotSupported)
                {
                    deliveryStatus = "DeliveryNotificationNotSupported";
                }
                else if (deliver == DeliveryStatus.DeliveryUncertain)
                {
                    deliveryStatus = "DeliveryUncertain";
                }
                else if (deliver == DeliveryStatus.MessageWaiting)
                {
                    deliveryStatus = "MessageWaiting";
                }
                else if (deliver == DeliveryStatus.DeliveredToTerminal)
                {
                    deliveryStatus = "DeliveredToTerminal";
                }
                else
                {
                    deliveryStatus = "DeliveredToNetwork";
                }


                //此处实现业务逻辑                
            }
            return new notifySmsDeliveryReceiptResponse();//状态
        }

        private void XmlElement(string p,object p_2)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        //[return: XmlElement("notifySmsReceptionResponse",Namespace = "http://www.chinatelecom.com.cn/schema/ctcc/sms/notification/v2_1/local")]
        [WebMethod]
        public notifySmsReceptionResponse notifySmsReception(notifySmsReception notifySmsReception1)
        {

            return new notifySmsReceptionResponse(); //


        }
    }

 

到此电信ISAG网关的上行消息和上行指令就能接收啦,至于短信下行比较简单,在此不做解释!如有问题希望各位大侠批评指正,谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐