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); }
/// <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); }
/// <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); }
/// <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}¬ifyurl={12}&parvalue={5}&pwd={6}&stockid={7}×tamp={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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
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 } } // } } }
/// <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); }
/// <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); }
/// <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); }
/// <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 + "¬iceurl=" + 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("¬iceurl={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); }
/// <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}¬ify_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}¬ify_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); }
/// <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); }
/// <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}¬ify_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}¬ify_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); }