Beispiel #1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // 设置 Response编码格式为GB2312
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");

        p2_Order        = Request.Form["p2_Order"];
        p3_Amt          = Request.Form["p3_Amt"];
        p4_verifyAmt    = Request.Form["p4_verifyAmt"];
        p5_Pid          = Request.Form["p5_Pid"];
        p6_Pcat         = Request.Form["p6_Pcat"];
        p7_Pdesc        = Request.Form["p7_Pdesc"];
        p8_Url          = Request.Form["p8_Url"];
        pa_MP           = Request.Form["pa_MP"];
        pa7_cardAmt     = Request.Form["pa7_cardAmt"];
        pa8_cardNo      = Request.Form["pa8_cardNo"];
        pa9_cardPwd     = Request.Form["pa9_cardPwd"];
        pd_FrpId        = Request.Form["pd_FrpId"];
        pr_NeedResponse = "1";
        pz_userId       = Request.Form["pz_userId"];
        pz1_userRegTime = Request.Form["pz1_userRegTime"];

        try
        {
            //非银行卡 正式使用
            SZXResult result = SZX.AnnulCard(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);

            if (result.R1_Code == "1")
            {
                Response.Write("非银行卡支付请求提交成功");
                Response.Write("<br>商户订单号:" + result.R6_Order);
                Response.Write("<br><br>" + result.ReqResult);
            }
            else
            {
                Response.Write("非银行卡支付请求提交失败 [" + result.R1_Code + "]" + result.Rq_ReturnMsg);

                if (result.R1_Code == "11")
                {
                    Response.Write("-订单号重复");
                }
                else if (result.R1_Code == "7")
                {
                    Response.Write("-卡密无效");
                }
                else if (result.R1_Code == "61")
                {
                    Response.Write("-账户未开通");
                }

                Response.Write("<br><br>" + result.ReqUrl);
                Response.Write("<br><br>" + result.ReqResult);
            }
        }
        catch (Exception ex)
        {
            Response.Write(ex.ToString());
        }
    }
        public CardPaymentRequestStatus ProcessCardPaymentRequest(CardPayment cardPayment, int retryCount)
        {
            var result = CardPaymentRequestStatus.NotRequest;
            // SZXResult szxResult = PaymentsService.YeepayCardPayments(cardPayment); //卡内金额全部充值
            SZXResult szxResult = PaymentsService.YeepayCardPartialPayments(cardPayment); //部分充值


            LogHelper.WriteInfo(string.Format("Processing card payment with OrderNo : {0}, request result : {1}", cardPayment.OrderNo, szxResult == null ? "null" : szxResult.R1_Code));
            if (szxResult == null || string.IsNullOrEmpty(szxResult.R1_Code)) // retry
            {
                if (retryCount == -1)
                {
                    result = CardPaymentRequestStatus.RequestFailed;
                }
                else
                {
                    cardPayment.RequestDateTime = DateTime.Now;
                    retryCount++;
                    result = CardPaymentRequestStatus.RequestFailed;

                    if (retryCount <= retryTimesLimitation)
                    {
                        RedisService.AddItemToQueue <CardPayment>(BillingConsts.KEY_CARD_PAYMENT_REQUEST_RETRY_QUEUE + retryCount, cardPayment);
                    }
                    else // final failed
                    {
                        Order currentOrder = oracleRepo.Single <Order>(cardPayment.OrderID);
                        SetFailedOrderStatus(CardPaymentRequestStatus.RequestFailed, currentOrder);
                        //record the info for retry manually
                        var cardPaymentInfoForRetry = EntityMapping.Auto <CardPayment, CardPaymentRetry>(cardPayment);
                        var AddRes = oracleRepo.Add <CardPaymentRetry>(cardPaymentInfoForRetry);
                    }
                }
            }
            else
            {
                CardPaymentRequestStatus requestStatus = (CardPaymentRequestStatus)szxResult.R1_Code.ToInt32();
                Order currentOrder = oracleRepo.Single <Order>(cardPayment.OrderID);

                if (currentOrder != null)
                {
                    switch (requestStatus)
                    {
                    case CardPaymentRequestStatus.Success:
                        SetSuccessOrderStatus(currentOrder);
                        result = requestStatus;
                        break;

                    default:
                        SetFailedOrderStatus(requestStatus, currentOrder);
                        result = requestStatus;
                        break;
                    }
                }
            }
            return(result);
        }
Beispiel #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="order"></param>
        /// <returns></returns>
        public string GetPayUrl(string _orderid, string _cardno, string _cardpwd, int _typeId, int cardvalue, out string errmsg)
        {
            errmsg = string.Empty;
            string puserid  = this.SuppAccount;
            string puserkey = this.SuppKey;

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

            p2_Order        = _orderid;
            p3_Amt          = decimal.Parse(cardvalue.ToString()).ToString("0.00");
            p4_verifyAmt    = "false";
            p5_Pid          = "product";
            p6_Pcat         = "producttype";
            p7_Pdesc        = "productdesc";
            p8_Url          = this.SiteDomain + "/notify/YeePay_Card_Return.aspx";
            pa_MP           = "";
            pa7_cardAmt     = decimal.Parse(cardvalue.ToString()).ToString("0.00");
            pa8_cardNo      = _cardno;
            pa9_cardPwd     = _cardpwd;
            pd_FrpId        = CardTypeNo(_typeId);
            pr_NeedResponse = "1";
            pz_userId       = puserid;
            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);

                if (result.R1_Code == "1")
                {
                    return("0");//success
                }
                if (result.R1_Code == "11")
                {
                    errmsg = "订单号重复";
                    return("-1");//订单号重复
                }
                if (result.R1_Code == "7")
                {
                    errmsg = "卡密无效";
                    return("-1");//卡密无效
                }
                if (result.R1_Code == "61")
                {
                    errmsg = "卡密无效";
                    return("-1");//卡密无效
                }
                errmsg = "未知错误,错误编码:" + result.R1_Code;
                return("-1");// ("未知错误,错误编码:" + result.R1_Code);
            }
            catch (Exception ex)
            {
                ExceptionHandler.HandleException(ex);
                return("-1");
            }
        }
Beispiel #4
0
        public void update_order_status_when_yeepaycardpayments_return_normal_result()
        {
            SZXResult result       = new SZXResult("", "1", "", "", "", "", "");
            Order     currentOrder = new Order
            {
                Id = (int)cp.OrderID,
            };

            _paymentsServiceMock.Setup <SZXResult>(s => s.YeepayCardPartialPayments(cp)).Returns(result);
            _repository.Setup(s => s.Single <Order>(cp.OrderID)).Returns(currentOrder);

            cardPaymentProcessor.ProcessCardPaymentRequest(cp, 0);

            _repository.Verify(s => s.Update <Order>(currentOrder));
        }
Beispiel #5
0
        public void update_order_status_and_add_to_CardPaymentCallbackResult_processing_queue_when_yeepaycardpayments_return_abnormal_result()
        {
            SZXResult result = new SZXResult("", "-1", "", "", "", "", "");


            _paymentsServiceMock.Setup <SZXResult>(s => s.YeepayCardPartialPayments(cp)).Returns(result);
            _repository.Setup(s => s.Single <Order>(cp.OrderID)).Returns(currentOrder);

            cardPaymentProcessor.ProcessCardPaymentRequest(cp, 0);

            // should update order status
            _repository.Verify(s => s.Update <Order>(currentOrder));
            // should put into Q2
            //_redisServiceMock.Verify(s => s.AddItemToQueue<PaymentNotification>(BillingConsts.KEY_CARD_PAYMENT_CALLBACK_PROCESSING_QUEUE, It.IsAny<PaymentNotification>()));
        }
Beispiel #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="info"></param>
        /// <param name="apiKey"></param>
        /// <returns></returns>
        public static string GetResponseText(SZXResult info, string apiKey)
        {
            string rHmac = info.R0_Cmd + info.R1_Code + info.R2_TrxId + info.R6_Order + info.Rq_ReturnMsg;

            rHmac = Lib.Digest.HmacSign(rHmac, apiKey);

            string text = string.Format("r0_Cmd={1}{0}r1_Code={2}{0}r2_TrxId={3}{0}r6_Order={4}{0}rq_ReturnMsg={5}{0}hmac={6}", '\n'
                                        , info.R0_Cmd
                                        , info.R1_Code
                                        , info.R2_TrxId
                                        , info.R6_Order
                                        , info.Rq_ReturnMsg
                                        , rHmac);

            return(text);
        }
Beispiel #7
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);
        }
Beispiel #8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");

            if (!string.IsNullOrEmpty(FormatQueryString.GetQueryString("p1_MerId")) && !string.IsNullOrEmpty(FormatQueryString.GetQueryString("pz1_userRegTime")))
            {
                #region  这是我的获取第三方接入过来的提交参数

                origin_p1_MerId = System.Web.HttpUtility.UrlDecode(FormatQueryString.GetQueryString("p1_MerId"), System.Text.Encoding.GetEncoding("gb2312"));
                origin_p2_Order = System.Web.HttpUtility.UrlDecode(FormatQueryString.GetQueryString("p2_Order"), System.Text.Encoding.GetEncoding("gb2312"));

                p3_Amt       = System.Web.HttpUtility.UrlDecode(FormatQueryString.GetQueryString("p3_Amt"), System.Text.Encoding.GetEncoding("gb2312"));
                p4_verifyAmt = System.Web.HttpUtility.UrlDecode(FormatQueryString.GetQueryString("p4_verifyAmt"), System.Text.Encoding.GetEncoding("gb2312"));
                p5_Pid       = System.Web.HttpUtility.UrlDecode(FormatQueryString.GetQueryString("p5_Pid"), System.Text.Encoding.GetEncoding("gb2312"));
                p6_Pcat      = System.Web.HttpUtility.UrlDecode(FormatQueryString.GetQueryString("p6_Pcat"), System.Text.Encoding.GetEncoding("gb2312"));
                p7_Pdesc     = System.Web.HttpUtility.UrlDecode(FormatQueryString.GetQueryString("p7_Pdesc"), System.Text.Encoding.GetEncoding("gb2312"));

                origin_p8_Url = System.Web.HttpUtility.UrlDecode(FormatQueryString.GetQueryString("p8_Url"), System.Text.Encoding.GetEncoding("gb2312"));

                pa_MP           = System.Web.HttpUtility.UrlDecode(FormatQueryString.GetQueryString("pa_MP"), System.Text.Encoding.GetEncoding("gb2312"));
                pa7_cardAmt     = System.Web.HttpUtility.UrlDecode(FormatQueryString.GetQueryString("pa7_cardAmt"), System.Text.Encoding.GetEncoding("gb2312"));
                pa8_cardNo      = System.Web.HttpUtility.UrlDecode(FormatQueryString.GetQueryString("pa8_cardNo"), System.Text.Encoding.GetEncoding("gb2312"));
                pa9_cardPwd     = System.Web.HttpUtility.UrlDecode(FormatQueryString.GetQueryString("pa9_cardPwd"), System.Text.Encoding.GetEncoding("gb2312"));
                pd_FrpId        = System.Web.HttpUtility.UrlDecode(FormatQueryString.GetQueryString("pd_FrpId"), System.Text.Encoding.GetEncoding("gb2312"));
                pr_NeedResponse = "1";
                pz_userId       = System.Web.HttpUtility.UrlDecode(FormatQueryString.GetQueryString("pz_userId"), System.Text.Encoding.GetEncoding("gb2312"));
                pz1_userRegTime = System.Web.HttpUtility.UrlDecode(FormatQueryString.GetQueryString("pz1_userRegTime"), System.Text.Encoding.GetEncoding("gb2312"));

                origin_hmac = FormatQueryString.GetQueryString("hmac");
                #endregion

                #region  这是我修改提交的参数
                p1_MerId = ConfigurationManager.AppSettings["p1_MerId"].ToString();
                p8_Url   = ConfigurationManager.AppSettings["p8_Url"].ToString();
                p2_Order = "789" + origin_p2_Order;
                #endregion


                #region  业务逻辑的处理



                #endregion
                SZXResult result = SZX.AnnulCard(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);
                #region 提交的返回值处理
                //得到的返回的数值
                string call_hmac            = result.Hmac;
                string call_r0_cmd          = result.R0_Cmd;
                string call_r1_code         = result.R1_Code;
                string call_r6_order        = result.R6_Order;
                string call_rq_returnmsg    = result.Rq_ReturnMsg;
                string call_req_result      = result.ReqResult;
                string real_call_req_result = "";
                if (result.R1_Code.Equals("1"))
                {
                    real_call_req_result = getReturnValue(call_r1_code, origin_p2_Order, call_rq_returnmsg, origin_hmac);
                }
                else
                {
                    real_call_req_result = getReturnValue(call_r1_code, origin_p2_Order, call_rq_returnmsg, call_hmac);
                }
                Response.Write(real_call_req_result);

                #endregion


                //p1_MerId = FormatQueryString.GetQueryString("p1_MerId");
                //p2_Order = FormatQueryString.GetQueryString("p2_Order");
                //p3_Amt = FormatQueryString.GetQueryString("p3_Amt");
                //p4_verifyAmt = FormatQueryString.GetQueryString("p4_verifyAmt");
                //p5_Pid = FormatQueryString.GetQueryString("p5_Pid");
                //p6_Pcat = FormatQueryString.GetQueryString("p6_Pcat");
                //p7_Pdesc = FormatQueryString.GetQueryString("p7_Pdesc");
                //p8_Url = FormatQueryString.GetQueryString("p8_Url");
                //pa_MP = FormatQueryString.GetQueryString("pa_MP");
                //pa7_cardAmt = FormatQueryString.GetQueryString("pa7_cardAmt");
                //pa8_cardNo = FormatQueryString.GetQueryString("pa8_cardNo");
                //pa9_cardPwd = FormatQueryString.GetQueryString("pa9_cardPwd");
                //pd_FrpId = FormatQueryString.GetQueryString("pd_FrpId");
                //pr_NeedResponse="1";
                //pz_userId = FormatQueryString.GetQueryString("pz_userId");
                //pz1_userRegTime = FormatQueryString.GetQueryString("pz1_userRegTime");
            }
        }
Beispiel #9
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // 设置 Response编码格式为GB2312
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            if (!string.IsNullOrEmpty(Request.Form["Cuserspay"]) && !string.IsNullOrEmpty(Request.Form["inputMoney"]))
            {
                string pay_username = Request.Form["Cuserspay"];
                string PayMoney     = Request.Form["inputMoney"];
                string payBank      = Request.Form["CpayBank"];
                string rtypeBank    = Request.Form["yx_bank"];

                string payTel = string.IsNullOrEmpty(Request.Form["txt_telphone"]) == true? "" : Request.Form["txt_telphone"];

                if (rtypeBank != "BANKSEL")
                {
                    payBank = rtypeBank;
                }

                p3_Amt          = Convert.ToString(decimal.Parse(PayMoney));
                p4_verifyAmt    = "false";
                p5_Pid          = "金币";
                p6_Pcat         = "1";
                p7_Pdesc        = "1";
                p8_Url          = ConfigurationManager.AppSettings["CallBackC"].ToString();
                pa_MP           = pay_username;
                pa7_cardAmt     = Request.Form["inputMoney"];
                pa8_cardNo      = Request.Form["pa8_cardNo"];
                pa9_cardPwd     = Request["pa9_cardPwd"];
                pd_FrpId        = payBank;
                pr_NeedResponse = "1";
                pz_userId       = Convert.ToString(DateTime.Now.ToString("yyyyMMddhhmmss"));
                pz1_userRegTime = DateTime.Now.ToString();

                p2_Order = "CYC" + DateTime.Now.ToString("yyyyMMddhhmmss");
                //非银行卡专业版正式使用
                try
                {
                    int payType = 0;
                    switch (payBank)
                    {
                    case "JUNNET":
                        payType = 2;
                        break;

                    case "SNDACARD":
                        payType = 3;
                        break;

                    case "SZX":
                        payType = 4;
                        break;

                    case "ZHENGTU":
                        payType = 5;
                        break;

                    case "QQCARD":
                        payType = 6;
                        break;

                    case "UNICOM":
                        payType = 7;
                        break;

                    case "JIUYOU":
                        payType = 8;
                        break;

                    case "NETEASE":
                        payType = 9;
                        break;

                    case "WANMEI":
                        payType = 10;
                        break;

                    case "SOHU":
                        payType = 11;
                        break;

                    case "TELECOM":
                        payType = 12;
                        break;

                    case "TIANXIA":
                        payType = 13;
                        break;

                    case "TIANHONG":
                        payType = 14;
                        break;

                    case "YPCARD":
                        payType = 16;
                        break;

                    case "ZONGYOU":
                        payType = 17;
                        break;
                    }

                    DataSet     ds          = new DataSet();
                    int         uid         = accountsFacade.GetAccountsId(pay_username);
                    OnLineOrder onlineOrder = new OnLineOrder();
                    onlineOrder.Accounts    = pay_username;
                    onlineOrder.UserID      = uid;
                    onlineOrder.OrderAmount = decimal.Parse(PayMoney);
                    onlineOrder.OrderID     = p2_Order;
                    onlineOrder.OrderStatus = 0;
                    onlineOrder.ShareID     = payType;
                    onlineOrder.CardTotal   = 1;
                    onlineOrder.CardTypeID  = payType;//卡类充值
                    onlineOrder.TelPhone    = payTel;
                    onlineOrder.IPAddress   = GameRequest.GetUserIP();
                    Message msg = treasureFacade.RequestOrder(onlineOrder);


                    if (!msg.Success)
                    {
                        Response.Redirect("/Tips.aspx?msg=" + msg.Content);
                    }
                    else
                    {
                        //非银行卡专业版正式使用
                        SZXResult result = SZX.AnnulCard(onlineOrder.OrderID, 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);
                        if (result.R1_Code == "1")
                        {
                            Response.Redirect("/WiteNetCard.html?OID=" + onlineOrder.OrderID);
                        }
                        else
                        {
                            Response.Redirect("/WiteNetCard.html?OID=" + onlineOrder.OrderID);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Response.Write(ex.ToString());
                }
            }
        }
Beispiel #10
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);
        }