Esempio n. 1
0
        public ActionResult Index(string etnum)
        {
            if (etnum.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "Some Error[00]";
                return(View("Error"));
            }
            string    tnum      = LokFuEncode.LokFuAPIDecode(etnum, DllName);
            FastOrder FastOrder = Entity.FastOrder.FirstOrDefault(n => n.TNum == tnum);

            if (FastOrder == null)
            {
                ViewBag.ErrorMsg = "Some Error[02]";
                return(View("Error"));
            }
            ViewBag.FastOrder = FastOrder;

            Users Users = Entity.Users.FirstOrDefault(n => n.Id == FastOrder.UId);

            ViewBag.Users = Users;

            IList <UsersPayCard> UsersPayCardList = Entity.UsersPayCard.Where(n => n.UId == Users.Id && n.State == 1).ToList();

            ViewBag.UsersPayCardList = UsersPayCardList;

            ViewBag.etnum = etnum;

            return(View());
        }
        public ActionResult Index(string etnum)
        {
            if (etnum.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "Some Error[00]";
                return(View("Error"));
            }
            string    tnum      = LokFuEncode.LokFuAPIDecode(etnum, DllName);
            FastOrder FastOrder = Entity.FastOrder.FirstOrDefault(n => n.TNum == tnum);

            if (FastOrder == null)
            {
                ViewBag.ErrorMsg = "Some Error[02]";
                return(View("Error"));
            }
            FastPayWay FastPayWay = Entity.FastPayWay.FirstOrDefault(n => n.Id == FastOrder.PayWay);

            if (FastOrder == null)
            {
                ViewBag.ErrorMsg = "Some Error[03]";
                return(View("Error"));
            }
            if (FastPayWay.DllName != DllName)
            {
                ViewBag.ErrorMsg = "Some Error[04]";
                return(View("Error"));
            }
            string[] PayConfigArr = FastPayWay.QueryArray.Split(',');
            if (PayConfigArr.Length != 3)
            {
                ViewBag.ErrorMsg = "Some Error[05]";
                return(View("Error"));
            }
            FastUserPay FastUserPay = Entity.FastUserPay.FirstOrDefault(n => n.PayWay == FastOrder.PayWay && n.UId == FastOrder.UId && n.MerState == 1);

            if (FastUserPay == null)
            {
                ViewBag.ErrorMsg = "商户通道异常";
                return(View("Error"));
            }

            string paywaycode = PayConfigArr[2];                                   //绑定通道
            string OrderMoney = (FastOrder.Amoney * 100).ToString("F0");           //金额,以分为单
            string ReturnUrl  = PayPath + "/PayCenter/HFJSPay/FastResult.html";    //支付成功跳转页
            string BackUrl    = NoticePath + "/PayCenter/HFJSPay/FastNotice.html"; //后台通过地址

            string Data = "{\"txnamt\":\"" + OrderMoney + "\",\"merid\":\"" + FastUserPay.MerId + "\",\"paywaycode\":\"" + paywaycode + "\",\"orderid\":\"" + FastOrder.TNum + "\",\"backurl\":\"" + BackUrl + "\",\"fronturl\":\"" + ReturnUrl + "\"}";

            string DataBase64 = LokFuEncode.Base64Encode(Data, "utf-8");
            string Sign       = (DataBase64 + FastUserPay.MerKey).GetMD5();

            string GoUrl = "https://api.zhifujiekou.com/apis/fastorderspay?";

            GoUrl += "req=" + HttpUtility.UrlEncode(DataBase64);
            GoUrl += "&sign=" + Sign;

            Response.Redirect(GoUrl);

            return(View("Null"));
        }
Esempio n. 3
0
        public string DelCard(string etnum, int id = 0)
        {
            string    tnum      = LokFuEncode.LokFuAPIDecode(etnum, DllName);
            FastOrder FastOrder = Entity.FastOrder.FirstOrDefault(n => n.TNum == tnum);

            if (FastOrder == null)
            {
                return("0");
            }
            Users Users = Entity.Users.FirstOrDefault(n => n.Id == FastOrder.UId);

            if (Users == null)
            {
                return("0");
            }
            UsersPayCard UsersPayCard = Entity.UsersPayCard.FirstOrDefault(n => n.UId == FastOrder.UId && n.Id == id);

            if (UsersPayCard == null)
            {
                return("0");
            }
            UsersPayCard.State = 0;
            Entity.SaveChanges();
            return("1");
        }
Esempio n. 4
0
        public void GoPay(string etnum, int BankId)
        {
            if (etnum.IsNullOrEmpty() || BankId.IsNullOrEmpty())
            {
                Response.Write("Some Error[00]");
                return;
            }
            string    tnum      = LokFuEncode.LokFuAPIDecode(etnum, DllName);
            FastOrder FastOrder = Entity.FastOrder.FirstOrDefault(n => n.TNum == tnum);

            if (FastOrder == null)
            {
                Response.Write("Some Error[02]");
                return;
            }
            FastPayWay FastPayWay = Entity.FastPayWay.FirstOrDefault(n => n.Id == FastOrder.PayWay);

            if (FastOrder == null)
            {
                Response.Write("Some Error[03]");
                return;
            }
            Response.Redirect("/paycenter/" + FastPayWay.DllName.ToLower() + "/gopay.html?etnum=" + HttpUtility.UrlEncode(LokFuEncode.LokFuAPIEncode(FastOrder.TNum + "|" + BankId, FastPayWay.DllName)));
        }
Esempio n. 5
0
        public ActionResult AddCard(string etnum, string Card = "", string Mobile = "", string code = "")
        {
            string    tnum      = LokFuEncode.LokFuAPIDecode(etnum, DllName);
            FastOrder FastOrder = Entity.FastOrder.FirstOrDefault(n => n.TNum == tnum);

            if (FastOrder == null)
            {
                ViewBag.ErrorMsg = "订单有误!";
                return(View("Error"));
            }
            Users Users = Entity.Users.FirstOrDefault(n => n.Id == FastOrder.UId);

            if (Users == null)
            {
                ViewBag.ErrorMsg = "商户信息有误!";
                return(View("Error"));
            }

            ViewBag.FastOrder = FastOrder;
            ViewBag.Users     = Users;
            ViewBag.etnum     = etnum;

            if (!Card.IsNullOrEmpty() && !Mobile.IsNullOrEmpty() && !code.IsNullOrEmpty())
            {
                if (Card.Length > 20)
                {
                    ViewBag.ErrorMsg = "卡号长度超限!";
                    return(View("Error"));
                }
                if (Mobile.Length > 20)
                {
                    ViewBag.ErrorMsg = "手机号码长度超限!";
                    return(View("Error"));
                }
                if (code.ToUpper() != Session.GetCheckCode())
                {
                    ViewBag.ErrorMsg = "验证码错误!";
                    return(View("Error"));
                }
                Session.ClearCheckCode();
                //绑卡前验证是否有鉴权权限
                UsersPayCard UsersPayCard = Entity.UsersPayCard.FirstOrDefault(n => n.Card == Card && n.Mobile == Mobile && n.UId == FastOrder.UId);
                if (UsersPayCard == null)//不存在则绑卡
                {
                    UserBlackList UserBlackList = Entity.UserBlackList.FirstOrDefault(UBL => UBL.CardNumber == Card && UBL.State == 3);
                    if (UserBlackList != null)
                    {
                        ViewBag.ErrorMsg = "暂不支持该银行卡绑卡";
                        return(View("Error"));
                    }

                    string HaoFu_Auth_MerId  = ConfigurationManager.AppSettings["HaoFu_Auth_MerId"].ToString();
                    string HaoFu_Auth_MerKey = ConfigurationManager.AppSettings["HaoFu_Auth_MerKey"].ToString();
                    string HaoFu_Auth_Url    = ConfigurationManager.AppSettings["HaoFu_Auth_Url"].ToString();

                    string data       = "{\"action\":\"authuser\",\"merid\":\"" + HaoFu_Auth_MerId + "\",\"orderid\":\"" + FastOrder.TNum + "\",\"bankaccount\":\"" + Card + "\",\"accountname\":\"" + Users.TrueName + "\",\"identitycode\":\"" + Users.CardId + "\",\"mobile\":\"" + Mobile + "\"}";
                    string DataBase64 = LokFuEncode.Base64Encode(data, "utf-8");
                    string Sign       = (DataBase64 + HaoFu_Auth_MerKey).GetMD5();

                    DataBase64 = HttpUtility.UrlEncode(DataBase64, Encoding.UTF8);
                    string postdata = "req=" + DataBase64 + "&sign=" + Sign;

                    string CONTENT = Utils.PostRequest(HaoFu_Auth_Url, postdata, "utf-8");

                    JObject JS = new JObject();
                    try
                    {
                        JS = (JObject)JsonConvert.DeserializeObject(CONTENT);
                    }
                    catch (Exception)
                    {
                        ViewBag.ErrorMsg = "请求银联鉴权失败!【00】";
                        return(View("Error"));
                    }
                    string resp = JS["resp"].ToString();
                    CONTENT = LokFuEncode.Base64Decode(resp, "utf-8");
                    try
                    {
                        JS = (JObject)JsonConvert.DeserializeObject(CONTENT);
                    }
                    catch (Exception)
                    {
                        ViewBag.ErrorMsg = "请求银联鉴权失败!【01】";
                        return(View("Error"));
                    }
                    string ret_code = JS["respcode"].ToString();

                    if (ret_code == "0000")
                    {
                        string BankNumLeft = Card.Substring(0, 6);
                        //获取卡Bin
                        BasicCardBin BasicCardBin = Entity.BasicCardBin.FirstOrDefault(n => n.BIN == BankNumLeft);
                        string       bankName     = "银联卡";
                        byte         CardType     = 0;
                        if (BasicCardBin != null)
                        {
                            bankName = BasicCardBin.BankName;
                            CardType = (byte)BasicCardBin.CardType;
                        }
                        else
                        {
                        }
                        UsersPayCard         = new UsersPayCard();
                        UsersPayCard.UId     = FastOrder.UId;
                        UsersPayCard.Type    = CardType;
                        UsersPayCard.Bank    = bankName;
                        UsersPayCard.Name    = Users.TrueName;
                        UsersPayCard.Card    = Card;
                        UsersPayCard.Mobile  = Mobile;
                        UsersPayCard.State   = 1;
                        UsersPayCard.AddTime = DateTime.Now;
                        Entity.UsersPayCard.AddObject(UsersPayCard);
                        Entity.SaveChanges();
                        Response.Redirect("GoPay.html?BankId=" + UsersPayCard.Id + "&etnum=" + HttpUtility.UrlEncode(etnum));
                    }
                    else
                    {
                        string ret_msg = JS["respmsg"].ToString();
                        ViewBag.ErrorMsg = "银行卡认证失败!";
                        return(View("Error"));
                    }
                }
                else
                {
                    if (UsersPayCard.State == 0)
                    {
                        UsersPayCard.State = 1;
                        Entity.SaveChanges();
                    }
                    Response.Redirect("GoPay.html?BankId=" + UsersPayCard.Id + "&etnum=" + HttpUtility.UrlEncode(etnum));
                }
            }
            return(View());
        }
Esempio n. 6
0
        public ActionResult Show(string data, string eno)
        {
            if (data.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "data参数错误!";
                return(View("Error"));
            }
            if (eno.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "eno参数错误!";
                return(View("Error"));
            }
            Equipment Equipment = Entity.Equipment.FirstOrDefault(n => n.No == eno);

            if (Equipment == null)
            {
                ViewBag.ErrorMsg = "设备故障!";
                return(View("Error"));
            }
            string Key = Equipment.Keys;
            //string Data = HttpUtility.UrlDecode(data, Encoding.UTF8);
            string  Json = LokFuEncode.LokFuAPIDecode(data, Key);
            JObject json = new JObject();

            try
            {
                json = (JObject)JsonConvert.DeserializeObject(Json);
            }
            catch (Exception Ex)
            {
            }
            if (json == null)
            {
                ViewBag.ErrorMsg = "json参数错误!";
                return(View("Error"));
            }
            Orders order = new Orders();

            order = JsonToObject.ConvertJsonToModel(order, json);
            if (order.TNum.IsNullOrEmpty() || order.Token.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "json参数错误[02]!";
                return(View("Error"));
            }
            Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == order.Token);

            if (baseUsers == null)//用户令牌不存在
            {
                ViewBag.ErrorMsg = "用户不存在或登录信息有误!";
                return(View("Error"));
            }
            if (baseUsers.State != 1)//用户被锁定
            {
                ViewBag.ErrorMsg = "用户被锁定!";
                return(View("Error"));
            }
            if (baseUsers.CardStae != 2)//未实名认证
            {
                ViewBag.ErrorMsg = "用户未实名认证!";
                return(View("Error"));
            }
            if (baseUsers.MiBao != 1)//未设置支付密码
            {
                ViewBag.ErrorMsg = "用户未设置支付密码!";
                return(View("Error"));
            }
            Orders Orders = Entity.Orders.FirstOrDefault(n => n.TNum == order.TNum);

            if (Orders == null)
            {
                ViewBag.ErrorMsg = "交易不存在!";
                return(View("Error"));
            }
            if (baseUsers.Id != Orders.UId && baseUsers.Id != Orders.RUId)//禁止代付
            {
                ViewBag.ErrorMsg = "不能查看他人订单!";
                return(View("Error"));
            }
            ViewBag.Orders = Orders;
            ViewBag.Users  = baseUsers;
            ViewBag.PayUrl = PayPath + "/PayCenter/Pay/index.html?data=" + HttpUtility.UrlEncode(data) + "&eno=" + eno;
            return(View());
        }
        private ActionResult BankPay(Users Users, decimal Amount, PayConfig PayConfig, SysControl SysControl)
        {
            if (Users.Token.IsNullOrEmpty())
            {
                Users.Token = DateTime.Now.ToString().GetMD5();
                Entity.SaveChanges();
            }

            int InType = 0;

            if (SysControl.LagEntryNum > 0)
            {
                InType = 1;
            }

            string PostJson = "{amoney:" + Amount.ToString("F2") + ",token:\"" + Users.Token + "\",aid:2,paytype:4,x:\"0\",y:\"0\",intype:\"" + InType + "\",payway:\"" + PayConfig.Id + "\",orderaddress:\"网店收银台,IP:" + Utils.GetAddressAndIp() + "\"}";
            //提交数据
            string PostData = LokFuEncode.LokFuAPIEncode(PostJson, Shop_Keys);

            PostData = HttpUtility.UrlEncode(PostData);
            //Post参数
            string  PostString = "eno=" + Shop_ENO + "&data=" + PostData + "&code=0000";
            string  url        = AppPath + "/API/OrderRecharge/";
            string  RetString  = Utils.PostRequest(url, PostString, "utf-8");
            JObject json       = new JObject();

            try
            {
                json = (JObject)JsonConvert.DeserializeObject(RetString);
            }
            catch (Exception)
            {
                ViewBag.ErrorMsg = "接口数据有误![01]";
                return(View("Error"));
            }
            if (json == null)
            {
                ViewBag.ErrorMsg = "接口数据有误![02]";
                return(View("Error"));
            }
            string code = "";
            string data = "";

            try
            {
                code = json["code"].ToString();
                data = json["data"].ToString();
            }
            catch (Exception)
            {
                ViewBag.ErrorMsg = "接口数据有误![03]";
                return(View("Error"));
            }
            if (code != "0000")
            {
                ViewBag.ErrorMsg = "交易有误![" + code + "]";
                return(View("Error"));
            }
            //解密
            string  RetData = LokFuEncode.LokFuAPIDecode(data, Shop_Keys);
            JObject Json    = new JObject();

            try
            {
                Json = (JObject)JsonConvert.DeserializeObject(RetData);
            }
            catch (Exception)
            {
                ViewBag.ErrorMsg = "数据解析有误![01]";
                return(View("Error"));
            }
            if (Json == null)
            {
                ViewBag.ErrorMsg = "数据解析有误![02]";
                return(View("Error"));
            }
            Orders Orders = new Orders();

            Orders = JsonToObject.ConvertJsonToModel(Orders, Json);
            if (Orders.TNum.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "订单信息有误";
                return(View("Error"));
            }
            string payJson  = "{tnum:\"" + Orders.TNum + "\",token:\"" + Users.Token + "\"}";
            string JumpData = LokFuEncode.LokFuAPIEncode(payJson, Shop_Keys);

            JumpData = HttpUtility.UrlEncode(JumpData);
            string JumpString = "eno=" + Shop_ENO + "&data=" + JumpData + "&code=0000";
            string Url        = "/PayCenter/Pay/index.html?" + JumpString;

            return(this.Redirect(Url));
            //Response.Redirect(Url);
            //return View("GoPay");
        }
        public ActionResult Index(string etnum)
        {
            if (etnum.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "Some Error[00]";
                return(View("Error"));
            }
            string    tnum      = LokFuEncode.LokFuAPIDecode(etnum, DllName);
            FastOrder FastOrder = Entity.FastOrder.FirstOrDefault(n => n.TNum == tnum);

            if (FastOrder == null)
            {
                ViewBag.ErrorMsg = "Some Error[02]";
                return(View("Error"));
            }
            FastPayWay FastPayWay = Entity.FastPayWay.FirstOrDefault(n => n.Id == FastOrder.PayWay);

            if (FastPayWay == null)
            {
                ViewBag.ErrorMsg = "Some Error[03]";
                return(View("Error"));
            }
            if (FastPayWay.DllName != DllName)
            {
                ViewBag.ErrorMsg = "Some Error[04]";
                return(View("Error"));
            }
            string[] PayConfigArr = FastPayWay.QueryArray.Split(',');
            if (PayConfigArr.Length != 3)
            {
                ViewBag.ErrorMsg = "Some Error[05]";
                return(View("Error"));
            }
            FastUser FastUser = Entity.FastUser.FirstOrNew(n => n.UId == FastOrder.UId);

            string merId  = PayConfigArr[0];                             //商户号
            string merKey = PayConfigArr[1];                             //商户密钥
            string PayWay = PayConfigArr[2];                             //绑定通道

            string orderId    = FastOrder.TNum;                          //商户流水号
            string OrderMoney = (FastOrder.Amoney * 100).ToString("F0"); //金额,以分为单

            string TrueName = FastUser.TrueName;
            string CardId   = FastUser.CardId;

            //填写参数
            string ReturnUrl = PayPath + "/PayCenter/HFPay/FastResult.html";    //支付成功跳转页
            string BackUrl   = NoticePath + "/PayCenter/HFPay/FastNotice.html"; //后台通过地址


            if (TrueName.IsNullOrEmpty() || CardId.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "TrueName IsNull";
                return(View("Error"));
            }
            if (FastPayWay.Id == 8)
            {
                PayWay = "3855";
            }
            //if (FastPayWay.Id == 13)
            //{
            //    PayWay = "3852";
            //}

            string Data = "{\"action\":\"goAndPay\",\"txnamt\":\"" + OrderMoney + "\",\"merid\":\"" + merId + "\",\"payway\":\"" + PayWay + "\",\"orderid\":\"" + orderId + "\",\"backurl\":\"" + BackUrl + "\",\"fronturl\":\"" + ReturnUrl + "\",\"accname\":\"" + TrueName + "\",\"accno\":\"" + CardId + "\"}";

            string DataBase64 = LokFuEncode.Base64Encode(Data, "utf-8");
            string Sign       = (DataBase64 + merKey).GetMD5();

            string GoUrl = "https://api.zhifujiekou.com/apis/gateway?";

            GoUrl += "req=" + HttpUtility.UrlEncode(DataBase64);
            GoUrl += "&sign=" + Sign;

            Response.Redirect(GoUrl);

            return(View("Null"));
        }
Esempio n. 9
0
 public string GetData()
 {
     //string Data = HttpUtility.UrlDecode(this.Data, Encoding.UTF8);
     return(LokFuEncode.LokFuAPIDecode(this.Data, this.Key));
 }
        private ActionResult WeiXinPay(Users Users, decimal Amount, PayConfig PayConfig, SysControl SysControl)
        {
            if (Users.Token.IsNullOrEmpty())
            {
                Users.Token = DateTime.Now.ToString().GetMD5();
                Entity.SaveChanges();
            }

            int InType = 0;

            if (SysControl.LagEntryNum > 0)
            {
                InType = 1;
            }

            #region 微信支付
            string PostJson = "{amoney:" + Amount.ToString("F2") + ",token:\"" + Users.Token + "\",payid:\"shop\",otype:8,action:\"Create\",x:\"0\",y:\"0\",intype:\"" + InType + "\",payway:\"" + PayConfig.Id + "\",orderaddress:\"网店收银台,IP:" + Utils.GetAddressAndIp() + "\",ip:\"" + Utils.GetIP() + "\"}";
            //提交数据
            string PostData = LokFuEncode.LokFuAPIEncode(PostJson, Shop_Keys);
            PostData = HttpUtility.UrlEncode(PostData);
            //Post参数
            string PostString = "eno=" + Shop_ENO + "&data=" + PostData + "&code=0000";
            //AppPath = "http://localhost:2610";
            string  url       = AppPath + "/API/OrderQC/";
            string  RetString = Utils.PostRequest(url, PostString, "utf-8");
            JObject json      = new JObject();
            try
            {
                json = (JObject)JsonConvert.DeserializeObject(RetString);
            }
            catch (Exception)
            {
                ViewBag.ErrorMsg = "接口数据有误![01]";
                return(View("Error"));
            }
            if (json == null)
            {
                ViewBag.ErrorMsg = "接口数据有误![02]";
                return(View("Error"));
            }
            string code = "";
            string data = "";
            try
            {
                code = json["code"].ToString();
                data = json["data"].ToString();
            }
            catch (Exception)
            {
                ViewBag.ErrorMsg = "接口数据有误![03]";
                return(View("Error"));
            }
            if (code != "0000")
            {
                ViewBag.ErrorMsg = "交易有误![" + code + "]";
                return(View("Error"));
            }
            //解密
            string  RetData = LokFuEncode.LokFuAPIDecode(data, Shop_Keys);
            JObject Json    = new JObject();
            try
            {
                Json = (JObject)JsonConvert.DeserializeObject(RetData);
            }
            catch (Exception)
            {
                ViewBag.ErrorMsg = "数据解析有误![01]";
                return(View("Error"));
            }
            if (Json == null)
            {
                ViewBag.ErrorMsg = "数据解析有误![02]";
                return(View("Error"));
            }
            Orders Orders = new Orders();
            Orders = JsonToObject.ConvertJsonToModel(Orders, Json);
            if (Orders.PayId.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "订单信息有误";
                return(View("Error"));
            }
            string   PayId        = Orders.PayId;
            string[] PayConfigArr = PayConfig.QueryArray.Split(new char[] { ',' });
            if (PayConfig.DllName == "WeiXin")
            {
                string AppId  = PayConfigArr[0];
                string AppKey = PayConfigArr[2];

                WxPayData jsApiParam = new WxPayData();
                jsApiParam.SetValue("appId", AppId);
                jsApiParam.SetValue("timeStamp", WxPayApi.GenerateTimeStamp());
                jsApiParam.SetValue("nonceStr", WxPayApi.GenerateNonceStr());
                jsApiParam.SetValue("package", "prepay_id=" + PayId);
                jsApiParam.SetValue("signType", "MD5");
                jsApiParam.SetValue("paySign", jsApiParam.MakeSign(AppKey));
                string Parameters = jsApiParam.ToJson();
                ViewBag.Parameters = Parameters;
                Orders             = Entity.Orders.FirstOrNew(n => n.TNum == Orders.TNum);
                ViewBag.Orders     = Orders;
                return(View("WeiXinPay"));
            }
            else if (PayConfig.DllName == "HFWeiXin")
            {
                //提交结算中心
                string merId      = PayConfigArr[0]; //商户号
                string merKey     = PayConfigArr[1]; //商户密钥
                string orderId    = Orders.TNum;     //商户流水号
                string myData     = "{\"merid\":\"" + merId + "\",\"orderid\":\"" + orderId + "\",\"code\":\"" + PayId + "\"}";
                string DataBase64 = LokFuEncode.Base64Encode(myData, "utf-8");
                string Sign       = (DataBase64 + merKey).GetMD5();
                DataBase64 = HttpUtility.UrlEncode(DataBase64);
                string myUrl = string.Format("req={0}&sign={1}", DataBase64, Sign);
                string Url   = "https://api.zhifujiekou.com/wxjsapi/gopay.html?" + myUrl;
                //Response.Redirect(Url);
                return(this.Redirect(Url));
            }
            else
            {
                return(View("Null"));
            }
            //return View("Null");
            #endregion
        }
        /// <summary>
        /// 补单
        /// </summary>
        /// <returns></returns>
        public ActionResult OrdersRepair(FastOrder FastOrder)
        {
            if (!FastOrder.Id.IsNullOrEmpty())
            {
                FastOrder = Entity.FastOrder.FirstOrDefault(n => n.Id == FastOrder.Id);
            }
            if (FastOrder == null)
            {
                ViewBag.ErrorMsg = "订单不存在";
                return(View("Error"));
            }
            if (FastOrder.PayState != 0)
            {
                ViewBag.ErrorMsg = "不符合补单规则";
                return(View("Error"));
            }
            if (FastOrder.State == 0)
            {
                FastOrder.State = 1;
                Entity.SaveChanges();
            }
            if (this.Request.QueryString["Confirm"] == "true")
            {
                OrdersPayOnly ConfirmOrdersPayOnly = Entity.OrdersPayOnly.Where(o => o.TNum == FastOrder.TNum).FirstOrDefault();
                Entity.OrdersPayOnly.DeleteObject(ConfirmOrdersPayOnly);
                Entity.SaveChanges();
            }
            OrdersPayOnly OrdersPayOnly = Entity.OrdersPayOnly.Where(o => o.TNum == FastOrder.TNum).FirstOrDefault();

            if (OrdersPayOnly != null)
            {
                ViewBag.Msg = "入账流程未完成,是否先结束流程?";
                return(View("Confirm"));
            }
            FastPayWay FastPayWay = Entity.FastPayWay.FirstOrNew(n => n.Id == FastOrder.PayWay);

            if (FastPayWay.State.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "支付通道已关闭";
                return(View("Error"));
            }
            //补单查询
            Users     Users     = Entity.Users.FirstOrDefault(o => o.Id == FastOrder.UId);
            Equipment Equipment = Entity.Equipment.FirstOrDefault(e => e.No == Users.ENo);

            if (Equipment == null)
            {
                ViewBag.ErrorMsg = "支付通道已关闭";
                return(View("Error"));
            }
            string  keys      = Equipment.Keys;
            string  dataJosn  = "{\"token\":\"" + Users.Token + "\",\"tnum\":\"" + FastOrder.TNum + "\"}";
            string  data_data = HttpUtility.UrlEncode(LokFuEncode.LokFuAPIEncode(dataJosn, keys));
            string  Url       = ConfigurationManager.AppSettings["ApiPath"].ToString() + "/API/FastOrderQuery/";
            string  PostData  = string.Format("data={0}&eno={1}&code=0000", data_data, Users.ENo);
            string  result    = Utils.PostRequest(Url, PostData, "utf-8");
            JObject JS        = new JObject();

            try
            {
                JS = (JObject)JsonConvert.DeserializeObject(result);
                string statename = "";
                //返回成功
                if (JS["code"].ToString() == "0000")
                {
                    string ret_data = JS["data"].ToString();
                    result = LokFuEncode.LokFuAPIDecode(ret_data, keys);
                    JS     = (JObject)JsonConvert.DeserializeObject(result);

                    if (JS["state"].ToString() == "0" || JS["state"].ToString() == "1")
                    {
                        if (JS["state"].ToString() == "0")
                        {
                            statename = "取消交易";
                        }
                        else
                        {
                            statename = "待支付";
                        }
                        ViewBag.ErrorMsg = "补单失败!状态:" + statename;
                        return(View("Error"));
                    }
                    else
                    {
                        if (JS["state"].ToString() == "2")
                        {
                            statename = "待结算";
                        }
                        else
                        {
                            statename = "已结算";
                        }

                        ViewBag.Msg = "补单成功!状态:" + statename;
                        return(View("Succeed"));
                    }
                }
                else
                {
                    ViewBag.ErrorMsg = JS["msg"].ToString();
                    return(View("Error"));
                }
            }
            catch (Exception)
            {
                ViewBag.ErrorMsg = "补单失败!";
                return(View("Error"));
            }
        }
        public void Cancel(string tnum)
        {
            Response.AddHeader("content-type", "application/json");
            if (tnum.IsNullOrEmpty())
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"参数有误\"}");
                return;
            }
            Orders Orders = Entity.Orders.FirstOrDefault(n => n.TNum == tnum && n.UId == BasicUsers.Id);

            if (Orders == null)
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"参数有误\"}");
                return;
            }
            if (Orders.TState == 0)
            {
                Response.Write("{\"err\":\"0\",\"msg\":\"OK\",\"tnum\":\"" + tnum + "\"}");
                return;
            }
            string PostJson = "{\"oid\":\"" + tnum + "\",\"token\":\"" + BasicUsers.Token + "\",\"action\":\"Cancel\"}";
            //提交数据
            string PostData = LokFuEncode.LokFuAPIEncode(PostJson, Shop_Keys);

            PostData = HttpUtility.UrlEncode(PostData);
            //Post参数
            string  PostString = "eno=" + Shop_ENO + "&data=" + PostData + "&code=0000";
            string  url        = AppPath + "/API/OrderF2F/";
            string  RetString  = Utils.PostRequest(url, PostString, "utf-8");
            JObject json       = new JObject();

            try
            {
                json = (JObject)JsonConvert.DeserializeObject(RetString);
            }
            catch (Exception)
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"接口数据有误![01]\"}");
                return;
            }
            if (json == null)
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"接口数据有误![02]\"}");
                return;
            }
            string code = "";
            string data = "";

            try
            {
                code = json["code"].ToString();
                data = json["data"].ToString();
            }
            catch (Exception)
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"接口数据有误![03]\"}");
                return;
            }
            if (code != "0000")
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"交易有误![" + code + "]\"}");
                return;
            }
            //解密
            string  RetData = LokFuEncode.LokFuAPIDecode(data, Shop_Keys);
            JObject Json    = new JObject();

            try
            {
                Json = (JObject)JsonConvert.DeserializeObject(RetData);
            }
            catch (Exception)
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"数据解析有误![01]\"}");
                return;
            }
            if (Json == null)
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"数据解析有误![02]\"}");
                return;
            }
            Orders = JsonToObject.ConvertJsonToModel(Orders, Json);
            byte   tstate   = Orders.TType;
            byte   paystate = Orders.PayState;
            string msg      = "操作成功";

            if (tstate == 0)
            {
                msg = "取消交易成功!";
            }
            else
            {
                if (paystate == 1)
                {
                    msg = "交易已经支付!";
                }
            }
            Response.Write("{\"err\":\"0\",\"msg\":\"" + msg + "\",\"tnum\":\"" + tnum + "\"}");
            return;
        }
        public void QrCodePay(string paytype, decimal amount, int PayWay = 0)//生成二维码
        {
            Response.AddHeader("content-type", "application/json");
            if (BasicUsers.Token.IsNullOrEmpty())
            {
                BasicUsers.Token = DateTime.Now.ToString().GetMD5();
                Entity.SaveChanges();
            }
            string otype = "0";

            if (paytype == "WxSao")
            {
                otype = "8";
            }
            if (paytype == "AliSao")
            {
                otype = "7";
            }
            if (otype == "0")
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"参数有误\"}");
                return;
            }
            if (amount <= 0)
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"交易金额有误!\"}");
                return;
            }
            string PostJson = "{\"amoney\":" + amount.ToString("F2") + ",\"token\":\"" + BasicUsers.Token + "\",\"otype\":" + otype + ",\"payway\":" + PayWay + ",\"action\":\"Create\",\"x\":\"0\",\"y\":\"0\",\"orderaddress\":\"超级收银台:" + Utils.GetAddressAndIp() + "\",ip:\"" + Utils.GetIP() + "\"}";
            //提交数据
            string PostData = LokFuEncode.LokFuAPIEncode(PostJson, Shop_Keys);

            PostData = HttpUtility.UrlEncode(PostData);
            //Post参数
            string  PostString = "eno=" + Shop_ENO + "&data=" + PostData + "&code=0000";
            string  url        = AppPath + "/API/OrderQC/";
            string  RetString  = Utils.PostRequest(url, PostString, "utf-8");
            JObject json       = new JObject();

            try
            {
                json = (JObject)JsonConvert.DeserializeObject(RetString);
            }
            catch (Exception)
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"接口数据有误![01]\"}");
                return;
            }
            if (json == null)
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"接口数据有误![02]\"}");
                return;
            }
            string code = "";
            string data = "";

            try
            {
                code = json["code"].ToString();
                data = json["data"].ToString();
            }
            catch (Exception)
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"接口数据有误![03]\"}");
                return;
            }
            if (code != "0000")
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"交易有误![" + code + "]\"}");
                return;
            }
            //解密
            string  RetData = LokFuEncode.LokFuAPIDecode(data, Shop_Keys);
            JObject Json    = new JObject();

            try
            {
                Json = (JObject)JsonConvert.DeserializeObject(RetData);
            }
            catch (Exception)
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"数据解析有误![01]\"}");
                return;
            }
            if (Json == null)
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"数据解析有误![02]\"}");
                return;
            }
            Orders Orders = new Orders();

            Orders = JsonToObject.ConvertJsonToModel(Orders, Json);
            if (Orders.PayId.IsNullOrEmpty())
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"订单信息有误!\"}");
                return;
            }
            string        tnum     = Orders.TNum;
            string        payid    = Orders.PayId;
            string        FilePath = Server.MapPath("/UpLoadFiles/ShopOrders/" + tnum + ".gif"); //服务器端文件路径
            QRCodeEncoder Encoder  = new QRCodeEncoder();

            //QRCode("Byte", 4, 7, "M", "A");
            Encoder.QRCodeEncodeMode   = QRCodeEncoder.ENCODE_MODE.BYTE;   //二维码编码方式
            Encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; //纠错码等级
            Encoder.QRCodeScale        = 5;                                //每个小方格的宽度
            Encoder.QRCodeVersion      = 5;                                //二维码版本号
            //动态调整二维码版本号,上限40,过长返回空白图片,编码后字符最大字节长度2953
            Bitmap image = Encoder.Encode(payid, Encoding.UTF8);

            image.Save(FilePath, ImageFormat.Gif);
            Response.Write("{\"err\":\"0\",\"msg\":\"/UpLoadFiles/ShopOrders/" + tnum + ".gif\",\"tnum\":\"" + tnum + "\"}");
            return;
        }
        public void CodePay(string payid, string paytype, decimal amount, int PayWay = 0)//条码支付
        {
            Response.AddHeader("content-type", "application/json");
            if (BasicUsers.Token.IsNullOrEmpty())
            {
                BasicUsers.Token = DateTime.Now.ToString().GetMD5();
                Entity.SaveChanges();
            }
            string otype = "0";

            if (paytype == "WxCode")
            {
                otype = "8";
            }
            if (paytype == "AliCode")
            {
                otype = "7";
            }
            if (otype == "0")
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"参数有误\"}");
                return;
            }
            if (amount <= 0)
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"交易金额有误!\"}");
                return;
            }
            if (payid.IsNullOrEmpty())
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"请扫描条码!\"}");
                return;
            }
            int InType = 0;

            if (BasicSet.LagEntry == 1)
            {
                if (BasicUsers.InTypePC == 1)
                {
                    InType = 1;
                }
            }

            string PostJson = "{\"amoney\":" + amount.ToString("F2") + ",\"token\":\"" + BasicUsers.Token + "\",\"otype\":" + otype + ",\"payway\":" + PayWay + ",\"payid\":\"" + payid + "\",\"action\":\"Create\",\"x\":\"0\",\"y\":\"0\",\"intype\":\"" + InType + "\",\"orderaddress\":\"超级收银台:" + Utils.GetAddressAndIp() + "\",ip:\"" + Utils.GetIP() + "\"}";

            //提交数据
            string PostData = LokFuEncode.LokFuAPIEncode(PostJson, Shop_Keys);

            PostData = HttpUtility.UrlEncode(PostData);
            //Post参数
            string  PostString = "eno=" + Shop_ENO + "&data=" + PostData + "&code=0000";
            string  url        = AppPath + "/API/OrderF2F/";
            string  RetString  = Utils.PostRequest(url, PostString, "utf-8");
            JObject json       = new JObject();

            try
            {
                json = (JObject)JsonConvert.DeserializeObject(RetString);
            }
            catch (Exception)
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"接口数据有误![01]\"}");
                return;
            }
            if (json == null)
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"接口数据有误![02]\"}");
                return;
            }
            string code = "";
            string data = "";

            try
            {
                code = json["code"].ToString();
                data = json["data"].ToString();
            }
            catch (Exception)
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"接口数据有误![03]\"}");
                return;
            }
            if (code != "0000")
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"交易有误![" + code + "]\"}");
                return;
            }
            //解密
            string  RetData = LokFuEncode.LokFuAPIDecode(data, Shop_Keys);
            JObject Json    = new JObject();

            try
            {
                Json = (JObject)JsonConvert.DeserializeObject(RetData);
            }
            catch (Exception)
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"数据解析有误![01]\"}");
                return;
            }
            if (Json == null)
            {
                Response.Write("{\"err\":\"1\",\"msg\":\"数据解析有误![02]\"}");
                return;
            }
            Orders Orders = new Orders();

            Orders = JsonToObject.ConvertJsonToModel(Orders, Json);
            byte   paystate = Orders.PayState;
            string tnum     = Orders.TNum;
            string msg      = "Wait";

            if (paystate == 1)
            {
                msg = "OK";
            }
            Response.Write("{\"err\":\"0\",\"msg\":\"" + msg + "\",\"tnum\":\"" + tnum + "\"}");
            return;
        }
        public ActionResult Index(string data, string eno)
        {
            if (data.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "data参数错误!";
                return(View("Error"));
            }
            if (eno.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "eno参数错误!";
                return(View("Error"));
            }
            Equipment Equipment = Entity.Equipment.FirstOrDefault(n => n.No == eno);

            if (Equipment == null)
            {
                ViewBag.ErrorMsg = "设备故障!";
                return(View("Error"));
            }
            string  Key  = Equipment.Keys;
            string  Json = LokFuEncode.LokFuAPIDecode(data, Key);
            JObject json = new JObject();

            try
            {
                json = (JObject)JsonConvert.DeserializeObject(Json);
            }
            catch (Exception)
            {
                ViewBag.ErrorMsg = "json参数错误!";
                return(View("Error"));
            }
            if (json == null)
            {
                ViewBag.ErrorMsg = "json数据错误!";
                return(View("Error"));
            }
            Orders order = new Orders();

            order = JsonToObject.ConvertJsonToModel(order, json);
            if (order.TNum.IsNullOrEmpty() || order.Token.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "json参数错误[02]!";
                return(View("Error"));
            }
            Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == order.Token);

            if (baseUsers == null)//用户令牌不存在
            {
                ViewBag.ErrorMsg = "用户不存在或登录信息有误!";
                return(View("Error"));
            }
            if (baseUsers.State != 1)//用户被锁定
            {
                ViewBag.ErrorMsg = "用户被锁定!";
                return(View("Error"));
            }
            Orders Orders = Entity.Orders.FirstOrDefault(n => n.TNum == order.TNum);

            if (Orders == null)
            {
                ViewBag.ErrorMsg = "交易不存在!";
                return(View("Error"));
            }
            if (baseUsers.Id != Orders.UId)//禁止代付
            {
                ViewBag.ErrorMsg = "禁止代付!";
                return(View("Error"));
            }
            ViewBag.Orders = Orders;
            if (Orders.TType != 1 && Orders.TType != 3 && Orders.TType != 5 && Orders.TType != 6 && Orders.TType != 10)
            {
                ViewBag.ErrorMsg = "交易类型有误!";
                return(View("Error"));
            }
            if (Orders.PayWay == 4)
            {
                ViewBag.ErrorMsg = "请使用余额支付!";
                return(View("Error"));
            }
            if (Orders.TState != 1)
            {
                ViewBag.ErrorMsg = "交易成功或已取消!";
                return(View("Error"));
            }
            if (Orders.PayState == 1)
            {//已支付
                return(View("Success"));
            }
            bool ok = SetPayConfig(Orders);

            if (!ok)
            {
                ViewBag.ErrorMsg = "支付通道错误!";
                return(View("Error"));
            }
            return(View());
        }