public void OutString() { if (!this.Data.IsNullOrEmpty()) { //this.Data = ChinaseToUnicode(this.Data); this.Data = LokFuEncode.LokFuAPIEncode(this.Data, this.Key); } string Ret = this.OutJson(); try { System.Web.HttpContext.Current.Response.AddHeader("content-type", "application/json"); } catch (Exception) { } System.Web.HttpContext.Current.Response.Write(Ret); System.Web.HttpContext.Current.Response.End(); }
/// <summary> /// 验证授权并返回结果 /// </summary> /// <param name="Sceneid">登录授权码</param> public void AuthorizedResult(string Sceneid) { UserLoginSceneid Log = Entity.UserLoginSceneid.FirstOrDefault(n => n.Sceneid == Sceneid); if (Log == null) { Response.Write("E0"); return; } if (Log.AddTime.AddMinutes(5) < DateTime.Now)//失效 { Response.Write("E0"); return; } if (Log.UId.IsNullOrEmpty()) //未登录 { if (!Log.Token.IsNullOrEmpty()) //已扫码 { Response.Write("E8"); return; } else { Response.Write("E9"); return; } } Users BaseUsers = Entity.Users.FirstOrDefault(n => n.Id == Log.UId); if (BaseUsers == null) { Response.Write("E1"); return; } //清除扫码记录cookie,删除临时保存的数据库二维码参数 Entity.DeleteObject(Log); Entity.SaveChanges(); //返回用户信息 BaseUsers.Cols = "TrueName,UserName,CardStae,CardId"; string json = "{\"UserName\":\"" + BaseUsers.UserName + "\",\"CardStae\":\"" + BaseUsers.CardStae + "\",\"CardId\":\"" + BaseUsers.CardId + "\",\"TrueName\":\"" + BaseUsers.TrueName + "\"}"; string AuthorizedKey = ConfigurationManager.AppSettings["AuthorizedKey"].ToString(); json = LokFuEncode.LokFuAPIEncode(json, AuthorizedKey); Response.Write(json); }
/// <summary> /// 一户一码模式绑卡类交易入口 /// </summary> /// <param name="Id"></param> /// <param name="sign"></param> public void Pay(int Id, string sign) { if (Id.IsNullOrEmpty() || sign.IsNullOrEmpty()) { Response.Write("Some Error[00]"); return; } if (((Id * 100 + 99) + "Pay").GetMD5().Substring(8, 8) != sign) { Response.Write("Some Error[01]"); return; } FastOrder FastOrder = Entity.FastOrder.FirstOrDefault(n => n.Id == Id); if (FastOrder == null) { Response.Write("Some Error[02]"); return; } FastPayWay FastPayWay = Entity.FastPayWay.FirstOrDefault(n => n.Id == FastOrder.PayWay); if (FastPayWay == null) { Response.Write("Some Error[03]"); return; } if (FastPayWay.DllName == "HFPay" || FastPayWay.DllName == "HFJSPay") { //不需要绑卡,去支付 Response.Redirect("/paycenter/" + FastPayWay.DllName.ToLower() + "/index.html?etnum=" + HttpUtility.UrlEncode(LokFuEncode.LokFuAPIEncode(FastOrder.TNum, FastPayWay.DllName))); } else { //跳出绑卡 Response.Redirect("/paycenter/cardpay/index.html?etnum=" + HttpUtility.UrlEncode(LokFuEncode.LokFuAPIEncode(FastOrder.TNum, "CardPay"))); } }
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))); }
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"); }
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; }