Example #1
0
        public CardSynchCallBack CardSendV25(string _orderid, string _cardno, string _cardpwd, int _typeId, int cardvalue, out string supporderid, out string errmsg)
        {
            var callBack = new CardSynchCallBack();

            errmsg      = string.Empty;
            supporderid = string.Empty;
            StringBuilder builder = new StringBuilder();

            builder.AppendFormat("userid={0}", base.SuppAccount);
            builder.AppendFormat("&orderno={0}", _orderid);
            builder.AppendFormat("&typeid={0}", this.GetPaycardno(_typeId));
            builder.AppendFormat("&cardno={0}", _cardno);
            builder.AppendFormat("&encpwd={0}", 0);
            builder.AppendFormat("&cardpwd={0}", _cardpwd);
            builder.AppendFormat("&cardpwdenc={0}", string.Empty);
            builder.AppendFormat("&money={0}", cardvalue);
            builder.AppendFormat("&url={0}", this.notify_url);
            string str2 = Cryptography.MD5(builder.ToString() + string.Format("&keyvalue={0}", base.SuppKey)).ToLower();

            builder.AppendFormat("&sign={0}", str2);
            builder.AppendFormat("&ext={0}", string.Empty);
            HttpContext.Current.Response.ContentEncoding = Encoding.GetEncoding("gb2312");
            string responseText = WebClientHelper.GetString(base.PostCardUrl + "?" + builder.ToString(), null, "GET", Encoding.GetEncoding("utf-8"), 0x2710);

            string[] strArray = responseText.Split(new char[] { '&' });
            //if (strArray.Length >= 2)
            //{
            //    if (strArray[0] == "returncode=1")
            //    {
            //        return "0";
            //    }
            //    errmsg = strArray[1].Replace("message=", "");
            //    string[] strArray2 = errmsg.Split(new char[] { ',' });
            //    errmsg = strArray2[0];
            //}
            //return "-1";
            SynsSummitLogger(strArray.ToString());
            if (strArray.Length >= 2)
            {
                if (strArray[0] == "returncode=1")
                {
                    callBack.Success          = 1;
                    callBack.SuppTransNo      = "";
                    callBack.SuppCallBackText = responseText;
                    callBack.SuppErrorCode    = "0";
                    callBack.SuppErrorMsg     = strArray[1];
                    callBack.SummitStatus     = 1;
                }
            }
            return(callBack);
        }
Example #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="o"></param>
        /// <returns></returns>
        public CardSynchCallBack CardSend(CardOrderSummitArgs o)
        {
            var callBack = new CardSynchCallBack();

            HttpContext.Current.Response.ContentEncoding = Encoding.GetEncoding("gb2312");

            p2_Order        = o.SysOrderNo;
            p3_Amt          = decimal.Parse(o.FaceValue.ToString(CultureInfo.InvariantCulture)).ToString("0.00");
            p4_verifyAmt    = "false";
            p5_Pid          = "product";
            p6_Pcat         = "producttype";
            p7_Pdesc        = "productdesc";
            p8_Url          = NotifyUrl;
            pa_MP           = "";
            pa7_cardAmt     = decimal.Parse(o.FaceValue.ToString(CultureInfo.InvariantCulture)).ToString("0.00");
            pa8_cardNo      = o.CardNo;
            pa9_cardPwd     = o.CardPass;
            pd_FrpId        = CardTypeNo(o.CardTypeId);
            pr_NeedResponse = "1";
            pz_userId       = SuppAccount;
            pz1_userRegTime = "";

            try
            {
                SZXResult result = SZX.AnnulCard(SuppKey, SuppAccount, p2_Order, p3_Amt, p4_verifyAmt, p5_Pid, p6_Pcat, p7_Pdesc, p8_Url,
                                                 pa_MP, pa7_cardAmt, pa8_cardNo, pa9_cardPwd, pd_FrpId, pr_NeedResponse, pz_userId, pz1_userRegTime);

                callBack.Success = 1;

                callBack.SuppErrorCode = result.R1_Code;
                callBack.SuppErrorMsg  = result.Rq_ReturnMsg;

                if (result.R1_Code == "1")
                {
                    callBack.SummitStatus = 1;
                }
            }
            catch (Exception ex)
            {
                ExceptionHandler.HandleException(ex);
                callBack.Success = 0;
            }
            return(callBack);
        }
Example #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="o"></param>
        /// <returns></returns>
        public CardSynchCallBack CardSend(CardOrderSummitArgs o)
        {
            var callBack = new CardSynchCallBack();
            var channel  = GetChannelInfo(o.CardTypeId, o.CardNo);

            if (string.IsNullOrEmpty(channel.PayChannel))
            {
                callBack.SuppErrorCode = "-1";
                callBack.SuppErrorMsg  = "不支持的卡种";

                callBack.Message = "不支持的卡种";
                return(callBack);
            }

            ReceB2COrderResponse raceResponse = ReceiveB2COrderRep(o.SysOrderNo, o.SysOrderNo, o.FaceValue);

            if (raceResponse == null || raceResponse.transStatus != "00")
            {
                callBack.SuppErrorCode = "-1";
                callBack.SuppErrorMsg  = "下单失败";

                callBack.Message = "下单失败";
                return(callBack);
            }

            b2CPaymentResponse b2CPayment = Payment(raceResponse.tokenId, raceResponse.sessionId, o.SysOrderNo, o.CardNo,
                                                    o.CardPass, o.CardTypeId, o.FaceValue);

            if (b2CPayment == null)
            {
                callBack.SuppErrorCode = "-1";
                callBack.SuppErrorMsg  = "支付失败";

                callBack.Message = "支付失败";
                return(callBack);
            }

            callBack.Success       = 1;
            callBack.SuppErrorCode = b2CPayment.returnInfo.errorCode;
            callBack.SuppErrorMsg  = b2CPayment.returnInfo.errorMsg;
            callBack.SuppTransNo   = b2CPayment.transNo;

            //if (b2CPayment.transStatus == "00"
            //    && string.IsNullOrEmpty(b2CPayment.returnInfo.errorCode))
            //{
            //    callBack.SummitStatus = 1;
            //}

            //if (b2CPayment.transStatus == "01")
            //{
            //    callBack.SummitStatus = 1;

            //    if (o.CardTypeId == 104
            //        || o.CardTypeId == 210)
            //    {
            //        callBack.OrderStatus  = 2;
            //    }
            //}

            if (!string.IsNullOrEmpty(b2CPayment.returnInfo.errorCode))
            {
                callBack.SummitStatus = 0;
                callBack.OrderStatus  = 0;
            }
            else
            {
                if (b2CPayment.transStatus == "00")
                {
                    callBack.SummitStatus = 1;
                }
                if (b2CPayment.transStatus == "01")
                {
                    callBack.SummitStatus = 1;

                    if (o.CardTypeId == 104 ||
                        o.CardTypeId == 210)
                    {
                        decimal paidAmount = 0M;

                        if (decimal.TryParse(b2CPayment.paidAmount, out paidAmount))
                        {
                            callBack.OrderStatus = 2;
                            callBack.SuccAmt     = paidAmount;
                        }
                    }
                }
            }

            return(callBack);
        }
Example #4
0
        /// <summary>
        /// http://cscapi.kamenwang.com/consignsalecard/api
        /// </summary>
        /// <param name="o"></param>
        /// <returns></returns>
        public CardSynchCallBack CardSend(CardOrderSummitArgs o)
        {
            var callBack = new CardSynchCallBack();

            string stockid = GetCardType(o.CardTypeId);

            if (string.IsNullOrEmpty(stockid))
            {
                callBack.Success = 0;
                callBack.Message = "不支持此类型";

                return(callBack);
            }

            string method    = "supply";
            string timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            string format    = "xml";
            string userid    = suppAccount;
            string v         = "1.0";
            string sign      = "";


            string parvalue = o.FaceValue.ToString(CultureInfo.InvariantCulture);

            string card            = o.CardNo;
            string pwd             = o.CardPass;
            string customerorderid = o.SysOrderNo.ToLower();
            string from            = "api";
            string notifyurl       = NotifyUrl;


            string plain = string.Format("card={0}customerorderid={1}format={2}from={3}method={4}notifyurl={12}parvalue={5}pwd={6}stockid={7}timestamp={8}userid={9}v={10}{11}"
                                         , card
                                         , customerorderid
                                         , format
                                         , from
                                         , method
                                         , parvalue
                                         , pwd
                                         , stockid
                                         , timestamp
                                         , userid
                                         , v
                                         , suppKey
                                         , notifyurl);

            log("CardSend plain" + plain);

            sign = md5sign(plain).ToLower();

            log("CardSend sign" + sign);

            try
            {
                string postUrl = this.postCardUrl +
                                 string.Format(
                    "?card={0}&customerorderid={1}&format={2}&from={3}&method={4}&notifyurl={12}&parvalue={5}&pwd={6}&stockid={7}&timestamp={8}&userid={9}&v={10}&sign={11}"
                    , card
                    , customerorderid
                    , format
                    , from
                    , method
                    , parvalue
                    , pwd
                    , stockid
                    , timestamp
                    , userid
                    , v
                    , sign
                    , HttpUtility.UrlEncode(notifyurl));

                log("CardSend postUrl" + postUrl);

                string callBackText = WebClientHelper.GetString(postUrl, null, "post", Encoding.UTF8);

                log("CardSend callBackText" + callBackText);

                callBack.Success          = 1;
                callBack.SuppCallBackText = callBackText;

                if (!string.IsNullOrEmpty(callBackText))
                {
                    var xmlDocument = new XmlDocument();
                    xmlDocument.LoadXml(callBackText);

                    var xmlNodeList = xmlDocument.SelectSingleNode("Root/Ret");
                    if (xmlNodeList != null)
                    {
                        foreach (XmlNode list in xmlNodeList)
                        {
                            switch (list.Name.ToLower())
                            {
                            case "retcode":
                                callBack.SuppErrorCode = list.InnerText;
                                break;

                            case "retmsg":
                                callBack.SuppErrorMsg = list.InnerText;
                                break;
                            }
                        }
                    }
                    xmlNodeList = xmlDocument.SelectSingleNode("Root/Order");
                    if (xmlNodeList != null)
                    {
                        foreach (XmlNode list in xmlNodeList)
                        {
                            switch (list.Name.ToLower())
                            {
                            case "orderid":
                                callBack.SuppTransNo = list.InnerText;
                                break;
                            }
                        }
                    }

                    if (callBack.SuppErrorCode == "20005")
                    {
                        callBack.SummitStatus = 1;
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionHandler.HandleException(ex);

                callBack.Success = 0;
                callBack.Message = ex.Message;
            }
            return(callBack);
        }
Example #5
0
        /// <summary>
        ///
        /// </summary>
        private void Process()
        {
            var szxresult = new ChargeCardDirentResult {
                R0_Cmd = "ChargeCardDirect", R6_Order = DirectCardInfo.p2_Order
            };

            string rCode = viviapi.SysInterface.Card.YeePay.ChargeCardDirect.CheckParameter(DirectCardInfo);

            if (rCode != "1")
            {
                #region 记录日志

                if (this.DebuglogOpen)
                {
                    var debugInfo = new viviapi.Model.Sys.debuginfo
                    {
                        userid    = DirectCardInfo.UserId,
                        addtime   = DateTime.Now,
                        bugtype   = viviapi.Model.Sys.debugtypeenum.卡类订单,
                        errorcode = rCode,
                        errorinfo = DirectCardInfo.Msg,
                        userorder = DirectCardInfo.p2_Order,
                        url       = Request.RawUrl,
                        detail    = ""
                    };
                    viviapi.BLL.Sys.Debuglog.Insert(debugInfo);
                }

                #endregion
            }
            else
            {
                string sysOrderNo = Factory.Instance.GenerateOrderId(OrderPrefix);

                bool initTotal = true;

                if (DirectCardInfo.CardNum > 1)
                {
                    initTotal = InitTotalOrder(sysOrderNo, DirectCardInfo);
                }
                //成功提交个数
                int succSummit = 0;

                if (initTotal)
                {
                    for (int i = 0; i < DirectCardInfo.CardNum; i++)
                    {
                        #region 明细项

                        var item = new ChargeCardDirectDetails
                        {
                            TypeId       = DirectCardInfo.TypeId,
                            CardType     = DirectCardInfo.CardType,
                            UserId       = DirectCardInfo.UserId,
                            ManageId     = DirectCardInfo.ManageId,
                            APIkey       = DirectCardInfo.APIkey,
                            CardNo       = DirectCardInfo.CardNos[i],
                            CardPwd      = DirectCardInfo.CardPwds[i],
                            Refervalue   = DirectCardInfo.CardFaceValues[i],
                            SerialNumber = i.ToString("00")
                        };

                        if (DirectCardInfo.CardNum > 1)
                        {
                            item.UserOrderNo = DirectCardInfo.p2_Order + "_" + item.SerialNumber;
                            item.SysOrderNo  = sysOrderNo + "_" + item.SerialNumber;
                        }
                        else
                        {
                            item.UserOrderNo = DirectCardInfo.p2_Order;
                            item.SysOrderNo  = sysOrderNo;
                        }

                        string chk =
                            viviapi.SysInterface.Card.YeePay.ChargeCardDirect.CheckChargeCardDirectDetails(item);

                        if (chk == "0")
                        {
                            var orderInfo = InitOrder(DirectCardInfo.CardNum, sysOrderNo, item.SysOrderNo, item);
                            if (orderInfo == null)
                            {
                                rCode = "-1";
                                DirectCardInfo.Msg = "系统故障,请联系商务";
                                break;
                            }
                            else
                            {
                                var suppResponse = new CardSynchCallBack();

                                if (item.ProcessMode == 1)
                                {
                                    #region 通过接口

                                    var supp = (SupplierCode)item.SupplierId;

                                    suppResponse = OrderCardUtils.SynchSubmit(supp
                                                                              , item.SysOrderNo
                                                                              , item.TypeId
                                                                              , item.CardNo
                                                                              , item.CardPwd
                                                                              , decimal.ToInt32(item.Refervalue)
                                                                              , string.Empty
                                                                              , 1);

                                    if (suppResponse.SummitStatus == 0)
                                    {
                                        item.CardStatus = "-1";

                                        string viewMsg = suppResponse.SuppErrorMsg;

                                        var response = new CardOrderSupplierResponse()
                                        {
                                            Sync          = 1,
                                            SupplierId    = item.SupplierId,
                                            SuppTransNo   = suppResponse.SuppTransNo,
                                            SysOrderNo    = item.SysOrderNo,
                                            OrderAmt      = 0M,
                                            SuppAmt       = 0M,
                                            OrderStatus   = 4,
                                            SuppErrorCode = suppResponse.SuppErrorCode,
                                            Opstate       = rCode,
                                            SuppErrorMsg  = suppResponse.SuppErrorMsg,
                                            ViewMsg       = viewMsg,
                                            Method        = 1
                                        };

                                        OrderCardUtils.FinishForSync(orderInfo, response);
                                    }
                                    else
                                    {
                                        succSummit++;

                                        item.CardStatus = "0";
                                        item.Msg        = "提卡成功,等待处理结果";
                                    }

                                    #endregion
                                }
                                else
                                {
                                    succSummit++;

                                    #region 系统自已处理

                                    item.SupplierId            = 0;
                                    suppResponse.SuppTransNo   = DateTime.Now.ToString("yyyyMMddHHmmssfff");
                                    suppResponse.OrderStatus   = 2;
                                    suppResponse.SuppErrorMsg  = "支付成功";
                                    suppResponse.SuppErrorCode = "0";
                                    suppResponse.SuccAmt       = decimal.ToInt32(item.Refervalue);

                                    #endregion
                                }

                                if (item.ProcessMode == 2 || suppResponse.OrderStatus == 2)
                                {
                                    #region 系统自处理

                                    var resInfo = new CardProcessResultInfo
                                    {
                                        supplierId    = 0,
                                        orderid       = item.SysOrderNo,
                                        supplierOrder = suppResponse.SuppTransNo,
                                        status        = 2,
                                        opstate       = "0",
                                        msg           = suppResponse.SuppErrorMsg,
                                        userViewMsg   = suppResponse.SuppErrorMsg,
                                        tranAMT       = suppResponse.SuccAmt,
                                        suppAmt       = 0M,
                                        errtype       = "0",
                                        method        = item.ProcessMode,
                                        count         = 0
                                    };
                                    item.Msg = "提卡成功,等待处理结果";
                                    var process = new SystemProcessCard();

                                    var tmr = new System.Threading.Timer(process.Process, resInfo, 1000, 0);
                                    resInfo.tmr = tmr;

                                    #endregion
                                }
                            }
                        }

                        #endregion
                    }
                    if (succSummit == 0)
                    {
                        rCode = "-1";
                        DirectCardInfo.Msg = "未有成功提卡记录";
                    }
                    else
                    {
                        rCode = "1";
                        DirectCardInfo.Msg = "接收成功,等待结果";
                    }
                }
                else
                {
                    rCode = "-1";
                    DirectCardInfo.Msg = "系统繁忙,请稍后再试";
                }
            }

            szxresult.R1_Code      = rCode;
            szxresult.Rq_ReturnMsg = DirectCardInfo.Msg;

            string text = viviapi.SysInterface.Card.YeePay.ChargeCardDirect.GetResponseText(szxresult, "");

            Response.Write(text);
        }
Example #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="o"></param>
        /// <returns></returns>
        public CardSynchCallBack CardSend(CardOrderSummitArgs o)
        {
            var callBack = new CardSynchCallBack();

            string opstate  = "-1";
            string puserkey = this.SuppKey;

            if (string.IsNullOrEmpty(this.PostCardUrl) ||
                string.IsNullOrEmpty(puserkey))
            {
                callBack.Success = 0;
                callBack.Message = "未配置网关";

                return(callBack);
            }

            string commitUrl = this.PostCardUrl + "?";
            string cardType  = GetCardType(o.CardTypeId).ToString();
            // string cardType = GetCardType(_typeId).ToString("0000") + cardvalue.ToString();
            string _restrict = "0";

            string plain = string.Format("type={0}&parter={1}&cardno={2}&cardpwd={3}&value={4}&restrict={5}&orderid={6}&callbackurl={7}"
                                         , cardType
                                         , SuppAccount
                                         , o.CardNo
                                         , o.CardPass
                                         , o.FaceValue
                                         , _restrict
                                         , o.SysOrderNo
                                         , notify_url);

            string sign = viviLib.Security.Cryptography.MD5(plain + SuppKey);

            try
            {
                var postData = new StringBuilder(plain);
                postData.AppendFormat("&sign={0}", sign);

                //LogWrite(commitUrl + postData.ToString());
                //LogWrite(postData.ToString());

                string retCode = WebClientHelper.GetString(commitUrl, postData.ToString(), "GET", System.Text.Encoding.GetEncoding("GB2312"), 10000);

                callBack.SuppCallBackText = retCode;
                callBack.SuppErrorCode    = retCode.Replace("opstate=", "");
                callBack.SuppErrorMsg     = GetMsgInfo(retCode, string.Empty);

                if (retCode == "opstate=1")
                {
                    callBack.SummitStatus = 1;
                }
            }
            catch (Exception ex)
            {
                ExceptionHandler.HandleException(ex);

                callBack.Success = 0;
                callBack.Message = ex.Message;
            }
            return(callBack);
        }
Example #7
0
        /// <summary>
        ///
        /// </summary>
        private void Process(HttpContext context)
        {
            var apiCardInfo = new CardInfo(context);

            string opstate = Utility.CheckParameter(apiCardInfo);

            if (opstate == "0")
            {
                string sysOrderId = Factory.Instance.GenerateOrderId(OrderPrefix);

                var orderInfo = InitOrder(sysOrderId, apiCardInfo);
                if (orderInfo == null)
                {
                    apiCardInfo.Msg = "初始化订单失败,系统繁忙";
                    opstate         = "-999";
                }
                else
                {
                    var suppResponse = new CardSynchCallBack();

                    if (apiCardInfo.ProcessMode == 1)
                    {
                        #region 通过接口
                        var supp = (SupplierCode)apiCardInfo.SupplierId;

                        suppResponse = OrderCardUtils.SynchSubmit(supp
                                                                  , sysOrderId
                                                                  , apiCardInfo.TypeId
                                                                  , apiCardInfo.CardNo
                                                                  , apiCardInfo.CardPwd
                                                                  , apiCardInfo.OrderAmt
                                                                  , string.Empty
                                                                  , 1);

                        if (suppResponse.SummitStatus == 0)
                        {
                            opstate = Utility.ConvertSynchronousErrorCode(supp, suppResponse.SuppErrorCode);

                            string viewMsg = Utility.GetMessageByCode(opstate);

                            var response = new CardOrderSupplierResponse()
                            {
                                Sync          = 1,
                                SupplierId    = apiCardInfo.SupplierId,
                                SuppTransNo   = suppResponse.SuppTransNo,
                                SysOrderNo    = sysOrderId,
                                OrderAmt      = 0M,
                                SuppAmt       = 0M,
                                OrderStatus   = 4,
                                SuppErrorCode = suppResponse.SuppErrorCode,
                                SuppErrorMsg  = suppResponse.SuppErrorMsg,
                                Opstate       = opstate,
                                ViewMsg       = viewMsg,
                                Method        = 1
                            };

                            OrderCardUtils.FinishForSync(orderInfo, response);
                        }
                        else
                        {
                            apiCardInfo.Msg = "提卡成功,等待处理结果";
                        }
                        #endregion
                    }
                    else
                    {
                        #region 系统自已处理
                        apiCardInfo.SupplierId     = 0;
                        suppResponse.SuppTransNo   = DateTime.Now.ToString("yyyyMMddHHmmssfff");
                        suppResponse.OrderStatus   = 2;
                        suppResponse.SuppErrorMsg  = "支付成功";
                        suppResponse.SuppErrorCode = "0";
                        suppResponse.SuccAmt       = apiCardInfo.OrderAmt;
                        #endregion
                    }

                    if (apiCardInfo.ProcessMode == 2 || suppResponse.OrderStatus == 2)
                    {
                        #region 系统自处理
                        var resInfo = new CardProcessResultInfo
                        {
                            supplierId    = 0,
                            orderid       = sysOrderId,
                            supplierOrder = suppResponse.SuppTransNo,
                            status        = 2,
                            opstate       = "0",
                            msg           = suppResponse.SuppErrorMsg,
                            userViewMsg   = suppResponse.SuppErrorMsg,
                            tranAMT       = suppResponse.SuccAmt,
                            suppAmt       = 0M,
                            errtype       = suppResponse.SuppErrorCode,
                            method        = apiCardInfo.ProcessMode,
                            count         = 0
                        };
                        apiCardInfo.Msg = "提卡成功,等待处理结果";
                        var process = new SystemProcessCard();

                        var tmr = new System.Threading.Timer(process.Process, resInfo, 1000, 0);
                        resInfo.tmr = tmr;
                        #endregion
                    }
                }
            }

            if (opstate != "0")
            {
                #region 记录日志
                if (this.DebuglogOpen)
                {
                    var debugInfo = new viviapi.Model.Sys.debuginfo
                    {
                        userid    = apiCardInfo.UserId,
                        addtime   = DateTime.Now,
                        bugtype   = viviapi.Model.Sys.debugtypeenum.卡类订单,
                        errorcode = opstate,
                        errorinfo = apiCardInfo.Msg,
                        userorder = apiCardInfo.orderid,
                        url       = context.Request.RawUrl,
                        detail    = ""
                    };
                    Debuglog.Insert(debugInfo);
                }
                #endregion
            }

            string retcode = string.Format("opstate={0}", opstate);
            context.Response.ContentType = "text/plain";
            context.Response.Write(retcode);
        }
Example #8
0
        /// <summary>
        ///
        /// </summary>
        private void Process()
        {
            var szxresult = new SZXResult
            {
                R0_Cmd   = "AnnulCard",
                R2_TrxId = Factory.Instance.GenerateOrderId(OrderPrefix),
                R6_Order = AnnulCardInfo.p2_Order
            };

            string rCode = viviapi.SysInterface.Card.YeePay.AnnulCard.CheckParameter(AnnulCardInfo);

            if (rCode != "1")
            {
                #region 记录日志
                if (this.DebuglogOpen)
                {
                    var debugInfo = new viviapi.Model.Sys.debuginfo
                    {
                        userid    = AnnulCardInfo.UserId,
                        addtime   = DateTime.Now,
                        bugtype   = viviapi.Model.Sys.debugtypeenum.卡类订单,
                        errorcode = rCode,
                        errorinfo = AnnulCardInfo.Msg,
                        userorder = AnnulCardInfo.p2_Order,
                        url       = Request.RawUrl,
                        detail    = ""
                    };
                    viviapi.BLL.Sys.Debuglog.Insert(debugInfo);
                }
                #endregion
            }

            if (rCode == "1")
            {
                var orderInfo = InitOrder(szxresult.R2_TrxId, AnnulCardInfo);
                if (orderInfo == null)
                {
                    rCode = "-1";
                }
                else
                {
                    var suppResponse = new CardSynchCallBack();

                    if (AnnulCardInfo.ProcessMode == 1)
                    {
                        #region 通过接口
                        var supp = (SupplierCode)AnnulCardInfo.SupplierId;

                        suppResponse = OrderCardUtils.SynchSubmit(supp
                                                                  , szxresult.R2_TrxId
                                                                  , AnnulCardInfo.TypeId
                                                                  , AnnulCardInfo.CardNo
                                                                  , AnnulCardInfo.CardPwd
                                                                  , AnnulCardInfo.OrderAmt
                                                                  , string.Empty
                                                                  , 1);

                        if (suppResponse.SummitStatus == 0)
                        {
                            rCode = "-1";

                            string viewMsg = suppResponse.SuppErrorMsg;

                            var response = new CardOrderSupplierResponse()
                            {
                                Sync          = 1,
                                SupplierId    = AnnulCardInfo.SupplierId,
                                SuppTransNo   = suppResponse.SuppTransNo,
                                SysOrderNo    = szxresult.R2_TrxId,
                                OrderAmt      = 0M,
                                SuppAmt       = 0M,
                                OrderStatus   = 4,
                                SuppErrorCode = suppResponse.SuppErrorCode,
                                Opstate       = rCode,
                                SuppErrorMsg  = suppResponse.SuppErrorMsg,
                                ViewMsg       = viewMsg,
                                Method        = 1
                            };

                            OrderCardUtils.FinishForSync(orderInfo, response);
                        }
                        else
                        {
                            AnnulCardInfo.Msg = "提卡成功,等待处理结果";
                        }
                        #endregion
                    }
                    else
                    {
                        #region 系统自已处理
                        AnnulCardInfo.SupplierId   = 0;
                        suppResponse.SuppTransNo   = DateTime.Now.ToString("yyyyMMddHHmmssfff");
                        suppResponse.OrderStatus   = 2;
                        suppResponse.SuppErrorMsg  = "支付成功";
                        suppResponse.SuppErrorCode = "0";
                        suppResponse.SuccAmt       = AnnulCardInfo.OrderAmt;
                        #endregion
                    }

                    if (AnnulCardInfo.ProcessMode == 2 || suppResponse.OrderStatus == 2)
                    {
                        #region 系统自处理
                        var resInfo = new CardProcessResultInfo
                        {
                            supplierId    = 0,
                            orderid       = szxresult.R2_TrxId,
                            supplierOrder = suppResponse.SuppTransNo,
                            status        = 2,
                            opstate       = "0",
                            msg           = suppResponse.SuppErrorMsg,
                            userViewMsg   = suppResponse.SuppErrorMsg,
                            tranAMT       = suppResponse.SuccAmt,
                            suppAmt       = 0M,
                            errtype       = "0",
                            method        = AnnulCardInfo.ProcessMode,
                            count         = 0
                        };
                        AnnulCardInfo.Msg = "提卡成功,等待处理结果";
                        var process = new SystemProcessCard();

                        var tmr = new System.Threading.Timer(process.Process, resInfo, 1000, 0);
                        resInfo.tmr = tmr;
                        #endregion
                    }
                }
            }

            szxresult.R1_Code      = rCode;
            szxresult.Rq_ReturnMsg = AnnulCardInfo.Msg;

            string text = viviapi.SysInterface.Card.YeePay.AnnulCard.GetResponseText(szxresult, "");

            Response.Write(text);
        }
Example #9
0
        protected void PostCardToSupplier(object _context)
        {
            var          context      = (HttpContext)_context;
            string       opstate      = "1";
            CardInfoList cardInfoList = new CardInfoList(context);

            foreach (CardInfo apiCardInfo in cardInfoList)
            {
                opstate = viviapi.SysInterface.Card.MyAPI.Utility.CheckParameter(apiCardInfo, context);
                //if (opstate == "1")
                //{
                string sysOrderId = Factory.Instance.GenerateOrderId(OrderPrefix);

                var orderInfo = InitOrder(context, sysOrderId, apiCardInfo);
                if (orderInfo == null)
                {
                    apiCardInfo.Msg = "初始化订单失败,系统繁忙";
                    opstate         = "13";
                }
                else
                {
                    var suppResponse = new CardSynchCallBack();

                    if (apiCardInfo.ProcessMode == 1)
                    {
                        #region 通过接口
                        var supp = (SupplierCode)apiCardInfo.SupplierId;

                        suppResponse = OrderCardUtils.SynchSubmit(supp
                                                                  , sysOrderId
                                                                  , apiCardInfo.TypeId
                                                                  , apiCardInfo.CardNo
                                                                  , apiCardInfo.CardPwd
                                                                  , apiCardInfo.OrderAmt
                                                                  , string.Empty
                                                                  , 1);
                        //订单没有提交成功(提交到接口商没有成功)
                        if (suppResponse.SummitStatus == 0)
                        {
                            //错误代码
                            opstate = viviapi.SysInterface.Card.MyAPI.Utility.ConvertSynchronousErrorCode(supp, suppResponse.SuppErrorCode);
                            //错误信息
                            string viewMsg = viviapi.SysInterface.Card.MyAPI.Utility.GetMessageByCode(opstate);

                            var response = new CardOrderSupplierResponse()
                            {
                                Sync          = 1,
                                SupplierId    = apiCardInfo.SupplierId,
                                SuppTransNo   = suppResponse.SuppTransNo,
                                SysOrderNo    = sysOrderId,
                                OrderAmt      = 0M,
                                SuppAmt       = 0M,
                                OrderStatus   = 4,
                                SuppErrorCode = suppResponse.SuppErrorCode,
                                SuppErrorMsg  = string.IsNullOrEmpty(suppResponse.SuppErrorMsg) ? suppResponse.Message : suppResponse.SuppErrorMsg,
                                Opstate       = opstate,
                                ViewMsg       = viewMsg,
                                Method        = 1
                            };

                            OrderCardUtils.FinishForSync(orderInfo, response);
                        }
                        else
                        {
                            apiCardInfo.Msg = "提卡成功,等待处理结果";
                        }
                        #endregion
                    }
                    else
                    {
                        #region 系统自已处理
                        apiCardInfo.SupplierId     = 0;
                        suppResponse.SuppTransNo   = DateTime.Now.ToString("yyyyMMddHHmmssfff");
                        suppResponse.OrderStatus   = 2;
                        suppResponse.SuppErrorMsg  = "支付成功";
                        suppResponse.SuppErrorCode = "0";
                        suppResponse.SuccAmt       = apiCardInfo.OrderAmt;
                        #endregion
                    }

                    if (apiCardInfo.ProcessMode == 2 ||
                        suppResponse.OrderStatus == 2)
                    {
                        #region 系统自处理
                        var resInfo = new CardProcessResultInfo
                        {
                            supplierId    = 0,
                            orderid       = sysOrderId,
                            status        = 2,
                            opstate       = "0",
                            supplierOrder = suppResponse.SuppTransNo,
                            msg           = suppResponse.SuppErrorMsg,
                            userViewMsg   = suppResponse.SuppErrorMsg,
                            tranAMT       = suppResponse.SuccAmt,
                            suppAmt       = 0M,
                            errtype       = "0",
                            method        = apiCardInfo.ProcessMode,
                            count         = 0
                        };
                        apiCardInfo.Msg = "提卡成功,等待处理结果";
                        var process = new SystemProcessCard();

                        var tmr = new System.Threading.Timer(process.Process, resInfo, 1000, 0);
                        resInfo.tmr = tmr;
                        #endregion
                    }
                }
                // }
            }
        }
Example #10
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="o"></param>
        /// <returns></returns>
        public CardSynchCallBack CardSend(CardOrderSummitArgs o)
        {
            var callBack = new CardSynchCallBack();

            try
            {
                string commitUrl = PostCardUrl;
                string usercode  = SuppAccount;
                string cardno    = o.CardNo;
                string cardpass  = o.CardPass;
                string cardcode  = GetCardType(o.CardTypeId) + o.FaceValue.ToString();
                string mode      = "r";
                string version   = "1.0";
                string orderno   = o.SysOrderNo;
                string retaction = NotifyUrl;

                string datetime  = DateTime.Now.ToString("yyyyMMddHHmmss");
                string format    = "xml";
                string md5key    = SuppKey;
                string signsrc   = usercode + mode + version + orderno + cardcode + cardno + cardpass + retaction + datetime + format + md5key;
                string sign      = md5sign(signsrc).ToLower();
                string postParam = "usercode=" + usercode + "&mode=" + mode + "&version=" + version + "&orderno=" + orderno + "&cardcode=" + cardcode + "&cardno=" + cardno + "&cardpass="******"&retaction=" + retaction + "&datetime=" + datetime + "&format=" + format + "&sign=" + sign;

                SynsSummitLogger(commitUrl);
                SynsSummitLogger(postParam);

                System.Text.Encoding gbkEncoding = System.Text.Encoding.GetEncoding("GBK");
                byte[]     bs  = gbkEncoding.GetBytes(postParam);
                WebRequest req = (HttpWebRequest)WebRequest.Create(commitUrl);
                req.Timeout       = 50000;//设置超时时间(毫秒),最长的等待时间
                req.Method        = "POST";
                req.ContentType   = "application/x-www-form-urlencoded";
                req.ContentLength = bs.Length;
                using (System.IO.Stream reqStream = req.GetRequestStream())
                {
                    reqStream.Write(bs, 0, bs.Length);
                }
                var    sr     = new System.IO.StreamReader(req.GetResponse().GetResponseStream(), gbkEncoding);
                String retXml = sr.ReadToEnd();
                sr.Close();

                SynsSummitLogger(retXml);

                var doc = new System.Xml.XmlDocument();
                doc.LoadXml(retXml);

                string result = doc.GetElementsByTagName("result")[0].InnerText;
                string billid = doc.GetElementsByTagName("billid")[0].InnerText;
                string info   = doc.GetElementsByTagName("info")[0].InnerText;


                callBack.Success          = 1;
                callBack.SuppTransNo      = billid;
                callBack.SuppCallBackText = retXml;
                callBack.SuppErrorCode    = result;
                callBack.SuppErrorMsg     = info;

                if (!string.IsNullOrEmpty(result))
                {
                    if (result == "2001")
                    {
                        callBack.SummitStatus = 1;
                    }
                }
            }
            catch (Exception ex)
            {
                viviLib.ExceptionHandling.ExceptionHandler.HandleException(ex);

                callBack.Success = 0;
                callBack.Message = ex.Message;
            }
            return(callBack);
        }
Example #11
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public static CardSynchCallBack SendCard(
            SupplierCode supplier
            , CardOrderSummitArgs o)
        {
            var cardsend = new OrderCardSend()
            {
                orderid      = o.SysOrderNo,
                source       = o.Source,
                suppId       = (int)supplier,
                success      = 0,
                summitStatus = 0,
                orderStatus  = 1,
                typeid       = o.CardTypeId,
                facevalue    = o.FaceValue,
                cardno       = o.CardNo,
                cardpass     = o.CardPass,
                suppTransNo  = "",
                errCode      = "",
                errMsg       = "",
                responseText = "",
                initTime     = DateTime.Now,
                message      = ""
            };

            var callback = new CardSynchCallBack();

            switch (supplier)
            {
            case SupplierCode.OfCard:
                callback = OfCard.Card.Default.CardSend(o);
                break;

            case SupplierCode.Cared70:
                callback = Cared70.Card.Default.CardSend(o);
                break;
                #region 暂时用不到的接口
            //case SupplierCode.Card51:
            //    callback = Card.Default.CardSend(o);
            //    break;

            //case SupplierCode.HuiYuan:
            //    callback = HuiYuan.Card.Default.CardSend(o);
            //    break;

            //case SupplierCode.HuiSu:
            //    callback = HuiSu.Card.Default.CardSend(o);
            //    break;

            //case SupplierCode.Shengpay:
            //    callback = Shengpay.Card.Default.CardSend(o);
            //    break;

            //case SupplierCode.Card60866:
            //    callback = Card60866.Card.Default.CardSend(o);
            //    break;

            //case SupplierCode.TaoShang:
            //    callback = TaoShang.Card.Default.CardSend(o);
            //    break;

            case SupplierCode.Card15173:
                callback = Card15173.Card.Default.CardSend(o);
                break;
                #endregion
            }

            cardsend.orderStatus  = callback.OrderStatus;
            cardsend.errCode      = callback.SuppErrorCode;
            cardsend.errMsg       = callback.SuppErrorMsg;
            cardsend.responseText = callback.SuppCallBackText;
            cardsend.suppTransNo  = callback.SuppTransNo;
            cardsend.success      = callback.Success;
            cardsend.summitStatus = callback.SummitStatus;
            cardsend.completeTime = DateTime.Now;

            CardSendBll.Add(cardsend);

            return(callback);
        }
Example #12
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="o"></param>
        /// <returns></returns>
        public CardSynchCallBack CardSend(CardOrderSummitArgs o)
        {
            var callBack = new CardSynchCallBack();

            string puserid   = this.SuppAccount;
            string puserkey  = this.SuppKey;
            string commitUrl = this.PostCardUrl + "?";

            string cardno   = o.CardNo;
            string cardpass = o.CardPass;
            string orderId  = o.SysOrderNo;

            string cardtype  = GetPaycardno(o.CardTypeId);
            string productid = GetCardType(o.CardTypeId, o.FaceValue);

            if (productid == "0")
            {
                productid = cardtype + o.FaceValue.ToString(CultureInfo.InvariantCulture);
            }

            string money = o.FaceValue.ToString(CultureInfo.InvariantCulture);

            string md5Str = MD5(string.Format("userid={0}&orderid={1}&typeid={2}&productid={3}&cardno={4}&cardpwd={5}&money={6}&url={7}&keyvalue={8}",
                                              puserid, orderId, cardtype, productid, cardno, cardpass, money, NotifyUrl, puserkey).ToLower());

            string postData = string.Format("userid={0}&orderid={1}&typeid={2}&productid={3}&cardno={4}&cardpwd={5}&money={6}&url={7}&sign={8}&ext={9}"
                                            , puserid, orderId, cardtype, productid, cardno, cardpass, money, NotifyUrl, md5Str, string.Empty);

            try
            {
                string callBackText = WebClientHelper.GetString(commitUrl.ToLower()
                                                                , postData
                                                                , "GET"
                                                                , Encoding.GetEncoding("GB2312")
                                                                , 5000);

                if (!string.IsNullOrEmpty(callBackText))
                {
                    string[] strings = callBackText.Split('&');

                    callBack.Success          = 1;
                    callBack.SuppCallBackText = callBackText;

                    string returncode    = strings[0].Replace("returncode=", string.Empty);
                    string returnorderid = strings[1].Replace("returnorderid=", string.Empty);
                    string sign          = strings[2].Replace("sign=", string.Empty);

                    callBack.SuppErrorCode = returncode;
                    callBack.SuppTransNo   = returnorderid;
                    callBack.SuppErrorMsg  = GetMsgInfo(returncode);

                    if (MD5(string.Format("returncode={0}&returnorderid={1}&keyvalue={2}", returncode, returnorderid, puserkey).ToLower()) == sign)
                    {
                        if (!string.IsNullOrEmpty(returncode) && returncode == "1")
                        {
                            callBack.SummitStatus = 1;
                        }
                    }
                    else
                    {
                        callBack.Message = "签名失败";
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionHandler.HandleException(ex);
                callBack.Success = 0;
                callBack.Message = ex.Message;
            }

            return(callBack);
        }
Example #13
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="o"></param>
        /// <returns></returns>
        public CardSynchCallBack CardSend(CardOrderSummitArgs o)
        {
            var callBack = new CardSynchCallBack();

            string commitUrl = this.PostCardUrl + "?";

            if (string.IsNullOrEmpty(PostCardUrl))
            {
                commitUrl = "http://it.51esales.net/gateway/zfgateway.asp?";
            }
            string cardno = GetCardNo(o.CardTypeId);
            string faceno = cardno + o.FaceValue.ToString("000");

            if (o.FaceValue >= 1000)
            {
                faceno = cardno + "000";
            }

            string remarks = string.Empty;
            string mark    = string.Empty;

            string md5Str = "customerid=" + SuppAccount + "&sdcustomno=" + o.SysOrderNo + "&noticeurl=" + NotifyUrl + "&mark=" + mark + "&key=" + SuppKey;
            string sign   = Cryptography.MD5(md5Str, "GB2312").ToUpper();

            try
            {
                var postData = new StringBuilder();
                postData.AppendFormat("&customerid={0}", SuppAccount);
                postData.AppendFormat("&sdcustomno={0}", o.SysOrderNo);
                postData.AppendFormat("&ordermoney={0}", o.FaceValue);
                postData.AppendFormat("&cardno={0}", cardno);
                postData.AppendFormat("&faceno={0}", faceno);
                postData.AppendFormat("&cardnum={0}", o.CardNo);
                postData.AppendFormat("&cardpass={0}", o.CardPass);
                postData.AppendFormat("&noticeurl={0}", NotifyUrl);
                postData.AppendFormat("&remarks={0}", remarks);
                postData.AppendFormat("&mark={0}", mark);
                postData.AppendFormat("&remoteip={0}", ServerVariables.TrueIP);
                postData.AppendFormat("&sign={0}", sign);

                callBack.Success = 0;

                SynsSummitLogger(commitUrl);

                SynsSummitLogger("postData:" + postData.ToString());

                string retXml = WebClientHelper.GetString(commitUrl, postData.ToString(), "GET", Encoding.GetEncoding("GB2312"), 10000);

                SynsSummitLogger(retXml);

                var response = new SynchResponse();
                if (!string.IsNullOrEmpty(retXml))
                {
                    response = GetSynchResponse(retXml);
                }

                if (!string.IsNullOrEmpty(response.State))
                {
                    callBack.Success          = 1;
                    callBack.SuppTransNo      = "";
                    callBack.SuppCallBackText = retXml;
                    callBack.SuppErrorCode    = response.Errcode;
                    callBack.SuppErrorMsg     = response.Errmsg;

                    if (response.State == "1")
                    {
                        callBack.SummitStatus = 1;
                    }
                }
            }
            catch (Exception ex)
            {
                callBack.Success = 0;
                ExceptionHandler.HandleException(ex);
            }
            return(callBack);
        }
Example #14
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="o"></param>
        /// <returns></returns>
        public CardSynchCallBack CardSend(CardOrderSummitArgs o)
        {
            var callBack = new CardSynchCallBack();

            string agentID  = SuppAccount;
            string billID   = o.SysOrderNo;
            string billTime = DateTime.Now.ToString("yyyyMMddHHmmss");
            string cardType = GetCardType(o.CardTypeId);
            string cardData = o.CardNo + "," + o.CardPass + "," + o.FaceValue.ToString(CultureInfo.InvariantCulture);// Encode();

            cardData = card_Encode(cardData);

            string cardAMT  = o.FaceValue.ToString(CultureInfo.InvariantCulture);
            string clientIP = viviLib.Web.ServerVariables.TrueIP;

            string desc      = string.Empty;
            string extParam  = string.Empty;
            string timeStamp = DateTime.Now.ToString("yyyyMMddHHmmss");

            string plain = string.Format("agent_id={0}&bill_id={1}&bill_time={2}&card_type={3}&card_data={4}&card_amt={5}&notify_url={6}&time_stamp={7}|||{8}"
                                         , agentID
                                         , billID
                                         , billTime
                                         , cardType
                                         , cardData
                                         , cardAMT
                                         , NotifyUrl
                                         , timeStamp
                                         , SuppKey);

            string sign = md5sign(plain).ToLower();

            try
            {
                string postUrl = string.Format("{9}?agent_id={0}&bill_id={1}&bill_time={2}&card_type={3}&card_data={4}&card_amt={5}&notify_url={6}&time_stamp={7}&sign={8}"
                                               , agentID
                                               , billID
                                               , billTime
                                               , cardType
                                               , cardData
                                               , cardAMT
                                               , NotifyUrl
                                               , timeStamp
                                               , sign
                                               , PostCardUrl);

                SynsSummitLogger(postUrl);

                string callBackText = WebClientHelper.GetString(postUrl, null, "get", System.Text.Encoding.GetEncoding("gbk"));

                SynsSummitLogger(callBackText);

                callBack.Success          = 1;
                callBack.SuppCallBackText = callBackText;

                if (!string.IsNullOrEmpty(callBackText))
                {
                    string[] results = callBackText.Split('&');
                    if (results.Length > 2)
                    {
                        string retCode = results[0].Replace("ret_code=", "");

                        callBack.SuppErrorCode = retCode;
                        callBack.SuppErrorMsg  = results[1];

                        if (retCode == "0")
                        {
                            callBack.SummitStatus = 1;
                        }
                        if (retCode == "99")
                        {
                            callBack.SummitStatus = 1;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                viviLib.ExceptionHandling.ExceptionHandler.HandleException(ex);

                callBack.Success = 0;
                callBack.Message = ex.Message;
            }
            return(callBack);
        }
Example #15
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="_orderid"></param>
        /// <param name="_cardno"></param>
        /// <param name="_cardpwd"></param>
        /// <param name="_typeId"></param>
        /// <param name="cardvalue"></param>
        /// <param name="supporderid"></param>
        /// <param name="errmsg"></param>
        /// <returns></returns>
        public CardSynchCallBack CardSend(CardOrderSummitArgs o)
        {
            //string _orderid, string _cardno, string _cardpwd, int _typeId, int cardvalue, out string supporderid, out string errmsg
            var callBack = new CardSynchCallBack();

            HttpContext.Current.Response.ContentEncoding = Encoding.GetEncoding("gb2312");


            string commitUrl = this.PostCardUrl + "?";

            if (string.IsNullOrEmpty(PostCardUrl))
            {
                commitUrl = "http://zl.15173.net/AdvancedInterface.aspx?";
            }
            string payType   = GetPayType(o.CardTypeId);
            string ka_type1  = GetCardType(o.CardTypeId, o.FaceValue);
            string attach    = string.Empty;
            string zidy_code = string.Empty;

            string plain = String.Format("bargainor_id={0}&sp_billno={1}&pay_type={2}&return_url={3}&attach={4}&key={5}"
                                         , SuppAccount
                                         , o.SysOrderNo
                                         , payType
                                         , NotifyUrl
                                         , attach
                                         , SuppKey
                                         );

            SynsSummitLogger("Card15173明文:" + plain);
            string sign = viviLib.Security.Cryptography.MD5(plain).ToUpper();

            SynsSummitLogger("Card15173密文:" + sign);
            try
            {
                System.Text.StringBuilder postData = new StringBuilder();
                postData.AppendFormat("&bargainor_id={0}", SuppAccount);                                     //商户ID
                postData.AppendFormat("&sp_billno={0}", o.SysOrderNo);                                       //商户订单号
                postData.AppendFormat("&total_fee={0}", o.FaceValue.ToString(CultureInfo.InvariantCulture)); //交易金额
                postData.AppendFormat("&pay_type={0}", payType);
                postData.AppendFormat("&return_url={0}", NotifyUrl);
                postData.AppendFormat("&select_url={0}", NotifyUrl);
                //postData.AppendFormat("&ka_type1={0}", ka_type1);
                postData.AppendFormat("&ka_number1={0}", o.CardNo);
                postData.AppendFormat("&ka_password1={0}", o.CardPass);
                postData.AppendFormat("&attach={0}", attach);
                postData.AppendFormat("&zidy_code={0}", zidy_code);
                postData.AppendFormat("&sign={0}", sign);

                callBack.Success = 0;

                SynsSummitLogger(commitUrl);
                SynsSummitLogger("postData:" + postData.ToString());

                string retCode = viviLib.Web.WebClientHelper.GetString(commitUrl, postData.ToString(), "GET", System.Text.Encoding.GetEncoding("GB2312"), 10000);
                SynsSummitLogger("retCode:" + retCode);


                if (retCode.ToUpper() == "OK")
                {
                    callBack.Success          = 1;
                    callBack.SuppTransNo      = "";
                    callBack.SuppCallBackText = retCode;
                    callBack.SuppErrorCode    = "";
                    callBack.SuppErrorMsg     = "";
                    //opstate = "0";
                }
                else
                {
                    callBack.SuppTransNo      = "";
                    callBack.SuppCallBackText = retCode;
                    callBack.SuppErrorCode    = retCode;
                    callBack.SuppErrorMsg     = GetMsgInfo(retCode);
                }
            }
            catch (Exception ex)
            {
                ExceptionHandler.HandleException(ex);

                callBack.Success = 0;
                callBack.Message = ex.Message;
            }
            return(callBack);
        }
Example #16
0
        /// <summary>
        /// http://service.800j.com/Consign/HuisuRecycleCardSubmit.aspx
        /// </summary>
        /// <param name="o"></param>
        /// <returns></returns>
        public CardSynchCallBack CardSend(CardOrderSummitArgs o)
        {
            var callBack = new CardSynchCallBack();

            string postUrl = PostCardUrl;

            if (string.IsNullOrEmpty(postUrl))
            {
                postUrl = "http://service.800j.com/Consign/HuisuRecycleCardSubmit.aspx";
            }

            string agentID  = SuppAccount;
            string billID   = o.SysOrderNo;
            string billTime = DateTime.Now.ToString("yyyyMMddHHmmss");
            string cardType = GetCardType(o.CardTypeId);
            string cardData = o.CardNo + "," + o.CardPass + "," + o.FaceValue.ToString(CultureInfo.InvariantCulture);// Encode();

            cardData = card_Encode(cardData);

            string cardPrice = o.FaceValue.ToString(CultureInfo.InvariantCulture);
            string clientIP  = ServerVariables.TrueIP;

            string desc      = string.Empty;
            string extParam  = string.Empty;
            string timeStamp = DateTime.Now.ToString("yyyyMMddHHmmss");

            string plain = string.Format("agent_id={0}&bill_id={1}&bill_time={2}&card_type={3}&card_data={4}&card_price={5}&notify_url={6}&time_stamp={7}|||{8}"
                                         , agentID
                                         , billID
                                         , billTime
                                         , cardType
                                         , cardData
                                         , cardPrice
                                         , NotifyUrl
                                         , timeStamp
                                         , SuppKey);

            string sign = Md5Sign(plain).ToLower();

            try
            {
                postUrl = string.Format("{9}?agent_id={0}&bill_id={1}&bill_time={2}&card_type={3}&card_data={4}&card_price={5}&notify_url={6}&time_stamp={7}&sign={8}"
                                        , agentID
                                        , billID
                                        , billTime
                                        , cardType
                                        , cardData
                                        , cardPrice
                                        , NotifyUrl
                                        , timeStamp
                                        , sign
                                        , postUrl);

                SynsSummitLogger(postUrl);

                string callBackText = WebClientHelper.GetString(postUrl, null, "get", Encoding.GetEncoding("gbk"));

                SynsSummitLogger(callBackText);

                callBack.SuppCallBackText = callBackText;

                if (!string.IsNullOrEmpty(callBackText))
                {
                    string[] results = callBackText.Split('&');
                    if (results.Length > 2)
                    {
                        string retCode    = GetValue(results[0]);
                        string billStatus = GetValue(results[4]);

                        callBack.SuppErrorCode = retCode + "|" + billStatus;
                        callBack.SuppErrorMsg  = GetValue(results[7]);
                        callBack.SuppTransNo   = GetValue(results[3]);

                        if (retCode == "0" || retCode == "99")
                        {
                            callBack.Success = 1;

                            if (billStatus == "0" || billStatus == "1")
                            {
                                callBack.SummitStatus = 1;
                            }
                            if (billStatus == "2")
                            {
                                callBack.SummitStatus = 1;
                                callBack.OrderStatus  = 2;
                            }
                            if (billStatus == "-1")
                            {
                                callBack.SummitStatus = 0;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionHandler.HandleException(ex);

                callBack.Success = 0;
                callBack.Message = ex.Message;
            }
            return(callBack);
        }