Ejemplo n.º 1
0
    public TicketParseResult TicketParse(string SPID, string Ticket, string ExtendField)
    {
        TicketParseResult Result = new TicketParseResult();

        Result.Result = ErrorDefinition.IError_Result_UnknowError_Code;
        Result.ErrorDescription = "";
        Result.ExtendField = "";

        try
        {
            #region 数据校验
            if (CommonUtility.IsEmpty(SPID))
            {

                Result.Result = ErrorDefinition.BT_IError_Result_InValidSPID_Code;
                Result.ErrorDescription = ErrorDefinition.BT_IError_Result_InValidSPID_Msg + ",不能为空";
                return Result;
            }

            //IP是否允许访问
            Result.Result = CommonBizRules.CheckIPLimit(SPID, HttpContext.Current.Request.UserHostAddress, this.Context, out Result.ErrorDescription);
            if (Result.Result != 0)
            {
                return Result;
            }

            //接口访问权限判断
            Result.Result = CommonBizRules.CheckInterfaceLimit(SPID, "TicketParse", this.Context, out Result.ErrorDescription);
            if (Result.Result != 0)
            {
                return Result;
            }

            if (CommonUtility.IsEmpty(Ticket))
            {
                Result.Result = ErrorDefinition.BT_IError_Result_TicketError_Code;
                Result.ErrorDescription = ErrorDefinition.BT_IError_Result_InValidRealName_Msg + ",不能为空";
                return Result;
            }

            #endregion

            Result.Result = CIPTicketManager.checkCIPTicket(SPID, Ticket, ExtendField, out Result.CustID, out Result.RealName, out Result.UserName, out Result.NickName, out Result.OuterID, "", out Result.LoginAuthenName, out Result.LoginAuthenType, out Result.ErrorDescription);
        }
        catch (Exception e)
        {
            Result.Result = ErrorDefinition.IError_Result_System_UnknowError_Code;
            Result.ErrorDescription = ErrorDefinition.IError_Result_System_UnknowError_Msg + e.Message;
        }
        finally
        {
            try
            {
                #region 文本日志
                StringBuilder msg = new StringBuilder();
                msg.Append("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\r\n\r\n");
                msg.Append("客户信息平台票据解读接口 " + DateTime.Now.ToString("u") + "\r\n");
                msg.Append(";IP - " + HttpContext.Current.Request.UserHostAddress);
                msg.Append(";SPID - " + SPID);
                msg.Append(";Ticket - " + Ticket);
                msg.Append("\r\n");

                msg.Append("处理结果 - " + Result.Result);
                msg.Append("; 错误描述 - " + Result.ErrorDescription);
                msg.Append("; CustID - " + Result.CustID);
                msg.Append("; RealName - " + Result.RealName);
                msg.Append("; UserName - " + Result.UserName);
                msg.Append("; NickName - " + Result.NickName);
                msg.Append("; ExtendField - " + Result.ExtendField + "\r\n");
                msg.Append("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\r\n");

                BTUCenterInterfaceLog.CenterForBizTourLog("TicketParse", msg);
                #endregion
            }
            catch { }
        }

        return Result;
    }
Ejemplo n.º 2
0
    public string accountInfoQuery(string uamxml)
    {
        TicketParseResult Result = new TicketParseResult();

        Result.Result           = ErrorDefinition.IError_Result_UnknowError_Code;
        Result.ErrorDescription = ErrorDefinition.IError_Result_UnknowError_Msg;
        Result.ExtendField      = "";

        string uamreturnxml = "";

        UamUserInfoRequest uair = new UamUserInfoRequest();
        XMLExchange        xe   = new XMLExchange();

        string actioncode     = "1";
        string transactionid  = "";
        string rsptime        = DateTime.Now.ToString("yyyyMMddHHmmss");;
        string digitalsign    = "";
        string rsptype        = "0";
        string rspcode        = "0000";
        string rspdesc        = "success";
        string accounttype    = "";
        string accountid      = "";
        string pwdtype        = "01";
        string trustedacclist = "";
        string returnurl      = "http://wtwebtest.ct10000.com/tymh/wtToJt.do";

        returnurl = System.Configuration.ConfigurationManager.AppSettings["UAMReturnUrl"];
        string SPID       = "35000050";
        string Ticket     = "";
        String provinceid = String.Empty;

        try
        {
            log(String.Format("【集团网厅查询参数:】Time:{0},uamxml:{1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), uamxml));
            //解析参数
            uair          = xe.AnalysisUamBackXML(uamxml);
            transactionid = uair.TransactionID;
            Ticket        = uair.Ticket;

            //客户信息平台到集团网厅时,provinceid作为ticket的一部分放在ticket前两位
            provinceid = Ticket.Substring(0, 2);
            if (CommonUtility.IsEmpty(Ticket))
            {
                Result.Result           = ErrorDefinition.BT_IError_Result_TicketError_Code;
                Result.ErrorDescription = ErrorDefinition.BT_IError_Result_TicketError_Msg + ",票据不能为空";
                rspcode      = "-112";
                rspdesc      = Result.ErrorDescription;
                uamreturnxml = xe.BuildUamCustInfoXML_New(actioncode, transactionid, rsptime, digitalsign, rsptype, rspcode, rspdesc, accounttype, accountid, pwdtype, "", trustedacclist, returnurl, provinceid);
                return(uamreturnxml);
            }
            // 9 固话 10 小灵通 11 宽带 7 手机
            // 9 和 11需要把citycode带给uam
            string ExtendField = "9";
            //解析票据
            Result.Result = CIPTicketManager.checkCIPTicket(SPID, Ticket, ExtendField, out Result.CustID, out Result.RealName, out Result.UserName, out Result.NickName, out Result.OuterID, "", out Result.LoginAuthenName, out Result.LoginAuthenType, out Result.ErrorDescription);

            //认证类型转换
            accounttype = ConvertAuthenType(Result.LoginAuthenType);

            if (Result.Result == 0)
            {
                accountid = Result.LoginAuthenName;
                string citycode = "";
                //固话和宽带号
                if (accounttype.Equals("2000001") || accounttype.Equals("2000002"))
                {
                    if (accountid.IndexOf('-') > 0)
                    {
                        string[] pwdattrlist = accountid.Split('-');
                        citycode  = pwdattrlist[0];
                        accountid = pwdattrlist[1];
                    }
                }

                uamreturnxml = xe.BuildUamCustInfoXML_New(actioncode, transactionid, rsptime, digitalsign, rsptype, rspcode, rspdesc, accounttype, accountid, pwdtype, citycode, trustedacclist, returnurl, provinceid);
            }
            else
            {
                Result.Result           = ErrorDefinition.BT_IError_Result_TicketError_Code;
                Result.ErrorDescription = Ticket + "票据解析失败";
                rspcode      = "-113";
                rsptype      = "8004";
                accountid    = "";
                rspdesc      = Result.ErrorDescription;
                uamreturnxml = xe.BuildUamCustInfoXML_New(actioncode, transactionid, rsptime, digitalsign, rsptype, rspcode, rspdesc, accounttype, accountid, pwdtype, "", trustedacclist, returnurl, provinceid);
            }
        }
        catch (System.Exception ex)
        {
            Result.Result           = 978;
            Result.ErrorDescription = ErrorDefinition.IError_Result_System_UnknowError_Msg + ex.Message;
            rspcode = "978";
            rsptype = "4104";
            rspdesc = ErrorDefinition.IError_Result_System_UnknowError_Msg + ex.Message;
        }
        finally
        {
            //写数据库日志
            try
            {
                #region WriteLog
                StringBuilder msg = new StringBuilder();
                msg.Append("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\r\n\r\n");
                msg.Append(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "积分反向单点-登录UAM请求客户信息平台断言查询 " + DateTime.Now.ToString("u") + "\r\n");
                msg.Append(";IP - " + HttpContext.Current.Request.UserHostAddress);
                msg.Append(";SPID - " + SPID);
                msg.Append(";Ticket - " + Ticket);
                msg.Append("\r\n");
                msg.Append("返回给uam的报文:\r\n");
                msg.Append(uamreturnxml);
                msg.Append("\r\n");
                msg.Append("处理结果 - " + Result.Result);
                msg.Append("; 错误描述 - " + Result.ErrorDescription);
                msg.Append("; CustID - " + Result.CustID);
                msg.Append("; RealName - " + Result.RealName);
                msg.Append("; UserName - " + Result.UserName);
                msg.Append("; NickName - " + Result.NickName);
                msg.Append("; ExtendField - " + Result.ExtendField + "\r\n");
                msg.Append("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\r\n");

                BTUCenterInterfaceLog.CenterForBizTourLog("AccountInfoQuery", msg);
                #endregion
            }
            catch { }
        }

        return(uamreturnxml);
    }