protected void Page_Load(object sender, EventArgs e) { //创建支付应答对象 ResponseHandler resHandler = new ResponseHandler(Context); resHandler.init(); int comid = 0; string RequestUrl = Request.ServerVariables["SERVER_NAME"].ToLower(); string u = Request.ServerVariables["HTTP_USER_AGENT"]; if (Domain_def.Domain_yanzheng(RequestUrl))//如果符合shop101.etown.cn的格式 { //先通过正则表达式获取COMid comid = Int32.Parse(Domain_def.Domain_Huoqu(RequestUrl).ToString()); B2b_finance_paytype modelfinance = new B2b_finance_paytypeData().GetFinancePayTypeByComid(comid); resHandler.setKey(modelfinance.Wx_partnerkey, modelfinance.Wx_paysignkey); } else { Response.Write("获取商家支付参数失败"); return; } ////判断签名 //if (resHandler.isTenpaySign()) //{ // if (resHandler.isWXsign()) // { if (Request.HttpMethod.ToLower() == "post") { byte[] ar; ar = new byte[this.Request.InputStream.Length]; this.Request.InputStream.Read(ar, 0, ar.Length); string sXML = this.Request.ContentEncoding.GetString(ar); //回复服务器处理成功 string sql = "insert into wxwarning(responsexml,comid) values('" + sXML + "'," + comid + ")"; ExcelSqlHelper.ExecuteNonQuery(sql); Response.Write("success"); Response.Write("success:" + resHandler.getDebugInfo()); // } //} //else //{ // //sha1签名失败 // Response.Write("fail"); // Response.Write("fail:" + resHandler.getDebugInfo()); //} Response.End(); } }
protected void Page_Load(object sender, EventArgs e) { lock (lockobj) { string RequestUrl = Request.ServerVariables["SERVER_NAME"].ToLower(); if (Domain_def.Domain_yanzheng(RequestUrl))//如果符合shop101.etown.cn的格式 { //先通过正则表达式获取COMid int comid = Domain_def.Domain_Huoqu(RequestUrl).ToString().ConvertTo <int>(0); B2b_finance_paytype model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(comid); if (model != null) { //商家微信支付的所有参数都存在 if (model.Wx_appid != "" && model.Wx_appkey != "" && model.Wx_partnerid != "" && model.Wx_paysignkey != "") { } else { model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(106); } } else { model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(106); } #region 把支付结果通知数据记录一下 try { WxPayConfig config = new WxPayConfig { APPID = model.Wx_appid, APPSECRET = model.Wx_appkey, KEY = model.Wx_paysignkey, MCHID = model.Wx_partnerid, IP = CommonFunc.GetRealIP(), SSLCERT_PATH = model.wx_SSLCERT_PATH, SSLCERT_PASSWORD = model.wx_SSLCERT_PASSWORD, PROXY_URL = "", LOG_LEVENL = 3, //日志级别 REPORT_LEVENL = 0, //上报信息配置 NOTIFY_URL = "http://shop" + comid + ".etown.cn/wxpay/backpaynotice.aspx" }; Log.Error(this.GetType().ToString(), "进入统一下单页面"); ProcessNotify(config, model); } catch (Exception ex) { Log.Error(this.GetType().ToString(), "微信支付通知意外错误(" + ex.Message + ")"); Response.Write("<xml><return_code>FAIL</return_code><return_msg>微信支付通知意外错误</return_msg></xml>"); return; } #endregion } else { Log.Error(this.GetType().ToString(), "微信支付通知参数格式错误"); Response.Write("<xml><return_code>FAIL</return_code><return_msg>微信支付通知参数格式错误</return_msg></xml>"); return; } } }
public void Page_Load(object sender, EventArgs e) { string u = Request.ServerVariables["HTTP_USER_AGENT"]; bool bo = detectmobilebrowser.HttpUserAgent(u); id = Request["id"].ConvertTo <int>(0); string md5 = Request["md5"].ConvertTo <string>(""); string Returnmd5 = EncryptionHelper.ToMD5(id.ToString() + "lixh1210", "UTF-8"); var orderdata = new B2bOrderData(); var orderinfo = orderdata.GetOrderById(id); if (orderinfo != null) { u_name = orderinfo.U_name; //判断登陆状态 //if (Session["AccountId"] != null) //{ //先判断Session //int AccountId = int.Parse(Session["AccountId"].ToString()); if (Returnmd5 == md5) //必须符合加密的才能打开 { yuyuetime = orderinfo.U_traveldate.ToString("yyyy-MM-dd hh:mm:ss"); var prodata = new B2bComProData(); var proinfo = prodata.GetProById(orderinfo.Pro_id.ToString()); if (proinfo != null) { Pro_name = proinfo.Pro_name; bindiname = proinfo.bookpro_bindname; bindphone = proinfo.bookpro_bindphone; var managedata = new B2bCompanyManagerUserData(); var manageinfo = managedata.GetCompanyUserByPhone(bindphone, proinfo.Com_id); if (manageinfo != null) { bindimg = FileSerivce.GetImgUrl(manageinfo.Headimg); } } } //} } uid = Request["uid"].ConvertTo <int>(0); //获取IP地址 uip = CommonFunc.GetRealIP(); key = Request["key"].ConvertTo <string>(""); if (key != "") { biaoti = key; } proclass = Request["class"].ConvertTo <int>(0); price = Request["price"].ConvertTo <int>(0); if (proclass != 0) { var prodata = new B2bComProData(); var result = prodata.Proclassbyid(proclass); if (result != null) { biaoti = result.Classname; } } //获取随机用户ID if (Request.Cookies["temp_userid"] != null) { userid = Request.Cookies["temp_userid"].Value; } else { userid = Domain_def.HuoQu_Temp_UserId(); //Response.Cookies("userid").val(); HttpCookie cookie = new HttpCookie("temp_userid"); //实例化HttpCookie类并添加值 cookie.Value = userid; cookie.Expires = DateTime.Now.AddDays(365); Response.Cookies.Add(cookie); } buyuid = Request["buyuid"].ConvertTo <int>(0); tocomid = Request["tocomid"].ConvertTo <int>(0); if (Domain_def.Domain_yanzheng(RequestUrl))//如果符合shop101.etown.cn的格式,则从多微信商户基本信息表中获取comid { //先通过正则表达式获取COMid comid = Int32.Parse(Domain_def.Domain_Huoqu(RequestUrl).ToString()); } if (comid == 0)//如果非标准格式,查询 是否有绑定的域名 { var domaincomid = B2bCompanyData.GetComId(RequestUrl); if (domaincomid != null) { comid = domaincomid.Com_id; } } if (comid != 0) { //根据产品判断商家是否含有自己的微信支付:a.含有的话支付到商家;b.没有的话支付到平台的微信公众号账户中 B2b_finance_paytype model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(comid); //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "b"); if (model != null) { //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "c"); //商家微信支付的所有参数都存在 if (model.Wx_appid != "" && model.Wx_appkey != "" && model.Wx_partnerid != "" && model.Wx_paysignkey != "") { //appId = model.Wx_appid; //appsecret = model.Wx_appkey; //appkey = model.Wx_paysignkey; //mchid = model.Wx_partnerid; //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "d"); issetfinancepaytype = true; } } var commodel = B2bCompanyData.GetCompany(comid); if (commodel != null) { if (commodel.B2bcompanyinfo != null) { Wxfocus_url = commodel.B2bcompanyinfo.Wxfocus_url; Wxfocus_author = commodel.B2bcompanyinfo.Wxfocus_author;; weixinname = commodel.B2bcompanyinfo.Weixinname; Scenic_intro = commodel.B2bcompanyinfo.Scenic_intro; } title = commodel.Com_name; } B2b_company_saleset pro = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString()); if (pro != null) { if (pro.Smalllogo != null && pro.Smalllogo != "") { comlogo = FileSerivce.GetImgUrl(pro.Smalllogo.ConvertTo <int>(0)); } } //获取微信平台端code string weixincode = Request["code"].ConvertTo <string>(""); //获取微信号和一次性密码 openid = Request["openid"].ConvertTo <string>(""); string weixinpass = Request["weixinpass"].ConvertTo <string>(""); //获得会员信息 GetCrmInfo(weixincode, openid, weixinpass); } //获取BANNER,及logo if (comid != 0) { //根据公司id得到 直销设置 B2b_company_saleset saleset = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString()); if (saleset != null) { logoimg = FileSerivce.GetImgUrl(saleset.Smalllogo.ConvertTo <int>(0)); } } //微信转发访问归属渠道 if (uid != 0)//必须记录转发用户信息才能继续统计 { //判断有转发人的渠道 var crmdata = new B2bCrmData(); var pro = crmdata.Readuser(uid, comid);//读取转发人用户信息 string zhuanfa_phone = ""; if (pro != null) { zhuanfa_phone = pro.Phone; } if (zhuanfa_phone != "") { //转发人手机存在 MemberChannelData channeldata = new MemberChannelData(); var channeinfo = channeldata.GetPhoneComIdChannelDetail(zhuanfa_phone, comid); //查询渠道 if (channeinfo != null) { //转发人渠道记录COOKI HttpCookie cookie = new HttpCookie("ZF_ChanneId"); //实例化HttpCookie类并添加值 cookie.Value = channeinfo.Id.ToString(); cookie.Expires = DateTime.Now.AddDays(120); Response.Cookies.Add(cookie); } } } }
public void Page_Load(object sender, EventArgs e) { string u = Request.ServerVariables["HTTP_USER_AGENT"]; bool bo = detectmobilebrowser.HttpUserAgent(u); uid = Request["uid"].ConvertTo <int>(0); MasterId = Request["MasterId"].ConvertTo <int>(0); //获取IP地址 uip = CommonFunc.GetRealIP(); id = Request["id"].ConvertTo <int>(0); nowdate = DateTime.Now.ToString("yyyy-MM-dd"); nowtoday = DateTime.Now; buyuid = Request["buyuid"].ConvertTo <int>(0); tocomid = Request["tocomid"].ConvertTo <int>(0); //获取随机用户ID if (Request.Cookies["temp_userid"] != null) { userid = Request.Cookies["temp_userid"].Value; } else { userid = Domain_def.HuoQu_Temp_UserId(); //Response.Cookies("userid").val(); HttpCookie cookie = new HttpCookie("temp_userid"); //实例化HttpCookie类并添加值 cookie.Value = userid; cookie.Expires = DateTime.Now.AddDays(365); Response.Cookies.Add(cookie); } if (id != 0) { B2b_com_pro pro = new B2bComProData().GetProById(id.ToString()); if (pro != null) { channelcoachid = new MemberChannelData().GetChannelidbymanageuserid(MasterId, pro.Com_id); if (pro.Server_type == 13) { //如果 产品为教练产品 if (channelcoachid == 0) { //当未选择教练 则 跳转到教练页面 Response.Redirect("/h5/coachList.aspx?come=" + id); } } Ispanicbuy = pro.Ispanicbuy; //是否抢购或限购 Limitbuytotalnum = pro.Limitbuytotalnum; //限购数量 bindname = pro.bookpro_bindname; bindphone = pro.bookpro_bindphone; manyspeci = pro.Manyspeci; Wrentserver = pro.Wrentserver; //如果多规格读取规格 if (manyspeci == 1) { gglist = new B2b_com_pro_SpeciData().Getgglist(pro.Id); } //对默认只显示预约电话进行 if (pro.Server_type == 12 || pro.Server_type == 13) { //当时预约产品就先设定显示预约电话 view_phone = 1; //先判断渠道来路,如果没有渠道则安默认,如果有来路渠道,则显示来路渠道 if (MasterId != 0) { B2b_company_manageuser manageruser = B2bCompanyManagerUserData.GetUser(MasterId); if (manageruser != null) { bindname = manageruser.Employeename; bindphone = manageruser.Tel; } } //判断 绑定渠道电话 与 访问来的渠道电话相同 则 显示电话,并显示预订 if (bindphone == pro.bookpro_bindphone) { view_phone = 2; } //如果为教练产品,显示订购和 和图像 不显示电话 if (pro.Server_type == 13) { view_phone = 3; } } //通过 显示渠道的电话 来查找头像 B2b_company_manageuser manageruser_temp = new B2bCompanyManagerUserData().GetCompanyUserByPhone(bindphone, pro.Com_id); if (manageruser_temp != null) { channleimg = FileSerivce.GetImgUrl(manageruser_temp.Headimg); if (channleimg == "/Images/defaultThumb.png") { channleimg = ""; } } //查询相关项目名称 var proprojectdata = new B2b_com_projectData(); var proprejectinfo = proprojectdata.GetProject(pro.Projectid, pro.Com_id); if (proprejectinfo != null) { projectname = proprejectinfo.Projectname; Coordinate = proprejectinfo.Coordinate; Address = proprejectinfo.Address; } projectname = proprojectdata.GetProjectNameByid(pro.Projectid); //根据产品判断商家是否含有自己的微信支付:a.含有的话支付到商家;b.没有的话支付到平台的微信公众号账户中 B2b_finance_paytype model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(pro.Com_id); //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "b"); if (model != null) { //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "c"); //商家微信支付的所有参数都存在 if (model.Wx_appid != "" && model.Wx_appkey != "" && model.Wx_partnerid != "" && model.Wx_paysignkey != "") { //appId = model.Wx_appid; //appsecret = model.Wx_appkey; //appkey = model.Wx_paysignkey; //mchid = model.Wx_partnerid; //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "d"); issetfinancepaytype = true; } } //票务产品,判断 是否抢购/限购,是的话 作废超时未支付订单,完成回滚操作 if (pro_servertype == 1) { if (pro.Ispanicbuy == 1 || pro.Ispanicbuy == 2) { int rs = new B2bComProData().CancelOvertimeOrder(pro); } } iscanbook = new B2bComProData().IsYouxiao(pro.Id, pro.Server_type, pro.Pro_start, pro.Pro_end, pro.Pro_state);//判断产品是否有效:1.票务,直接判断有效期 和产品上线状态2.酒店,跟团游,当地游 则判断是否含有有效的房态/团期 以及产品上下线状态 pro_servertype = pro.Server_type; pickuppoint = pro.pickuppoint; dropoffpoint = pro.dropoffpoint; childreduce = pro.Childreduce; if (pro.Ispanicbuy == 1) { panic_begintime = pro.Panic_begintime; panicbuy_endtime = pro.Panicbuy_endtime; TimeSpan tss = pro.Panic_begintime - nowtoday; var day = tss.Days * 24 * 3600;; //这是相差的天数 var h = tss.Hours * 3600; //这是相差的小时数, var m = tss.Minutes * 60; var s = tss.Seconds; shijiacha = day + h + m + s; } projectid = pro.Projectid; comid = pro.Com_id; pro_name = pro.Pro_name; price = pro.Advise_price; face_price = pro.Face_price; limitbuytotalnum = pro.Limitbuytotalnum; imgurl = FileSerivce.GetImgUrl(pro.Imgurl); //如果含有规格读取规格价格中最低价 if (manyspeci == 1) { if (gglist != null) { price = 0; face_price = 0; for (int i = 0; i < gglist.Count(); i++) { if (gglist[i].speci_advise_price != 0) { if (price == 0 || price > gglist[i].speci_advise_price) { price = gglist[i].speci_advise_price; face_price = gglist[i].speci_face_price; } } } } } if (price == 0) { price = 0; } else { CommonFunc.OperTwoDecimal(price.ToString()); //price = price.IndexOf(".") != -1 ? price.Substring(0, price.IndexOf(".")) : price; } if (face_price != 0) { CommonFunc.OperTwoDecimal(face_price.ToString()); } nowdate = DateTime.Now.ToString("yyyy-MM-dd"); if (pro.Service_Contain != "") { sumaryend = pro.Service_Contain; } if (pro.Service_NotContain != "") { sumaryend = sumaryend + "</br> " + pro.Service_NotContain; } if (pro.Precautions != "") { sumaryend = sumaryend + "</br> " + pro.Precautions; } Server_type = pro.Server_type; bookpro_ispay = pro.bookpro_ispay; //如果服务类型是 票务; 则备注信息中 显示 电子码使用限制 if (pro.Server_type == 1) { if (pro.Iscanuseonsameday == 0)//电子码当天不可用 { youxianshiduan = "此产品当天预订不可用"; } if (pro.Iscanuseonsameday == 1)//电子码当天可用 { youxianshiduan = "此产品当天预订可用"; } if (pro.Iscanuseonsameday == 2)//电子码出票2小时内不可用 { youxianshiduan = "此产品出票2小时内不可用"; } } remark = pro.Pro_Remark; pro_num = pro.Pro_number; if (pro_num == 0) { pro_max = 100; pro_min = 1; } else { pro_min = 1; pro_max = pro_num; } pro_explain = pro.Pro_explain; #region 产品有效期判定(微信模板--门票订单预订成功通知 中也有用到) provalidatemethod = pro.ProValidateMethod; //判断 1按产品有效期,2指定有效期 appointdate = pro.Appointdata; //1=一星期,,2=1个月,3=3个月,4=6个月,5=一年 iscanuseonsameday = pro.Iscanuseonsameday; //1当天可用,0当天不可用 pro_end = pro.Pro_end; pro_end_str = pro.Pro_end.AddMonths(-1).ToString("yyyy,MM,dd"); //返回有效期 pro_youxiaoqi = new B2bComProData().GetPro_Youxiaoqi(pro.Pro_start, pro.Pro_end, provalidatemethod, appointdate, iscanuseonsameday); #endregion //如果是 教练产品 根据教练信息 获取教练 上班时间 if (pro.Server_type == 13 || pro.Server_type == 12) { //必须是教练产品 if (MasterId != 0) //必须有教练参数 { B2b_company_manageuser manageruser = B2bCompanyManagerUserData.GetUser(MasterId); if (manageruser != null) { if (manageruser.Workdays != "") { if (manageruser.worktimestar != 0) { if (manageruser.worktimestar < manageruser.worktimeend) { for (var i = manageruser.worktimestar; i < manageruser.worktimeend; i++) { workh += "<option value=\"" + i + "\">" + i + "点</option>"; } } else { var day1 = 24 - manageruser.worktimestar; var day2 = manageruser.worktimeend; var day3 = day1 + day2; for (var i = 0; i > day3; i++) { if (i > day1) { workh += "<option value=\"" + (manageruser.worktimestar + i) + "\">" + (manageruser.worktimestar + i) + "点</option>"; } else { workh += "<option value=\"" + (manageruser.worktimestar - i) + "\">" + (manageruser.worktimestar - i) + "点</option>"; } } } } if (!manageruser.Workdays.Contains("2")) //检验不含周一 { DateTime dt = DateTime.Now; //当前时间 DateTime startWeek = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d"))); //本周周一 //初始日期为今天,到产品有效期结束 增加一周(7天)方式 for (var i = startWeek; i < pro_end; i.AddDays(7)) { nowork += "[" + i.Month + "," + i.Day + "," + i.Year + "],"; i = i.AddDays(7); } } if (!manageruser.Workdays.Contains("3")) //检验不含周二 { DateTime dt = DateTime.Now; //当前时间 DateTime startWeek = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d"))).AddDays(1); //本周周二 //初始日期为今天,到产品有效期结束 增加一周(7天)方式 for (var i = startWeek; i < pro_end; i.AddDays(7)) { nowork += "[" + i.Month + "," + i.Day + "," + i.Year + "],"; i = i.AddDays(7); } } if (!manageruser.Workdays.Contains("4")) //检验不含周3 { DateTime dt = DateTime.Now; //当前时间 DateTime startWeek = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d"))).AddDays(2); //本周周3 //初始日期为今天,到产品有效期结束 增加一周(7天)方式 for (var i = startWeek; i < pro_end; i.AddDays(7)) { nowork += "[" + i.Month + "," + i.Day + "," + i.Year + "],"; i = i.AddDays(7); } } if (!manageruser.Workdays.Contains("5")) //检验不含周4 { DateTime dt = DateTime.Now; //当前时间 DateTime startWeek = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d"))).AddDays(3); //本周周4 //初始日期为今天,到产品有效期结束 增加一周(7天)方式 for (var i = startWeek; i < pro_end; i.AddDays(7)) { nowork += "[" + i.Month + "," + i.Day + "," + i.Year + "],"; i = i.AddDays(7); } } if (!manageruser.Workdays.Contains("6")) //检验不含周5 { DateTime dt = DateTime.Now; //当前时间 DateTime startWeek = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d"))).AddDays(4); //本周周5 //初始日期为今天,到产品有效期结束 增加一周(7天)方式 for (var i = startWeek; i < pro_end; i.AddDays(7)) { nowork += "[" + i.Month + "," + i.Day + "," + i.Year + "],"; i = i.AddDays(7); } } if (!manageruser.Workdays.Contains("7")) //检验不含周6 { DateTime dt = DateTime.Now; //当前时间 DateTime startWeek = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d"))).AddDays(5); //本周周6 //初始日期为今天,到产品有效期结束 增加一周(7天)方式 for (var i = startWeek; i < pro_end; i.AddDays(7)) { nowork += "[" + i.Month + "," + i.Day + "," + i.Year + "],"; i = i.AddDays(7); } } if (!manageruser.Workdays.Contains("1")) //检验不含周日 { DateTime dt = DateTime.Now; //当前时间 DateTime startWeek = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d"))).AddDays(6); //本周周日 //初始日期为今天,到产品有效期结束 增加一周(7天)方式 for (var i = startWeek; i < pro_end; i.AddDays(7)) { nowork += "[" + i.Month + "," + i.Day + "," + i.Year + "],"; i = i.AddDays(7); } } } } } } } var commodel = B2bCompanyData.GetCompany(comid); if (commodel != null) { if (commodel.B2bcompanyinfo != null) { Wxfocus_url = commodel.B2bcompanyinfo.Wxfocus_url; Wxfocus_author = commodel.B2bcompanyinfo.Wxfocus_author;; } } var saleset = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString()); if (saleset != null) { phone = saleset.Service_Phone; } //查询项目电话,如果有项目电话调取项目电话 var projectdata = new B2b_com_projectData(); var projectmodel = projectdata.GetProject(projectid, comid); if (projectmodel != null) { if (projectmodel.Mobile != "") { phone = projectmodel.Mobile; } } //从cookie中得到微信号 if (Request.Cookies["openid"] != null) { openid = Request.Cookies["openid"].Value; } B2bCrmData b2b_crm = new B2bCrmData(); if (openid != "") { B2b_crm b2bmodle = b2b_crm.b2b_crmH5(openid, comid); if (b2bmodle != null) { Imprest = b2bmodle.Imprest; Integral = b2bmodle.Integral; } } } if (Domain_def.Domain_yanzheng(RequestUrl))//如果符合shop101.etown.cn的格式,则从多微信商户基本信息表中获取comid { //先通过正则表达式获取COMid comid = Int32.Parse(Domain_def.Domain_Huoqu(RequestUrl).ToString()); } if (comid == 0)//如果非标准格式,查询 是否有绑定的域名 { var wxdomain = new WeiXinBasicData().GetWeiXinBasicByDomain(RequestUrl); if (wxdomain != null) { comid = wxdomain.Comid; } } if (comid != 0) { var commodel = B2bCompanyData.GetCompany(comid); if (commodel != null) { if (commodel.B2bcompanyinfo != null) { Wxfocus_url = commodel.B2bcompanyinfo.Wxfocus_url; Wxfocus_author = commodel.B2bcompanyinfo.Wxfocus_author; weixinname = commodel.B2bcompanyinfo.Weixinname; Scenic_intro = commodel.B2bcompanyinfo.Scenic_intro; } title = commodel.Com_name; } B2b_company_saleset pro = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString()); if (pro != null) { if (pro.Smalllogo != null && pro.Smalllogo != "") { comlogo = FileSerivce.GetImgUrl(pro.Smalllogo.ConvertTo <int>(0)); } } //获取微信平台端code string weixincode = Request["code"].ConvertTo <string>(""); //获取微信号和一次性密码 openid = Request["openid"].ConvertTo <string>(""); string weixinpass = Request["weixinpass"].ConvertTo <string>(""); //获得会员信息 GetCrmInfo(weixincode, openid, weixinpass); } //获取BANNER,及logo if (comid != 0) { //根据公司id得到 直销设置 B2b_company_saleset saleset = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString()); if (saleset != null) { logoimg = FileSerivce.GetImgUrl(saleset.Smalllogo.ConvertTo <int>(0)); } } //微信转发访问归属渠道 if (uid != 0)//必须记录转发用户信息才能继续统计 { //判断有转发人的渠道 var crmdata = new B2bCrmData(); var pro = crmdata.Readuser(uid, comid);//读取转发人用户信息 string zhuanfa_phone = ""; if (pro != null) { zhuanfa_phone = pro.Phone; } if (zhuanfa_phone != "") { //转发人手机存在 MemberChannelData channeldata = new MemberChannelData(); var channeinfo = channeldata.GetPhoneComIdChannelDetail(zhuanfa_phone, comid); //查询渠道 if (channeinfo != null) { //转发人渠道记录COOKI HttpCookie cookie = new HttpCookie("ZF_ChanneId"); //实例化HttpCookie类并添加值 cookie.Value = channeinfo.Id.ToString(); cookie.Expires = DateTime.Now.AddDays(120); Response.Cookies.Add(cookie); } } } }
protected void Button3_Click(object sender, EventArgs e) { string transaction_id = Transaction_id.Text.Trim(); string out_trade_no = Out_trade_no.Text.Trim(); string out_refund_no = Out_refund_no.Text.Trim(); string total_fee = Total_fee.Text.Trim(); string refund_fee = Refund_fee.Text.Trim(); //根据订单id得到支付信息,进而得到公司的微信支付设置信息 B2b_pay modelb2pay = new B2bPayData().GetPayByoId(out_trade_no.ConvertTo <int>(0)); if (modelb2pay == null) { Label1.Text = "支付信息不存在"; return; } B2b_finance_paytype model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(modelb2pay.comid); if (model == null) { Label1.Text = "微信支付设置信息不存在"; return; } WxPayConfig config = new WxPayConfig { APPID = model.Wx_appid, APPSECRET = model.Wx_appkey, KEY = model.Wx_paysignkey, MCHID = model.Wx_partnerid, IP = CommonFunc.GetRealIP(), SSLCERT_PATH = model.wx_SSLCERT_PATH, SSLCERT_PASSWORD = model.wx_SSLCERT_PASSWORD, PROXY_URL = "http://115.28.38.65:80", LOG_LEVENL = 3, //日志级别 REPORT_LEVENL = 0 //上报信息配置 }; lock (lockobj) { ////根据商户退款单号 判断退款是否已经申请成功 //bool issuc = new B2b_pay_wxrefundlogData().JudgerefundByout_refund_no(out_refund_no); //string r = ""; //if (issuc) //{ // r = "退款已经申请成功"; //} //else //{ //r = Refund.Run(transaction_id, out_trade_no, total_fee, refund_fee, out_refund_no, config); //} B2b_pay_wxrefundlog refundlog = new B2b_pay_wxrefundlog { id = 0, out_refund_no = out_refund_no, out_trade_no = out_trade_no, transaction_id = transaction_id, total_fee = int.Parse(total_fee), refund_fee = int.Parse(refund_fee), send_xml = "", send_time = DateTime.Parse("1970-01-01 00:00:00"), return_code = "", return_msg = "", err_code = "", err_code_des = "", refund_id = "", return_xml = "", return_time = DateTime.Parse("1970-01-01 00:00:00"), }; try { WxPayData data = new WxPayData(); data.SetValue("transaction_id", transaction_id); data.SetValue("out_trade_no", out_trade_no); data.SetValue("total_fee", int.Parse(total_fee)); //订单总金额 data.SetValue("refund_fee", int.Parse(refund_fee)); //退款金额 data.SetValue("out_refund_no", out_refund_no); //随机生成商户退款单号 data.SetValue("op_user_id", config.MCHID); //操作员,默认为商户号 data.SetValue("appid", config.APPID); //公众账号ID data.SetValue("mch_id", config.MCHID); //商户号 data.SetValue("nonce_str", Guid.NewGuid().ToString().Replace("-", "")); //随机字符串 data.SetValue("sign", data.MakeSign(config)); //签名 string xml = data.ToXml(config); var start = DateTime.Now; refundlog.send_xml = xml; refundlog.send_time = start; int ee = new B2b_pay_wxrefundlogData().Editwxrefundlog(refundlog); refundlog.id = ee; if (ee == 0) { Label1.Text = "记录微信退款日志出错"; return; } string r = Refund.Run(transaction_id, out_trade_no, total_fee, refund_fee, out_refund_no, config); string[] str = r.Replace("<br>", ",").Split(','); Dictionary <string, string> dic = new Dictionary <string, string>(); foreach (string s in str) { if (s != "") { dic.Add(s.Split('=')[0], s.Split('=')[1]); } } string return_code = dic["return_code"]; refundlog.return_code = return_code; if (dic.ContainsKey("return_msg")) { string return_msg = dic["return_msg"]; refundlog.return_msg = return_msg; } if (dic.ContainsKey("err_code")) { string err_code = dic["err_code"]; refundlog.err_code = err_code; } if (dic.ContainsKey("err_code_des")) { string err_code_des = dic["err_code_des"]; refundlog.err_code_des = err_code_des; } if (dic.ContainsKey("refund_id")) { string refund_id = dic["refund_id"]; refundlog.refund_id = refund_id; } refundlog.return_xml = r; refundlog.return_time = DateTime.Now; new B2b_pay_wxrefundlogData().Editwxrefundlog(refundlog); Label1.Text = r; } catch (Exception ef) { Label1.Text = "记录微信退款日志出错:" + ef.Message; return; } } }
protected void Page_Load(object sender, EventArgs e) { //获取访问的商户COMID if (Domain_def.Domain_yanzheng(RequestUrl))//如果符合shop101.etown.cn的格式,则从多微信商户基本信息表中获取comid { comid = Int32.Parse(Domain_def.Domain_Huoqu(RequestUrl)); } else { B2b_company_info companyinfo = B2bCompanyData.GetComId(RequestUrl); if (companyinfo != null) { comid = companyinfo.Com_id; } } #region 获得财付通支付参数 tenpay_id,tenpay_key //根据产品判断商家是否含有自己的财付通支付: //a.含有的话支付到商家; //b.没有的话支付到平台财付通账户(易城账户,公司id=106) string tenpay_id = ""; string tenpay_key = ""; B2b_finance_paytype model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(comid); if (model != null) { //商家财付通支付的所有参数都存在 if (model.Tenpay_id != "" && model.Tenpay_key != "") { tenpay_id = model.Tenpay_id; tenpay_key = model.Tenpay_key; } else { model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(106); if (model == null) { Response.Write("商户财付通信息设置不完全!"); Response.End(); return; } else { //商家财付通支付的所有参数都存在 if (model.Tenpay_id != "" && model.Tenpay_key != "") { tenpay_id = model.Tenpay_id; tenpay_key = model.Tenpay_key; } else { Response.Write("商户财付通信息设置不完全!!"); Response.End(); return; } } } } else { model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(106); if (model == null) { Response.Write("商户财付通信息设置不完全!"); Response.End(); return; } else { //商家财付通支付的所有参数都存在 if (model.Tenpay_id != "" && model.Tenpay_key != "") { tenpay_id = model.Tenpay_id; tenpay_key = model.Tenpay_key; } else { Response.Write("商户财付通信息设置不完全!!"); Response.End(); return; } } } #endregion //创建ResponseHandler实例 ResponseHandler resHandler = new ResponseHandler(Context); resHandler.setKey(tenpay_key); //判断签名 if (resHandler.isTenpaySign()) { ///通知id string notify_id = resHandler.getParameter("notify_id"); //通过通知ID查询,确保通知来至财付通 //创建查询请求 RequestHandler queryReq = new RequestHandler(Context); queryReq.init(); queryReq.setKey(tenpay_key); queryReq.setGateUrl("https://gw.tenpay.com/gateway/simpleverifynotifyid.xml"); queryReq.setParameter("partner", tenpay_id); queryReq.setParameter("notify_id", notify_id); //通信对象 TenpayHttpClient httpClient = new TenpayHttpClient(); httpClient.setTimeOut(5); //设置请求内容 httpClient.setReqContent(queryReq.getRequestURL()); //后台调用 if (httpClient.call()) { //设置结果参数 ClientResponseHandler queryRes = new ClientResponseHandler(); queryRes.setContent(httpClient.getResContent()); queryRes.setKey(tenpay_key); //判断签名及结果 //只有签名正确,retcode为0,trade_state为0才是支付成功 if (queryRes.isTenpaySign()) { //取结果参数做业务处理 string out_trade_no = queryRes.getParameter("out_trade_no"); //财付通订单号 string transaction_id = queryRes.getParameter("transaction_id"); //金额,以分为单位 string total_fee = queryRes.getParameter("total_fee"); //如果有使用折扣券,discount有值,total_fee+discount=原请求的total_fee string discount = queryRes.getParameter("discount"); //支付结果 string trade_state = resHandler.getParameter("trade_state"); //交易模式,1即时到帐 2中介担保 string trade_mode = resHandler.getParameter("trade_mode"); #region //判断签名及结果 if ("0".Equals(queryRes.getParameter("retcode"))) { //Response.Write("id验证成功"); if ("1".Equals(trade_mode)) { //即时到账 if ("0".Equals(trade_state)) { //------------------------------ //即时到账处理业务开始 //------------------------------ //处理数据库逻辑 //注意交易单不要重复处理 //注意判断返回金额 //------------------------------ //即时到账处理业务完毕 //------------------------------ string retunstr = new PayReturnSendEticketData().PayReturnSendEticket(notify_id, Int32.Parse(out_trade_no), total_fee.ConvertTo <decimal>(), "TRADE_SUCCESS"); //对分销充值订单支付返回,对绑定订单进行处理确认 var handdata = OrderJsonData.agentorderpay_Hand(Int32.Parse(out_trade_no)); //给财付通系统发送成功信息,财付通系统收到此结果后不再进行后续通知 Response.Write("success"); } else { Response.Write("即时到账支付失败"); } } else if ("2".Equals(trade_mode)) { //中介担保 //------------------------------ //中介担保处理业务开始 //------------------------------ //处理数据库逻辑 //注意交易单不要重复处理 //注意判断返回金额 int iStatus = Convert.ToInt32(trade_state); switch (iStatus) { case 0: //付款成功 break; case 1: //交易创建 break; case 2: //收获地址填写完毕 break; case 4: //卖家发货成功 break; case 5: //买家收货确认,交易成功 break; case 6: //交易关闭,未完成超时关闭 break; case 7: //修改交易价格成功 break; case 8: //买家发起退款 break; case 9: //退款成功 break; case 10: //退款关闭 break; } //------------------------------ //中介担保处理业务开始 //------------------------------ //给财付通系统发送成功信息,财付通系统收到此结果后不再进行后续通知 Response.Write("success"); } } else { //错误时,返回结果可能没有签名,写日志trade_state、retcode、retmsg看失败详情。 //通知财付通处理失败,需要重新通知 Response.Write("查询验证签名失败或id验证失败"); Response.Write("retcode:" + queryRes.getParameter("retcode")); } #endregion } else { Response.Write("通知ID查询签名验证失败"); } } else { //通知财付通处理失败,需要重新通知 Response.Write("后台调用通信失败"); //写错误日志 Response.Write("call err:" + httpClient.getErrInfo() + "<br>" + httpClient.getResponseCode() + "<br>"); } } else { Response.Write("签名验证失败"); } Response.End(); }
protected void Page_Load(object sender, EventArgs e) { string RequestUrl = Request.ServerVariables["SERVER_NAME"].ToLower(); if (Domain_def.Domain_yanzheng(RequestUrl))//如果符合shop101.etown.cn的格式 { //先通过正则表达式获取COMid int comid = Int32.Parse(Domain_def.Domain_Huoqu(RequestUrl).ToString()); B2b_finance_paytype model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(comid); if (model != null) { //商家微信支付的所有参数都存在 if (model.Wx_appid != "" && model.Wx_appkey != "" && model.Wx_partnerid != "" && model.Wx_paysignkey != "") { } else { model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(106); } } else { model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(106); } //if (model != null) //{ WxPayConfig config = new WxPayConfig { APPID = model.Wx_appid, APPSECRET = model.Wx_appkey, KEY = model.Wx_paysignkey, MCHID = model.Wx_partnerid, IP = CommonFunc.GetRealIP(), SSLCERT_PATH = model.wx_SSLCERT_PATH, SSLCERT_PASSWORD = model.wx_SSLCERT_PASSWORD, PROXY_URL = "", LOG_LEVENL = 3, //日志级别 REPORT_LEVENL = 0, //上报信息配置 NOTIFY_URL = "http://shop" + comid + ".etown.cn/wxpay/backpaynotice.aspx" }; Log.Info(this.GetType().ToString(), "进入支付回调URL:getpackage.aspx", config); ProcessNotify(config); //} //else //{ // Log.Error(this.GetType().ToString(), "获取商家支付参数失败"); // Response.Write("<xml><return_code>FAIL</return_code><return_msg>获取商家支付参数失败</return_msg></xml>"); // return; //} } else { Log.Error(this.GetType().ToString(), "传递网址格式错误"); Response.Write("<xml><return_code>FAIL</return_code><return_msg>传递网址格式错误</return_msg></xml>"); return; } }
protected void Page_Load(object sender, EventArgs e) { //RequestUrl = Request.ServerVariables["SERVER_NAME"].ToLower(); string u = Request.ServerVariables["HTTP_USER_AGENT"]; bool bo = detectmobilebrowser.HttpUserAgent(u); if (Request.QueryString["code"] != null) { orderid = Request["orderid"].ConvertTo <int>(0); Returnmd5 = EncryptionHelper.ToMD5(orderid.ToString() + "lixh1210", "UTF-8"); if (orderid != 0) { //根据订单id得到订单信息 B2bOrderData dataorder = new B2bOrderData(); B2b_order modelb2border = dataorder.GetOrderById(orderid); orderstatus = EnumUtils.GetName((OrderStatus)modelb2border.Order_state); paystatus = modelb2border.Pay_state;//1未支付;2已支付 order_type = modelb2border.Order_type; //根据产品id得到产品信息 B2bComProData datapro = new B2bComProData(); B2b_com_pro modelcompro = datapro.GetProById(modelb2border.Pro_id.ToString(), modelb2border.Speciid, modelb2border.channelcoachid); if (modelcompro != null) { servertype = modelcompro.Server_type; } cart = modelb2border.Shopcartid;//购物车 #region 正常订单 if (modelb2border.Order_type == 1) { if (modelcompro != null) { #region 务类型订单金额 p_totalprice1 = new B2bOrderData().GetOrderTotalPrice(modelcompro, modelb2border, out price, out pricedetail); if (p_totalprice1 == 0 || price == "0") { Response.Write("<script>alert('订单金额不可为0');</script>"); Response.End(); return; } #endregion proname = modelcompro.Pro_name; u_name = modelb2border.U_name.Substring(0, 1) + "**"; u_mobile = modelb2border.U_phone.Substring(0, 4) + "****" + modelb2border.U_phone.Substring(modelb2border.U_phone.Length - 3, 3); travel_date = modelb2border.U_traveldate.ToString(); buy_num = modelb2border.U_num; u_youxiaoqi = modelcompro.Pro_start.ToString() + " - " + modelcompro.Pro_end.ToString(); p_totalprice = CommonFunc.OperTwoDecimal(p_totalprice1.ToString()); wxp_totalprice = (p_totalprice1 * 100).ToString("F0"); price = modelb2border.Pay_price.ToString(); price = CommonFunc.OperTwoDecimal(price); comid = modelcompro.Com_id; var saleset = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString()); if (saleset != null) { phone = saleset.Service_Phone; } } } #endregion #region 充值订单 if (modelb2border.Order_type == 2) { //ordertype=2 充值订单会传递过来值 comid = modelb2border.Comid; p_totalprice1 = modelb2border.U_num * modelb2border.Pay_price; p_totalprice = CommonFunc.OperTwoDecimal(p_totalprice1.ToString()); wxp_totalprice = (p_totalprice1 * 100).ToString("F0"); //获得商户电话 var saleset = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString()); if (saleset != null) { phone = saleset.Service_Phone; } } #endregion #region 统一获得商户名称 和 微信支付链接 if (comid != 0) { comName = B2bCompanyData.GetCompany(comid).Com_name; } #endregion #region 写入支付数据库,先判定是否有此订单支付 B2bPayData datapay = new B2bPayData(); B2b_pay modelb2pay = datapay.GetPayByoId(orderid); if (modelb2pay != null) { //对已完成支付的,再次提交支付,跳转到订单也或显示此订单已支付 if (modelb2pay.Trade_status == "TRADE_SUCCESS") { Response.Write("订单已经支付过!"); Response.End(); return; } } #endregion #region 微信支付 //根据产品判断商家是否含有自己的微信支付:a.含有的话支付到商家;b.没有的话支付到平台的微信公众号账户中 B2b_finance_paytype model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(comid); if (model != null) { //商家微信支付的所有参数都存在 if (model.Wx_appid != "" && model.Wx_appkey != "" && model.Wx_partnerid != "" && model.Wx_paysignkey != "") { appId = model.Wx_appid; appsecret = model.Wx_appkey; appkey = model.Wx_paysignkey; mchid = model.Wx_partnerid; } else { model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(106); if (model.Wx_appid != "" && model.Wx_appkey != "" && model.Wx_partnerid != "" && model.Wx_paysignkey != "") { appId = model.Wx_appid; appsecret = model.Wx_appkey; appkey = model.Wx_paysignkey; mchid = model.Wx_partnerid; } } } else { model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(106); if (model.Wx_appid != "" && model.Wx_appkey != "" && model.Wx_partnerid != "" && model.Wx_paysignkey != "") { appId = model.Wx_appid; appsecret = model.Wx_appkey; appkey = model.Wx_paysignkey; mchid = model.Wx_partnerid; } } #region 获取用户openid code = Request.QueryString["code"]; string url = string.Format( "https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appId, appsecret, code); string returnStr = HttpUtil.Send("", url); var obj = JsonConvert.DeserializeObject <ModelOpenID>(returnStr); if (obj.openid == null) { //WriteFile(Server.MapPath("") + "\\Log.txt", "code:" + code + "\r\n------------------------------\r\n returnStr:" + returnStr); url = string.Format( "https://api.weixin.qq.com/sns/oauth2/refresh_token?appid={0}&grant_type=refresh_token&refresh_token={1}", appId, obj.refresh_token); returnStr = HttpUtil.Send("", url); obj = JsonConvert.DeserializeObject <ModelOpenID>(returnStr); } //WriteFile(Server.MapPath("") + "\\Log.txt", "access_token:" + obj.access_token + "\r\n" + "--openid:" + obj.openid); //url = string.Format( // "https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}", // obj.access_token, obj.openid); //returnStr = HttpUtil.Send("", url); //WriteFile(Server.MapPath("") + "\\Log.txt", returnStr); #endregion //创建支付应答对象 var packageReqHandler = new RequestHandler(Context); //初始化 packageReqHandler.init(); timeStamp = TenpayUtil.getTimestamp(); nonceStr = TenpayUtil.getNoncestr(); //设置package订单参数 string productname = ""; if (modelb2border.Order_type == 1) { productname = modelcompro.Pro_name.Replace("\"", "").Replace("“", "").Replace("'", "").Replace("‘", "").Replace(";", "").Replace(";", ""); if (productname.Length > 50) { productname = productname.Substring(0, 50); } } if (modelb2border.Order_type == 2) { productname = "预付款充值"; } packageReqHandler.setParameter("body", productname); //商品信息 127字符 packageReqHandler.setParameter("appid", appId); packageReqHandler.setParameter("mch_id", mchid); packageReqHandler.setParameter("nonce_str", nonceStr.ToLower()); packageReqHandler.setParameter("notify_url", "http://shop" + comid + ".etown.cn/wxpay/backpaynotice.aspx"); packageReqHandler.setParameter("openid", obj.openid); packageReqHandler.setParameter("out_trade_no", orderid.ToString()); //商家订单号 packageReqHandler.setParameter("spbill_create_ip", Page.Request.UserHostAddress); //用户的公网ip,不是商户服务器IP packageReqHandler.setParameter("total_fee", wxp_totalprice); //商品金额,以分为单位(money * 100).ToString() packageReqHandler.setParameter("trade_type", "JSAPI"); //获取package包 sign = packageReqHandler.CreateMd5Sign("key", appkey); //WriteFile(Server.MapPath("") + "\\Log.txt", sign); packageReqHandler.setParameter("sign", sign); string data = packageReqHandler.parseXML(); //WriteFile(Server.MapPath("") + "\\Log.txt", "package包签名:" + sign + "-----\r\n向统一支付接口发送的xml:" + data); string prepayXml = HttpUtil.Send(data, "https://api.mch.weixin.qq.com/pay/unifiedorder"); //WriteFile(Server.MapPath("") + "\\Log.txt", "统一支付接口返回xml:" + prepayXml); //获取预支付ID var xdoc = new XmlDocument(); xdoc.LoadXml(prepayXml); XmlNode xn = xdoc.SelectSingleNode("xml"); XmlNodeList xnl = xn.ChildNodes; if (xnl.Count > 7) { prepayId = xnl[7].InnerText; package = string.Format("prepay_id={0}", prepayId); //WriteFile(Server.MapPath("") + "\\Log.txt", "预支付id:" + package); } //设置支付参数 var paySignReqHandler = new RequestHandler(Context); paySignReqHandler.setParameter("appId", appId); paySignReqHandler.setParameter("timeStamp", timeStamp); paySignReqHandler.setParameter("nonceStr", nonceStr); paySignReqHandler.setParameter("package", package); paySignReqHandler.setParameter("signType", "MD5"); paySign = paySignReqHandler.CreateMd5Sign("key", appkey); //WriteFile(Server.MapPath("") + "\\Log.txt", "支付签名" + paySign); #endregion #region 订单提交支付信息 if (modelb2pay == null) { B2b_pay eticket = new B2b_pay() { Id = 0, Oid = orderid, Pay_com = "wx", Pay_name = modelb2border.U_name, Pay_phone = modelb2border.U_phone, Total_fee = p_totalprice1, Trade_no = "", Trade_status = "trade_pendpay", Uip = "", comid = model.Com_id }; int payid = datapay.InsertOrUpdate(eticket); } else { //对已完成支付的,再次提交支付,跳转到订单也或显示此订单已支付 if (modelb2pay.Trade_status != "TRADE_SUCCESS") { //防止金额有所改动 modelb2pay.comid = model.Com_id; modelb2pay.Pay_com = "wx"; modelb2pay.Total_fee = p_totalprice1; datapay.InsertOrUpdate(modelb2pay); } } #endregion } } }
public int isSetVisitDate = 0; //是否指定日期使用 public void Page_Load(object sender, EventArgs e) { string u = Request.ServerVariables["HTTP_USER_AGENT"]; bo = detectmobilebrowser.HttpUserAgent(u); //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "Request.Url:" + Request.Url.ToString()); id = Request["id"].ConvertTo <string>(""); string temp_id = Request["id"].ConvertTo <string>(""); string temp_id_speciid = "0"; if (id.Contains("_"))//检验是否为购物车订单 { cart = 1; var id_arr = id.Replace('_', ','); //如果包含规格产品 var prospeciid = new B2bOrderData().SearchCartListBycartid(id_arr); if (prospeciid != null) { if (prospeciid.Count == 0) { //没有此购物车,跳转购物车重新选择产品 Response.Redirect("/h5/order/cart.aspx"); } id = ""; for (int i = 0; i < prospeciid.Count; i++) { id += prospeciid[i].Id + ","; id_speciid += prospeciid[i].Speciid + ","; temp_id = prospeciid[i].Id.ToString(); pro_id = temp_id; temp_id_speciid = prospeciid[i].Speciid.ToString(); } } else { //没有此购物车,跳转购物车重新选择产品 Response.Redirect("/h5/order/cart.aspx"); } } else { if (id.Contains("g"))//检验是否带规格 { var id_arr = id.Split('g'); id = id_arr[0]; //只针对直销单产品顶哦故 if (id_arr[1].Contains("s")) { var ids_arr = id_arr[1].Split('s'); id_speciid = ids_arr[0]; temp_id_speciid = ids_arr[0]; serverid = ids_arr[1]; serverid = serverid.Replace("A", ","); } else { id_speciid = id_arr[1]; temp_id_speciid = id_arr[1]; } temp_id = id_arr[0]; pro_id = id_arr[0]; } } //对规格默认赋值为0 if (temp_id_speciid == "") { temp_id_speciid = "0"; } if (Request.Cookies["temp_userid"] != null) { userid = Request.Cookies["temp_userid"].Value; } else { userid = Domain_def.HuoQu_Temp_UserId(); //Response.Cookies("userid").val(); HttpCookie cookie = new HttpCookie("temp_userid"); //实例化HttpCookie类并添加值 cookie.Value = userid; cookie.Expires = DateTime.Now.AddDays(365); Response.Cookies.Add(cookie); } num = Request["num"].ConvertTo <int>(1); string aRequestUrl = Request.ServerVariables["SERVER_NAME"].ToLower(); //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "aRequestUrl:" + aRequestUrl); if (Domain_def.Domain_yanzheng(aRequestUrl))//如果符合shop101.etown.cn的格式 { //先通过正则表达式获取COMid comid = Int32.Parse(Domain_def.Domain_Huoqu(aRequestUrl).ToString()); } if (comid == 0)//如果非标准格式,查询 是否有绑定的域名 { var domaincomid = B2bCompanyData.GetComId(RequestUrl); if (domaincomid != null) { comid = domaincomid.Com_id; } } //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "comid:" + comid); #region 判断是否含有微信端传递过来的code值,不含有自刷新 code = Request.QueryString["code"].ConvertTo <string>(""); if (code == "") { selfrefreshurl = WeiXinJsonData.GetFollowOpenLinkUrlAboutPay(comid, "http://shop" + comid + ".etown.cn/wxpay/micromart_pay_" + num + "_" + id + ".aspx"); //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "selfrefreshurl:" + selfrefreshurl); //Response.Redirect(refreshurl); } #endregion //buyuid = Request["buyuid"].ConvertTo<int>(0); //tocomid = Request["tocomid"].ConvertTo<int>(0); //uid = Request["uid"].ConvertTo<int>(0); //获取IP地址 uip = CommonFunc.GetRealIP(); nowdate = DateTime.Now.ToString("yyyy-MM-dd"); nowtoday = DateTime.Now; if (temp_id != "") { //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "a"); B2b_com_pro pro = new B2bComProData().GetProById(temp_id); if (pro == null) { //没有查询到产品,跳转购物车重新选择产品 Response.Redirect("/h5/order/cart.aspx"); } if (pro != null) { //判断微信 是否是认证服务号 WeiXinBasic mbasic = new WeiXinBasicData().GetWxBasicByComId(pro.Com_id); if (mbasic == null) { iswxsubscribenum = false; } else { if (mbasic.Weixintype == 1 || mbasic.Weixintype == 2) { iswxsubscribenum = true; } else { iswxsubscribenum = false; } } #region 微信端 共享收货地址接口 参数获取 //根据产品判断商家是否含有自己的微信支付:a.含有的话支付到商家;b.没有的话支付到平台的微信公众号账户中 B2b_finance_paytype model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(pro.Com_id); //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "b"); if (model != null) { //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "c"); //商家微信支付的所有参数都存在 if (model.Wx_appid != "" && model.Wx_appkey != "" && model.Wx_partnerid != "" && model.Wx_paysignkey != "") { appId = model.Wx_appid; appsecret = model.Wx_appkey; //appkey = model.Wx_paysignkey; //mchid = model.Wx_partnerid; //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "d"); issetfinancepaytype = true; if (code != "") { string url = string.Format( "https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appId, appsecret, code); string returnStr = HttpUtil.Send("", url); //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "returnStr:" + returnStr); var obj = JsonConvert.DeserializeObject <ModelOpenID>(returnStr); if (obj.openid == null) { //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "微信转发页面打开的,returnStr:" + returnStr); selfrefreshurl = WeiXinJsonData.GetFollowOpenLinkUrlAboutPay(comid, "http://shop" + comid + ".etown.cn/wxpay/micromart_pay_" + num + "_" + id + ".aspx"); Response.Redirect(selfrefreshurl); } if (obj != null) { timeStamp = TenpayUtil.getTimestamp(); nonceStr = TenpayUtil.getNoncestr(); access_tokenstring = obj.access_token; openid = obj.openid; HttpCookie newCookie = new HttpCookie("openid"); //往Cookie里面添加值,均为键/值对。Cookie可以根据关键字寻找到相应的值 newCookie.Values.Add("openid", openid); newCookie.Expires = DateTime.Now.AddDays(365); //Cookie的设置页面要用Response Response.AppendCookie(newCookie); //签名字段:appId、url(当前网页url)、timestamp、noncestr、accessToken var paySignReqHandler = new RequestHandler(Context); paySignReqHandler.setParameter("appid", appId); paySignReqHandler.setParameter("timestamp", timeStamp); paySignReqHandler.setParameter("noncestr", nonceStr); paySignReqHandler.setParameter("url", Request.Url.ToString()); paySignReqHandler.setParameter("accesstoken", obj.access_token); //addrSign = paySignReqHandler.CreateAddrSign(); //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", appId + ";" + timeStamp + ";" + nonceStr + ";" + Request.Url.ToString() + ";" + obj.access_token + ";" + addrSign); //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "Request.Url:" + Request.Url.ToString()); //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "addrSign:" + addrSign); } } } } #endregion //票务产品,判断 是否抢购/限购,是的话 作废超时未支付订单,完成回滚操作 if (pro_servertype == 1) { if (pro.Ispanicbuy == 1 || pro.Ispanicbuy == 2) { int rs = new B2bComProData().CancelOvertimeOrder(pro); } } iscanbook = new B2bComProData().IsYouxiao(pro.Id, pro.Server_type, pro.Pro_start, pro.Pro_end, pro.Pro_state);//判断产品是否有效:1.票务,直接判断有效期 和产品上线状态2.酒店,跟团游,当地游 则判断是否含有有效的房态/团期 以及产品上下线状态 pro_servertype = pro.Server_type; pickuppoint = pro.pickuppoint; dropoffpoint = pro.dropoffpoint; issetidcard = pro.issetidcard; isSetVisitDate = pro.isSetVisitDate; childreduce = pro.Childreduce; pro_start = pro.Pro_start; pro_end = pro.Pro_end; } if (pro.Ispanicbuy == 1) { panic_begintime = pro.Panic_begintime; panicbuy_endtime = pro.Panicbuy_endtime; TimeSpan tss = pro.Panic_begintime - nowtoday; var day = tss.Days * 24 * 3600;; //这是相差的天数 var h = tss.Hours * 3600; //这是相差的小时数, var m = tss.Minutes * 60; var s = tss.Seconds; shijiacha = day + h + m + s; } projectid = pro.Projectid; comid = pro.Com_id; if (temp_id_speciid != "0") //如果规格非默认值,有规格传递,查询规格的价格 及名称 { //如果含有规格 B2b_com_pro prospeciid = new B2bComProData().GetProspeciidById(temp_id, int.Parse(temp_id_speciid)); if (prospeciid != null) { pro_name = pro.Pro_name + prospeciid.Pro_name; price = prospeciid.Advise_price; } } else { pro_name = pro.Pro_name; price = pro.Advise_price; } //如果有服务,增加服务价格 if (serverid != "") { var server_arr = serverid.Split(','); for (int i = 0; i < server_arr.Length; i++) { if (server_arr[i] != "") { var rentsrever = new RentserverData().Rentserverbyidandproid(int.Parse(server_arr[i]), int.Parse(temp_id)); if (rentsrever != null) { price += rentsrever.saleprice + rentsrever.serverDepositprice; } } } } imgurl = FileSerivce.GetImgUrl(pro.Imgurl); if (price == 0) { price = 0; } else { CommonFunc.OperTwoDecimal(price.ToString()); //price = price.IndexOf(".") != -1 ? price.Substring(0, price.IndexOf(".")) : price; } nowdate = DateTime.Now.ToString("yyyy-MM-dd"); if (pro.Service_Contain != "") { summary = "包含服务:" + pro.Service_Contain; } if (pro.Service_NotContain != "") { sumaryend = summary + "</br> 不包含服务:" + pro.Service_NotContain + "</br> 注意事项:" + pro.Precautions; } if (pro.Precautions != "") { sumaryend = summary + "</br> 注意事项:" + pro.Precautions; } //如果服务类型是 票务; 则备注信息中 显示 电子码使用限制 if (pro.Server_type == 1) { if (pro.Iscanuseonsameday == 0)//电子码当天不可用 { sumaryend = "此产品当天预订不可用<br>" + sumaryend; } if (pro.Iscanuseonsameday == 1)//电子码当天可用 { sumaryend = "此产品当天预订可用<br>" + sumaryend; } if (pro.Iscanuseonsameday == 2)//电子码出票2小时内不可用 { sumaryend = "此产品出票2小时内不可用<br>" + sumaryend; } } if (summary.Length > 30) { summary = summary.Substring(0, 30); } if (summary.Length > 150) { summary = summary.Substring(0, 150) + "..."; } remark = pro.Pro_Remark; pro_num = pro.Pro_number; if (pro_num == 0) { pro_max = 100; pro_min = 1; } else { pro_min = 1; pro_max = pro_num; } pro_explain = pro.Pro_explain; #region 产品有效期判定(微信模板--门票订单预订成功通知 中也有用到) provalidatemethod = pro.ProValidateMethod; //判断 1按产品有效期,2指定有效期 appointdate = pro.Appointdata; //1=一星期,,2=1个月,3=3个月,4=6个月,5=一年 iscanuseonsameday = pro.Iscanuseonsameday; //1当天可用,0当天不可用 pro_end = pro.Pro_end; //返回有效期 pro_youxiaoqi = new B2bComProData().GetPro_Youxiaoqi(pro.Pro_start, pro.Pro_end, provalidatemethod, appointdate, iscanuseonsameday); #endregion var commodel = B2bCompanyData.GetCompany(comid); if (commodel != null) { if (commodel.B2bcompanyinfo != null) { Wxfocus_url = commodel.B2bcompanyinfo.Wxfocus_url; Wxfocus_author = commodel.B2bcompanyinfo.Wxfocus_author;; } } var saleset = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString()); if (saleset != null) { phone = saleset.Service_Phone; } //查询项目电话,如果有项目电话调取项目电话 var projectdata = new B2b_com_projectData(); var projectmodel = projectdata.GetProject(projectid, comid); if (projectmodel != null) { if (projectmodel.Mobile != "") { phone = projectmodel.Mobile; } } //从cookie中得到微信号 if (Request.Cookies["openid"] != null) { openid = Request.Cookies["openid"].Value; } B2bCrmData b2b_crm = new B2bCrmData(); if (openid != "") { B2b_crm b2bmodle = b2b_crm.b2b_crmH5(openid, comid); if (b2bmodle != null) { Imprest = b2bmodle.Imprest; Integral = b2bmodle.Integral; } } } //如果是购物车产品,整体更换计算方式,以上至是读一个产品信息,并且读取用户的分销信息等 if (cart == 1) { cart_num = ""; //数量 price = 0; //单价 //获取购物车 的用户ID if (Request.Cookies["temp_userid"] != null) { userid = Request.Cookies["temp_userid"].Value; } cart_id = id; //赋值方便区分 if (userid != "") { var list = new B2bOrderData().SearchUserCartList(comid, userid, cart_id, id_speciid); if (list != null) { cart_id = ""; for (int i = 0; i < list.Count; i++) { cart_num += list[i].U_num + ","; cart_id += list[i].Id + ","; if (list[i].Speciid == 0) { price += list[i].U_num * list[i].Advise_price; //重新计算价格 } else { B2b_com_pro prospeciid = new B2bComProData().GetProspeciidById(list[i].Id.ToString(), list[i].Speciid);//如果含有规格参数 读取规格 if (prospeciid != null) { price += list[i].U_num * prospeciid.Advise_price; //重新计算价格 } } } if (cart_num != "") { if (cart_num.Substring(cart_num.Length - 1, 1) == ",") { cart_num = cart_num.Substring(0, cart_num.Length - 1); } } if (cart_id != "") { if (cart_id.Substring(cart_id.Length - 1, 1) == ",") { cart_id = cart_id.Substring(0, cart_id.Length - 1); } } } } } if (Domain_def.Domain_yanzheng(RequestUrl))//如果符合shop101.etown.cn的格式,则从多微信商户基本信息表中获取comid { //先通过正则表达式获取COMid comid = Int32.Parse(Domain_def.Domain_Huoqu(RequestUrl).ToString()); if (comid == 0) { comid = new WeiXinBasicData().GetWeiXinBasicByDomain(RequestUrl).Comid; } if (comid != 0) { var commodel = B2bCompanyData.GetCompany(comid); if (commodel != null) { if (commodel.B2bcompanyinfo != null) { Wxfocus_url = commodel.B2bcompanyinfo.Wxfocus_url; Wxfocus_author = commodel.B2bcompanyinfo.Wxfocus_author; weixinname = commodel.B2bcompanyinfo.Weixinname; Scenic_intro = commodel.B2bcompanyinfo.Scenic_intro; } title = commodel.Com_name; } B2b_company_saleset pro = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString()); if (pro != null) { comlogo = FileSerivce.GetImgUrl(pro.Smalllogo.ConvertTo <int>(0)); logoimg = comlogo; } ////获取微信平台端code //string weixincode = Request["code"].ConvertTo<string>(""); ////获取微信号和一次性密码 //openid = Request["openid"].ConvertTo<string>(""); //string weixinpass = Request["weixinpass"].ConvertTo<string>(""); ////获得会员信息 //GetCrmInfo(weixincode, openid, weixinpass); } } //获取BANNER,及logo //if (comid != 0) //{ // //根据公司id得到 直销设置 // B2b_company_saleset saleset = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString()); // if (saleset != null) // { // logoimg = FileSerivce.GetImgUrl(saleset.Smalllogo.ConvertTo<int>(0)); // } //} //微信转发访问归属渠道 if (uid != 0)//必须记录转发用户信息才能继续统计 { //判断有转发人的渠道 var crmdata = new B2bCrmData(); var pro = crmdata.Readuser(uid, comid);//读取转发人用户信息 string zhuanfa_phone = ""; if (pro != null) { zhuanfa_phone = pro.Phone; } if (zhuanfa_phone != "") { //转发人手机存在 MemberChannelData channeldata = new MemberChannelData(); var channeinfo = channeldata.GetPhoneComIdChannelDetail(zhuanfa_phone, comid); //查询渠道 if (channeinfo != null) { //转发人渠道记录COOKI HttpCookie cookie = new HttpCookie("ZF_ChanneId"); //实例化HttpCookie类并添加值 cookie.Value = channeinfo.Id.ToString(); cookie.Expires = DateTime.Now.AddDays(120); Response.Cookies.Add(cookie); } } } }
public void Page_Load(object sender, EventArgs e) { string u = Request.ServerVariables["HTTP_USER_AGENT"]; bo = detectmobilebrowser.HttpUserAgent(u); //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "Request.Url:" + Request.Url.ToString()); id = Request["id"].ConvertTo <string>(""); string temp_id = Request["id"].ConvertTo <string>(""); if (Request.Cookies["temp_userid"] != null) { userid = Request.Cookies["temp_userid"].Value; } else { userid = Domain_def.HuoQu_Temp_UserId(); //Response.Cookies("userid").val(); HttpCookie cookie = new HttpCookie("temp_userid"); //实例化HttpCookie类并添加值 cookie.Value = userid; cookie.Expires = DateTime.Now.AddDays(365); Response.Cookies.Add(cookie); } //取消超时订单 B2b_com_pro pro_cannelorder = new B2b_com_pro(); pro_cannelorder.Server_type = 0; int rs_cannelorder = new B2bComProData().CancelOvertimeOrder(pro_cannelorder); num = Request["num"].ConvertTo <int>(1); string aRequestUrl = Request.ServerVariables["SERVER_NAME"].ToLower(); //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "aRequestUrl:" + aRequestUrl); if (Domain_def.Domain_yanzheng(aRequestUrl))//如果符合shop101.etown.cn的格式 { //先通过正则表达式获取COMid comid = Int32.Parse(Domain_def.Domain_Huoqu(aRequestUrl).ToString()); } if (comid == 0)//如果非标准格式,查询 是否有绑定的域名 { var domaincomid = B2bCompanyData.GetComId(RequestUrl); if (domaincomid != null) { comid = domaincomid.Com_id; } } //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "comid:" + comid); #region 判断是否含有微信端传递过来的code值,不含有自刷新 code = Request.QueryString["code"].ConvertTo <string>(""); if (code == "") { selfrefreshurl = WeiXinJsonData.GetFollowOpenLinkUrlAboutPay(comid, "http://shop" + comid + ".etown.cn/wxpay/micromart_pay_" + num + "_" + id + ".aspx"); //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "selfrefreshurl:" + selfrefreshurl); //Response.Redirect(refreshurl); } #endregion //buyuid = Request["buyuid"].ConvertTo<int>(0); //tocomid = Request["tocomid"].ConvertTo<int>(0); //uid = Request["uid"].ConvertTo<int>(0); //获取IP地址 uip = CommonFunc.GetRealIP(); nowdate = DateTime.Now.ToString("yyyy-MM-dd"); nowtoday = DateTime.Now; if (temp_id != "") { B2bOrderData orderdata = new B2bOrderData(); var pro = orderdata.GetOrderById(int.Parse(temp_id)); if (pro != null) { orderstatus = EnumUtils.GetName((OrderStatus)pro.Order_state); order_state = pro.Order_state; subtime = pro.U_subdate.ToString("yyyy/MM/dd hh:mm:ss"); paystate = pro.Pay_state; #region 微信端 共享收货地址接口 参数获取 //根据产品判断商家是否含有自己的微信支付:a.含有的话支付到商家;b.没有的话支付到平台的微信公众号账户中 B2b_finance_paytype model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(pro.Comid); //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "b"); if (model != null) { //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "c"); //商家微信支付的所有参数都存在 if (model.Wx_appid != "" && model.Wx_appkey != "" && model.Wx_partnerid != "" && model.Wx_paysignkey != "") { appId = model.Wx_appid; appsecret = model.Wx_appkey; //appkey = model.Wx_paysignkey; //mchid = model.Wx_partnerid; //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "d"); issetfinancepaytype = true; if (code != "") { string url = string.Format( "https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appId, appsecret, code); string returnStr = HttpUtil.Send("", url); //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "returnStr:" + returnStr); var obj = JsonConvert.DeserializeObject <ModelOpenID>(returnStr); if (obj.openid == null) { //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "微信转发页面打开的,returnStr:" + returnStr); selfrefreshurl = WeiXinJsonData.GetFollowOpenLinkUrlAboutPay(comid, "http://shop" + comid + ".etown.cn/wxpay/micromart_pay_" + num + "_" + id + ".aspx"); Response.Redirect(selfrefreshurl); } if (obj != null) { timeStamp = TenpayUtil.getTimestamp(); nonceStr = TenpayUtil.getNoncestr(); access_tokenstring = obj.access_token; openid = obj.openid; HttpCookie newCookie = new HttpCookie("openid"); //往Cookie里面添加值,均为键/值对。Cookie可以根据关键字寻找到相应的值 newCookie.Values.Add("openid", openid); newCookie.Expires = DateTime.Now.AddDays(365); //Cookie的设置页面要用Response Response.AppendCookie(newCookie); //签名字段:appId、url(当前网页url)、timestamp、noncestr、accessToken var paySignReqHandler = new RequestHandler(Context); paySignReqHandler.setParameter("appid", appId); paySignReqHandler.setParameter("timestamp", timeStamp); paySignReqHandler.setParameter("noncestr", nonceStr); paySignReqHandler.setParameter("url", Request.Url.ToString()); paySignReqHandler.setParameter("accesstoken", obj.access_token); //addrSign = paySignReqHandler.CreateAddrSign(); //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", appId + ";" + timeStamp + ";" + nonceStr + ";" + Request.Url.ToString() + ";" + obj.access_token + ";" + addrSign); //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "Request.Url:" + Request.Url.ToString()); //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "addrSign:" + addrSign); } } } } #endregion address = pro.U_name + " " + pro.U_phone + "<br>" + pro.Province + " " + pro.City + " " + pro.Address; if (pro.Shopcartid == 0) { B2b_com_pro proinfo = new B2bComProData().GetProById(pro.Pro_id.ToString(), pro.Speciid, pro.channelcoachid); if (proinfo != null) { pro_name = proinfo.Pro_name; imgurl = FileSerivce.GetImgUrl(proinfo.Imgurl); Ispanicbuy = proinfo.Ispanicbuy; Server_type = proinfo.Server_type; } else { pro_name = "对订单进行支付"; } pay_price = Math.Round(pro.Pay_price, 2); pro_price = Math.Round(pro.Pay_price * pro.U_num, 2); price = Math.Round(pro.Pay_price * pro.U_num - pro.Integral1 - pro.Imprest1 + pro.Express, 2); num = pro.U_num; Express = Math.Round(pro.Express, 2); } else { //如果是购物车订单,必须一起支付 cart_id = pro.Shopcartid; cart = 1; price = Math.Round(orderdata.GetCartOrderMoneyById(pro.Id), 2); pro_name = orderdata.GetCartOrderProById(pro.Id); Express = Math.Round(orderdata.GetCartOrderExpressMoneyById(pro.Id), 2); num = 1; var shopcart = orderdata.shopcartorder(pro.Shopcartid); if (shopcart != null) { for (int i = 0; i < shopcart.Count; i++) { pro_price += shopcart[i].Pay_price * shopcart[i].U_num; proid += shopcart[i].Pro_id + ","; } } pro_price = Math.Round(pro_price, 2); } } if (price == 0) { price = 0; } else { CommonFunc.OperTwoDecimal(price.ToString()); //price = price.IndexOf(".") != -1 ? price.Substring(0, price.IndexOf(".")) : price; } nowdate = DateTime.Now.ToString("yyyy-MM-dd"); if (summary.Length > 30) { summary = summary.Substring(0, 30); } if (summary.Length > 150) { summary = summary.Substring(0, 150) + "..."; } var commodel = B2bCompanyData.GetCompany(comid); if (commodel != null) { if (commodel.B2bcompanyinfo != null) { Wxfocus_url = commodel.B2bcompanyinfo.Wxfocus_url; Wxfocus_author = commodel.B2bcompanyinfo.Wxfocus_author;; } } var saleset = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString()); if (saleset != null) { phone = saleset.Service_Phone; } //查询项目电话,如果有项目电话调取项目电话 var projectdata = new B2b_com_projectData(); var projectmodel = projectdata.GetProject(projectid, comid); if (projectmodel != null) { if (projectmodel.Mobile != "") { phone = projectmodel.Mobile; } } //从cookie中得到微信号 if (Request.Cookies["openid"] != null) { openid = Request.Cookies["openid"].Value; } B2bCrmData b2b_crm = new B2bCrmData(); if (openid != "") { B2b_crm b2bmodle = b2b_crm.b2b_crmH5(openid, comid); if (b2bmodle != null) { Imprest = b2bmodle.Imprest; Integral = b2bmodle.Integral; } } } if (Domain_def.Domain_yanzheng(RequestUrl))//如果符合shop101.etown.cn的格式,则从多微信商户基本信息表中获取comid { //先通过正则表达式获取COMid comid = Int32.Parse(Domain_def.Domain_Huoqu(RequestUrl).ToString()); if (comid == 0) { comid = new WeiXinBasicData().GetWeiXinBasicByDomain(RequestUrl).Comid; } if (comid != 0) { var commodel = B2bCompanyData.GetCompany(comid); if (commodel != null) { if (commodel.B2bcompanyinfo != null) { Wxfocus_url = commodel.B2bcompanyinfo.Wxfocus_url; Wxfocus_author = commodel.B2bcompanyinfo.Wxfocus_author; weixinname = commodel.B2bcompanyinfo.Weixinname; Scenic_intro = commodel.B2bcompanyinfo.Scenic_intro; } title = commodel.Com_name; } B2b_company_saleset pro = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString()); if (pro != null) { comlogo = FileSerivce.GetImgUrl(pro.Smalllogo.ConvertTo <int>(0)); } ////获取微信平台端code //string weixincode = Request["code"].ConvertTo<string>(""); ////获取微信号和一次性密码 //openid = Request["openid"].ConvertTo<string>(""); //string weixinpass = Request["weixinpass"].ConvertTo<string>(""); ////获得会员信息 //GetCrmInfo(weixincode, openid, weixinpass); } } //获取BANNER,及logo if (comid != 0) { //根据公司id得到 直销设置 B2b_company_saleset saleset = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString()); if (saleset != null) { logoimg = FileSerivce.GetImgUrl(saleset.Smalllogo.ConvertTo <int>(0)); } } //微信转发访问归属渠道 if (uid != 0)//必须记录转发用户信息才能继续统计 { //判断有转发人的渠道 var crmdata = new B2bCrmData(); var pro = crmdata.Readuser(uid, comid);//读取转发人用户信息 string zhuanfa_phone = ""; if (pro != null) { zhuanfa_phone = pro.Phone; } if (zhuanfa_phone != "") { //转发人手机存在 MemberChannelData channeldata = new MemberChannelData(); var channeinfo = channeldata.GetPhoneComIdChannelDetail(zhuanfa_phone, comid); //查询渠道 if (channeinfo != null) { //转发人渠道记录COOKI HttpCookie cookie = new HttpCookie("ZF_ChanneId"); //实例化HttpCookie类并添加值 cookie.Value = channeinfo.Id.ToString(); cookie.Expires = DateTime.Now.AddDays(120); Response.Cookies.Add(cookie); } } } }
public bool issetfinancepaytype = false;//是否设置了微信支付参数 public void Page_Load(object sender, EventArgs e) { string u = Request.ServerVariables["HTTP_USER_AGENT"]; bool bo = detectmobilebrowser.HttpUserAgent(u); uid = Request["uid"].ConvertTo <int>(0); //获取IP地址 uip = CommonFunc.GetRealIP(); id = Request["id"].ConvertTo <int>(0); nowdate = DateTime.Now.ToString("yyyy-MM-dd"); nowtoday = DateTime.Now; buyuid = Request["buyuid"].ConvertTo <int>(0); tocomid = Request["tocomid"].ConvertTo <int>(0); //获取随机用户ID if (Request.Cookies["temp_userid"] != null) { userid = Request.Cookies["temp_userid"].Value; } else { userid = Domain_def.HuoQu_Temp_UserId(); //Response.Cookies("userid").val(); HttpCookie cookie = new HttpCookie("temp_userid"); //实例化HttpCookie类并添加值 cookie.Value = userid; cookie.Expires = DateTime.Now.AddDays(365); Response.Cookies.Add(cookie); } if (id != 0) { B2b_com_pro pro = new B2bComProData().GetProById(id.ToString()); if (pro != null) { Ispanicbuy = pro.Ispanicbuy; //是否抢购或限购 Limitbuytotalnum = pro.Limitbuytotalnum; //限购数量 //根据产品判断商家是否含有自己的微信支付:a.含有的话支付到商家;b.没有的话支付到平台的微信公众号账户中 B2b_finance_paytype model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(pro.Com_id); //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "b"); if (model != null) { //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "c"); //商家微信支付的所有参数都存在 if (model.Wx_appid != "" && model.Wx_appkey != "" && model.Wx_partnerid != "" && model.Wx_paysignkey != "") { //appId = model.Wx_appid; //appsecret = model.Wx_appkey; //appkey = model.Wx_paysignkey; //mchid = model.Wx_partnerid; //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "d"); issetfinancepaytype = true; } } //票务产品,判断 是否抢购/限购,是的话 作废超时未支付订单,完成回滚操作 if (pro_servertype == 1) { if (pro.Ispanicbuy == 1 || pro.Ispanicbuy == 2) { int rs = new B2bComProData().CancelOvertimeOrder(pro); } } iscanbook = new B2bComProData().IsYouxiao(pro.Id, pro.Server_type, pro.Pro_start, pro.Pro_end, pro.Pro_state);//判断产品是否有效:1.票务,直接判断有效期 和产品上线状态2.酒店,跟团游,当地游 则判断是否含有有效的房态/团期 以及产品上下线状态 pro_servertype = pro.Server_type; pickuppoint = pro.pickuppoint; dropoffpoint = pro.dropoffpoint; childreduce = pro.Childreduce; } if (pro.Ispanicbuy == 1) { panic_begintime = pro.Panic_begintime; panicbuy_endtime = pro.Panicbuy_endtime; TimeSpan tss = pro.Panic_begintime - nowtoday; var day = tss.Days * 24 * 3600;; //这是相差的天数 var h = tss.Hours * 3600; //这是相差的小时数, var m = tss.Minutes * 60; var s = tss.Seconds; shijiacha = day + h + m + s; } projectid = pro.Projectid; comid = pro.Com_id; pro_name = pro.Pro_name; price = pro.Advise_price; face_price = pro.Face_price; limitbuytotalnum = pro.Limitbuytotalnum; imgurl = FileSerivce.GetImgUrl(pro.Imgurl); if (price == 0) { price = 0; } else { CommonFunc.OperTwoDecimal(price.ToString()); //price = price.IndexOf(".") != -1 ? price.Substring(0, price.IndexOf(".")) : price; } if (face_price != 0) { CommonFunc.OperTwoDecimal(face_price.ToString()); } nowdate = DateTime.Now.ToString("yyyy-MM-dd"); if (pro.Service_Contain != "") { sumaryend = pro.Service_Contain; } if (pro.Service_NotContain != "") { sumaryend = sumaryend + "</br> " + pro.Service_NotContain; } if (pro.Precautions != "") { sumaryend = sumaryend + "</br> " + pro.Precautions; } Server_type = pro.Server_type; //如果服务类型是 票务; 则备注信息中 显示 电子码使用限制 //if (pro.Server_type == 1) //{ // if (pro.Iscanuseonsameday == 0)//电子码当天不可用 // { // sumaryend = "此产品当天预订不可用<br>" + sumaryend; // } // if (pro.Iscanuseonsameday == 1)//电子码当天可用 // { // sumaryend = "此产品当天预订可用<br>" + sumaryend; // } // if (pro.Iscanuseonsameday == 2)//电子码出票2小时内不可用 // { // sumaryend = "此产品出票2小时内不可用<br>" + sumaryend; // } //} remark = pro.Pro_Remark; pro_num = pro.Pro_number; if (pro_num == 0) { pro_max = 100; pro_min = 1; } else { pro_min = 1; pro_max = pro_num; } pro_explain = pro.Pro_explain; #region 产品有效期判定(微信模板--门票订单预订成功通知 中也有用到) provalidatemethod = pro.ProValidateMethod; //判断 1按产品有效期,2指定有效期 appointdate = pro.Appointdata; //1=一星期,,2=1个月,3=3个月,4=6个月,5=一年 iscanuseonsameday = pro.Iscanuseonsameday; //1当天可用,0当天不可用 DateTime pro_end = pro.Pro_end; //返回有效期 pro_youxiaoqi = new B2bComProData().GetPro_Youxiaoqi(pro.Pro_start, pro.Pro_end, provalidatemethod, appointdate, iscanuseonsameday); #endregion var commodel = B2bCompanyData.GetCompany(comid); if (commodel != null) { if (commodel.B2bcompanyinfo != null) { Wxfocus_url = commodel.B2bcompanyinfo.Wxfocus_url; Wxfocus_author = commodel.B2bcompanyinfo.Wxfocus_author;; } } var saleset = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString()); if (saleset != null) { phone = saleset.Service_Phone; } //查询项目电话,如果有项目电话调取项目电话 var projectdata = new B2b_com_projectData(); var projectmodel = projectdata.GetProject(projectid, comid); if (projectmodel != null) { if (projectmodel.Mobile != "") { phone = projectmodel.Mobile; } } //从cookie中得到微信号 if (Request.Cookies["openid"] != null) { openid = Request.Cookies["openid"].Value; } B2bCrmData b2b_crm = new B2bCrmData(); if (openid != "") { B2b_crm b2bmodle = b2b_crm.b2b_crmH5(openid, comid); if (b2bmodle != null) { Imprest = b2bmodle.Imprest; Integral = b2bmodle.Integral; } } } if (Domain_def.Domain_yanzheng(RequestUrl))//如果符合shop101.etown.cn的格式,则从多微信商户基本信息表中获取comid { //先通过正则表达式获取COMid comid = Int32.Parse(Domain_def.Domain_Huoqu(RequestUrl).ToString()); } if (comid == 0)//如果非标准格式,查询 是否有绑定的域名 { var wxdomain = new WeiXinBasicData().GetWeiXinBasicByDomain(RequestUrl); if (wxdomain != null) { comid = wxdomain.Comid; } } if (comid != 0) { var commodel = B2bCompanyData.GetCompany(comid); if (commodel != null) { if (commodel.B2bcompanyinfo != null) { Wxfocus_url = commodel.B2bcompanyinfo.Wxfocus_url; Wxfocus_author = commodel.B2bcompanyinfo.Wxfocus_author; weixinname = commodel.B2bcompanyinfo.Weixinname; Scenic_intro = commodel.B2bcompanyinfo.Scenic_intro; } title = commodel.Com_name; } B2b_company_saleset pro = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString()); if (pro != null) { if (pro.Smalllogo != null && pro.Smalllogo != "") { comlogo = FileSerivce.GetImgUrl(pro.Smalllogo.ConvertTo <int>(0)); } } //获取微信平台端code string weixincode = Request["code"].ConvertTo <string>(""); //获取微信号和一次性密码 openid = Request["openid"].ConvertTo <string>(""); string weixinpass = Request["weixinpass"].ConvertTo <string>(""); //获得会员信息 GetCrmInfo(weixincode, openid, weixinpass); } //获取BANNER,及logo if (comid != 0) { //根据公司id得到 直销设置 B2b_company_saleset saleset = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString()); if (saleset != null) { logoimg = FileSerivce.GetImgUrl(saleset.Smalllogo.ConvertTo <int>(0)); } } //微信转发访问归属渠道 if (uid != 0)//必须记录转发用户信息才能继续统计 { //判断有转发人的渠道 var crmdata = new B2bCrmData(); var pro = crmdata.Readuser(uid, comid);//读取转发人用户信息 string zhuanfa_phone = ""; if (pro != null) { zhuanfa_phone = pro.Phone; } if (zhuanfa_phone != "") { //转发人手机存在 MemberChannelData channeldata = new MemberChannelData(); var channeinfo = channeldata.GetPhoneComIdChannelDetail(zhuanfa_phone, comid); //查询渠道 if (channeinfo != null) { //转发人渠道记录COOKI HttpCookie cookie = new HttpCookie("ZF_ChanneId"); //实例化HttpCookie类并添加值 cookie.Value = channeinfo.Id.ToString(); cookie.Expires = DateTime.Now.AddDays(120); Response.Cookies.Add(cookie); } } } }
protected void BtnAlipay_Click(object sender, EventArgs e) { int orderid = Orderid.Text.Trim().ConvertTo <int>(0); decimal quit_fee = Quitfee.Text.Trim().ConvertTo <decimal>(0); //得到订单的支付信息 B2b_pay mpay = new B2bPayData().GetSUCCESSPayById(orderid); if (mpay.Trade_status != "TRADE_SUCCESS") { string r = "{\"type\":1,\"msg\":\"订单支付没有成功,不可退款\"}"; //Response.Write(r); lblresult.InnerText = r; return; } #region 支付宝退款 B2b_finance_paytype model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(mpay.comid); if (model == null) { string data2 = "{\"type\":1,\"msg\":\"支付宝设置信息不存在!\"}"; //Response.Write(data2); lblresult.InnerText = data2; return; } lock (lockobj) { ////////////////////////////////////////////请求参数//////////////////////////////////////////// int nowbatch_num = 0; //退款笔数 string nowdetail_data = ""; //退款详细数据 nowbatch_num = 1; nowdetail_data = mpay.Trade_no + "^" + quit_fee.ToString("F2") + "^" + "协商退款";//原付款支付宝交易号^退款总金额^退款理由 //服务器异步通知页面路径 string notify_url = "http://shop.etown.cn/ui/vasui/alipay/refund_notify_url.aspx"; //需http://格式的完整路径,不允许加?id=123这类自定义参数 //卖家支付宝帐户 string seller_email = Config.Seller_email.ToString().Trim(); //必填 //退款当天日期 string refund_date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); //必填,格式:年[4位]-月[2位]-日[2位] 小时[2位 24小时制]:分[2位]:秒[2位],如:2007-10-01 13:13:13 //批次号 string batch_no = DateTime.Now.ToString("yyyyMMddHHmmssfff"); //必填,格式:当天日期[8位]+序列号[3至24位],如:201008010000001 //退款笔数 string batch_num = nowbatch_num.ToString(); //必填,参数detail_data的值中,“#”字符出现的数量加1,最大支持1000笔(即“#”字符出现的数量999个) //退款详细数据 string detail_data = nowdetail_data; //必填,具体格式请参见接口技术文档 //////////////////////////////////////////////////////////////////////////////////////////////// //把请求参数打包成数组 SortedDictionary <string, string> sParaTemp = new SortedDictionary <string, string>(); sParaTemp.Add("partner", Config.Partner); sParaTemp.Add("_input_charset", Config.Input_charset.ToLower()); sParaTemp.Add("service", "refund_fastpay_by_platform_pwd"); sParaTemp.Add("notify_url", notify_url); sParaTemp.Add("seller_email", seller_email); sParaTemp.Add("refund_date", refund_date); sParaTemp.Add("batch_no", batch_no); sParaTemp.Add("batch_num", batch_num); sParaTemp.Add("detail_data", detail_data); B2b_pay_alipayrefundlog nowlog = new B2b_pay_alipayrefundlog { id = 0, orderid = orderid, service = "refund_fastpay_by_platform_pwd", partner = Config.Partner, notify_url = notify_url, seller_email = Config.Seller_email, seller_user_id = Config.Partner, refund_date = DateTime.Parse(refund_date), batch_no = batch_no, batch_num = int.Parse(batch_num), detail_data = detail_data, notify_time = DateTime.Parse("1970-01-01"), notify_type = "", notify_id = "", success_num = 0, result_details = "", error_code = "", error_desc = "", refund_fee = quit_fee }; int ee = new B2b_pay_alipayrefundlogData().Editalipayrefundlog(nowlog); if (ee > 0) { //建立请求 string sHtmlText = Submit.BuildRequest(sParaTemp, "get", "确认"); Response.Write(sHtmlText); //lblresult.InnerText = sHtmlText; return; } else { //Response.Write("{\"type\":\"100\",\"msg\":\"退款操作完成(款项需手动退款).\"}"); lblresult.InnerText = "{\"type\":\"100\",\"msg\":\"退款操作完成(款项需手动退款).\"}"; return; } } #endregion }
public void Page_Load(object sender, EventArgs e) { string u = Request.ServerVariables["HTTP_USER_AGENT"]; bool bo = detectmobilebrowser.HttpUserAgent(u); uid = Request["uid"].ConvertTo <int>(0); menuindex = Request["menuindex"].ConvertTo <int>(0); //获取IP地址 uip = CommonFunc.GetRealIP(); key = Request["key"].ConvertTo <string>(""); if (key != "") { biaoti = key; } proclass = Request["class"].ConvertTo <int>(0); price = Request["price"].ConvertTo <int>(0); //获取随机用户ID if (Request.Cookies["temp_userid"] != null) { userid = Request.Cookies["temp_userid"].Value; } else { userid = Domain_def.HuoQu_Temp_UserId(); //Response.Cookies("userid").val(); HttpCookie cookie = new HttpCookie("temp_userid"); //实例化HttpCookie类并添加值 cookie.Value = userid; cookie.Expires = DateTime.Now.AddDays(365); Response.Cookies.Add(cookie); } if (proclass != 0) { var prodata = new B2bComProData(); var result = prodata.Proclassbyid(proclass); if (result != null) { biaoti = result.Classname; } } buyuid = Request["buyuid"].ConvertTo <int>(0); tocomid = Request["tocomid"].ConvertTo <int>(0); if (Domain_def.Domain_yanzheng(RequestUrl))//如果符合shop101.etown.cn的格式,则从多微信商户基本信息表中获取comid { //先通过正则表达式获取COMid comid = Int32.Parse(Domain_def.Domain_Huoqu(RequestUrl).ToString()); } if (comid == 0)//如果非标准格式,查询 是否有绑定的域名 { var domaincomid = B2bCompanyData.GetComId(RequestUrl); if (domaincomid != null) { comid = domaincomid.Com_id; } } if (comid != 0) { var commodel = B2bCompanyData.GetCompany(comid); if (commodel != null) { if (commodel.B2bcompanyinfo != null) { Wxfocus_url = commodel.B2bcompanyinfo.Wxfocus_url; Wxfocus_author = commodel.B2bcompanyinfo.Wxfocus_author; weixinname = commodel.B2bcompanyinfo.Weixinname; Scenic_intro = commodel.B2bcompanyinfo.Scenic_intro; } title = commodel.Com_name; setsearch = commodel.Setsearch; } B2b_company_saleset pro = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString()); if (pro != null) { if (pro.Smalllogo != null && pro.Smalllogo != "") { comlogo = FileSerivce.GetImgUrl(pro.Smalllogo.ConvertTo <int>(0)); } } //获取微信平台端code string weixincode = Request["code"].ConvertTo <string>(""); //获取微信号和一次性密码 openid = Request["openid"].ConvertTo <string>(""); string weixinpass = Request["weixinpass"].ConvertTo <string>(""); //获得会员信息 GetCrmInfo(weixincode, openid, weixinpass); } //获取BANNER,及logo if (comid != 0) { //根据产品判断商家是否含有自己的微信支付:a.含有的话支付到商家;b.没有的话支付到平台的微信公众号账户中 B2b_finance_paytype model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(comid); //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "b"); if (model != null) { //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "c"); //商家微信支付的所有参数都存在 if (model.Wx_appid != "" && model.Wx_appkey != "" && model.Wx_partnerid != "" && model.Wx_paysignkey != "") { //appId = model.Wx_appid; //appsecret = model.Wx_appkey; //appkey = model.Wx_paysignkey; //mchid = model.Wx_partnerid; //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "d"); issetfinancepaytype = true; } } var imagedata = new B2bCompanyImageData(); int totalcount = 0; List <B2b_company_image> list = imagedata.PageGetimageList(comid, 2, out totalcount); if (list != null) { for (int i = 0; i < totalcount; i++) { bannerimg = FileSerivce.GetImgUrl(list[i].Imgurl); bannerlink = list[i].Linkurl; bannertitle = list[i].Title; } } //根据公司id得到 直销设置 B2b_company_saleset saleset = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString()); if (saleset != null) { logoimg = FileSerivce.GetImgUrl(saleset.Smalllogo.ConvertTo <int>(0)); } //读取首页栏目,只读取前10个栏目,太多影响打开 var shopmenudata = new B2bCompanyMenuData(); menulist = shopmenudata.GetMenuList(comid, 1, 30, out menutotalcount, 1, menuindex); if (menulist != null) { if (menutotalcount > 30) { menutotalcount = 30; } for (int i = 0; i < menutotalcount; i++) { if (menulist[i].Imgurl != 0) { menulist[i].Imgurl_address = FileSerivce.GetImgUrl(menulist[i].Imgurl); } else { menulist[i].Imgurl_address = ""; } } } //如果没有栏目读取项目 if (menutotalcount == 0) { var prodata = new B2b_com_projectData(); projectlist = prodata.Projectpagelist(comid.ToString(), 1, 10, "1", out porjectcount, ""); } } //微信转发访问归属渠道 if (uid != 0)//必须记录转发用户信息才能继续统计 { //判断有转发人的渠道 var crmdata = new B2bCrmData(); var pro = crmdata.Readuser(uid, comid);//读取转发人用户信息 string zhuanfa_phone = ""; if (pro != null) { zhuanfa_phone = pro.Phone; } if (zhuanfa_phone != "") { //转发人手机存在 MemberChannelData channeldata = new MemberChannelData(); var channeinfo = channeldata.GetPhoneComIdChannelDetail(zhuanfa_phone, comid); //查询渠道 if (channeinfo != null) { //转发人渠道记录COOKI HttpCookie cookie = new HttpCookie("ZF_ChanneId"); //实例化HttpCookie类并添加值 cookie.Value = channeinfo.Id.ToString(); cookie.Expires = DateTime.Now.AddDays(120); Response.Cookies.Add(cookie); } } } }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string oper = context.Request["oper"].ConvertTo <string>(""); if (oper != "") { if (oper == "selhotelprojectlist") { var comid = context.Request["comid"].ConvertTo <int>(0); string data = FinanceJsonData.Selhotelprojectlist(comid); context.Response.Write(data); } if (oper == "selhotelproductlist") { var comid = context.Request["comid"].ConvertTo <int>(0); var projectid = context.Request["projectid"].ConvertTo <int>(0); string data = FinanceJsonData.Selhotelproductlist(comid, projectid); context.Response.Write(data); } if (oper == "selprojectlist") { var comid = context.Request["comid"].ConvertTo <int>(0); string data = FinanceJsonData.Selprojectlist(comid); context.Response.Write(data); } if (oper == "HotelOrderlist") { var comid = context.Request["comid"].ConvertTo <int>(0); var begindate = context.Request["begindate"].ConvertTo <string>(""); var enddate = context.Request["enddate"].ConvertTo <string>(""); var productid = context.Request["productid"].ConvertTo <int>(0); var orderstate = context.Request["orderstate"].ConvertTo <string>(""); string data = FinanceJsonData.HotelOrderlist(comid, begindate, enddate, productid, orderstate); context.Response.Write(data); } if (oper == "HotelOrderStat") { var comid = context.Request["comid"].ConvertTo <int>(0); var begindate = context.Request["begindate"].ConvertTo <string>(""); var enddate = context.Request["enddate"].ConvertTo <string>(""); var projectid = context.Request["projectid"].ConvertTo <int>(0); var productid = context.Request["productid"].ConvertTo <int>(0); var key = context.Request["key"].ConvertTo <string>(""); var orderstate = context.Request["orderstate"].ConvertTo <string>(""); string data = FinanceJsonData.HotelOrderStat(comid, begindate, enddate, projectid, productid, key, orderstate); context.Response.Write(data); } if (oper == "FinanceStat") { var comid = context.Request["comid"].ConvertTo <int>(0); var begindate = context.Request["begindate"].ConvertTo <string>(""); var enddate = context.Request["enddate"].ConvertTo <string>(""); var projectid = context.Request["projectid"].ConvertTo <int>(0); var productid = context.Request["productid"].ConvertTo <int>(0); string data = FinanceJsonData.FinanceStat(comid, begindate, enddate, projectid, productid); context.Response.Write(data); } if (oper == "Selpayment_type") { string data = FinanceJsonData.Selpayment_type(); context.Response.Write(data); } if (oper == "Selmoney_come") { string data = FinanceJsonData.Selmoney_come(); context.Response.Write(data); } if (oper == "issetfinancepaytype") { var comid = context.Request["comid"].ConvertTo <int>(0); var data = "{\"type\":\"1\",\"msg\":\"\"}"; if (comid == 0) { data = "{\"type\":\"1\",\"msg\":\"传参数失败\"}"; } B2b_finance_paytype model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(comid); if (model != null) { //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", "c"); //商家微信支付的所有参数都存在 if (model.Wx_appid != "" && model.Wx_appkey != "" && model.Wx_partnerid != "" && model.Wx_paysignkey != "") { data = "{\"type\":\"100\",\"msg\":\"\"}"; } else { data = "{\"type\":\"1\",\"msg\":\"微信财务参数设置不完全\"}"; } } else { data = "{\"type\":\"1\",\"msg\":\"微信财务参数没有设置\"}"; } TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\Log.txt", data); context.Response.Write(data); } if (oper == "Financelist") { var comid = context.Request["comid"]; var pageindex = context.Request["pageindex"].ConvertTo <int>(1); var pagesize = context.Request["pagesize"].ConvertTo <int>(10); var key = context.Request["key"].ConvertTo <string>(""); string data = FinanceJsonData.FinancePageList(comid, pageindex, pagesize, key); context.Response.Write(data); } if (oper == "Financecount") { var comid = context.Request["comid"]; var stardate = context.Request["stardate"].ConvertTo <string>(DateTime.Now.ToString("yyyy-MM-dd")); var enddate = context.Request["enddate"].ConvertTo <string>(DateTime.Now.ToString("yyyy-MM-dd")); string data = FinanceJsonData.Financecount(comid, stardate, enddate); context.Response.Write(data); } if (oper == "ChannelFlist") { var comid = context.Request["comid"]; var pageindex = context.Request["pageindex"].ConvertTo <int>(1); var pagesize = context.Request["pagesize"].ConvertTo <int>(10); var channelcompanyid = context.Request["channelcompanyid"].ConvertTo <int>(0); var key = context.Request["key"].ConvertTo <string>(""); string data = FinanceJsonData.ChannelFPageList(comid, pageindex, pagesize, key, channelcompanyid); context.Response.Write(data); } if (oper == "ChannelFcount") { var comid = context.Request["comid"].ConvertTo <int>(0); var channelcompanyid = context.Request["channelcompanyid"].ConvertTo <int>(0); string data = FinanceJsonData.GetChannelFinanceCount(comid, channelcompanyid); context.Response.Write(data); } if (oper == "MasterFinancelist") { var comid = "999999"; var pageindex = context.Request["pageindex"].ConvertTo <int>(1); var pagesize = context.Request["pagesize"].ConvertTo <int>(10); var key = context.Request["key"].ConvertTo <string>(""); string data = FinanceJsonData.FinancePageList(comid, pageindex, pagesize, key); context.Response.Write(data); } //获取所有财务记录,并获取 支付宝财务通对账号 if (oper == "ComFinancelist") { var comid = "999999"; var pageindex = context.Request["pageindex"].ConvertTo <int>(1); var pagesize = context.Request["pagesize"].ConvertTo <int>(10); var key = context.Request["key"].ConvertTo <string>(""); var oid = context.Request["oid"].ConvertTo <int>(0); var payment_type = context.Request["payment_type"].ConvertTo <string>(""); var money_come = context.Request["money_come"].ConvertTo <string>(""); var starttime = context.Request["starttime"].ConvertTo <string>(""); var endtime = context.Request["endtime"].ConvertTo <string>(""); string data = FinanceJsonData.ComFinancePageList(comid, pageindex, pagesize, key, oid, payment_type, money_come, starttime, endtime); context.Response.Write(data); } if (oper == "WithdrawConf") { int comid = context.Request["comid"].ConvertTo <int>(0); int id = context.Request["id"].ConvertTo <int>(0); string remarks = context.Request["remarks"].ConvertTo <string>(""); int printscreen = context.Request["printscreen"].ConvertTo <int>(0); string data = ""; try { data = FinanceJsonData.WithdrawConf(id, comid, remarks, printscreen); } catch { data = ""; } context.Response.Write(data); } if (oper == "getpaytype") { int comid = context.Request["comid"].ConvertTo <int>(0); string data = "";//获取公司基本信息和扩展信息 try { data = FinanceJsonData.FinancePayType(comid); } catch { data = ""; } context.Response.Write(data); } //修改支付方式 if (oper == "editpaytype") { int id = context.Request["id"].ConvertTo <int>(0); int comid = context.Request["comid"].ConvertTo <int>(0); int act = context.Request["act"].ConvertTo <int>(0); int paytype = Int32.Parse(context.Request["paytype"]); B2b_Finance findate = new B2b_Finance() { Id = id, Com_id = comid, Act = act, Paytype = paytype }; var data = FinanceJsonData.ModifyFinancePayType(findate); context.Response.Write(data); } //提现 if (oper == "Withdraw") { int id = context.Request["id"].ConvertTo <int>(0); int comid = context.Request["comid"].ConvertTo <int>(0); decimal money = 0 - context.Request["money"].ConvertTo <decimal>(0);//提现直接为负数 string bank_account = context.Request["bank_account"]; string bank_card = context.Request["bank_card"]; string bank_name = context.Request["bank_name"]; //得到商家信息,账户余额 B2b_company modelcom = B2bCompanyData.GetCompany(comid); decimal Over_money = modelcom.Imprest + money; B2b_Finance findate = new B2b_Finance() { Id = id, Com_id = comid, Money = money, Money_come = bank_account, Servicesname = bank_account + ":" + bank_card + ":" + bank_name, Payment = 1, SerialNumber = DateTime.Now.ToString("yyyyMMddhhmmssfff"), Payment_type = "商家提现", Over_money = Over_money }; var data = FinanceJsonData.ModifyFinanceWithdraw(findate); context.Response.Write(data); } //修改支付银行状态 if (oper == "Upbanktype") { int comid = context.Request["comid"].ConvertTo <int>(0); int type = context.Request["type"].ConvertTo <int>(0); var data = ""; B2bFinanceData fdate = new B2bFinanceData(); B2b_finance_paytype com = fdate.FinancePayType(comid); if (com != null) { com.Uptype = type; data = FinanceJsonData.ModifyFinancePayBank(com); } context.Response.Write(data); } //修改支付银行 if (oper == "editpaybank") { int id = context.Request["id"].ConvertTo <int>(0); int comid = context.Request["comid"].ConvertTo <int>(0); int paytype = Int32.Parse(context.Request["paytype"]); string bank_account = context.Request["bank_account"]; string bank_card = context.Request["bank_card"]; string bank_name = context.Request["bank_name"]; string alipay_account = context.Request["alipay_account"]; string alipay_id = context.Request["alipay_id"]; string alipay_key = context.Request["alipay_key"]; bool type = context.Request["type"].ConvertTo <bool>(false); int Uptype = 0; if (type == true) { Uptype = 1; } B2b_finance_paytype findate = new B2b_finance_paytype() { Id = id, Com_id = comid, Bank_account = bank_account, Bank_card = bank_card, Bank_name = bank_name, Alipay_account = alipay_account, Alipay_id = alipay_id, Alipay_key = alipay_key, Paytype = paytype, Uptype = Uptype, }; var data = FinanceJsonData.ModifyFinancePayBank(findate); context.Response.Write(data); } //修改微信支付设置 if (oper == "editpaywx") { int id = context.Request["id"].ConvertTo <int>(0); int comid = context.Request["comid"].ConvertTo <int>(0); string appid = context.Request["appid"]; string appkey = context.Request["appkey"]; string paysignkey = context.Request["paysignkey"]; string partnerid = context.Request["partnerid"]; string partnerkey = context.Request["partnerkey"]; string wx_SSLCERT_PATH = context.Request["wx_SSLCERT_PATH"].ConvertTo <string>(""); string wx_SSLCERT_PASSWORD = context.Request["wx_SSLCERT_PASSWORD"].ConvertTo <string>(""); B2b_finance_paytype findate2 = new B2b_finance_paytype() { Id = id, Com_id = comid, Wx_appid = appid, Wx_appkey = appkey, Wx_partnerid = partnerid, Wx_paysignkey = paysignkey, Wx_partnerkey = partnerkey, wx_SSLCERT_PATH = wx_SSLCERT_PATH, wx_SSLCERT_PASSWORD = wx_SSLCERT_PASSWORD }; var data = FinanceJsonData.ModifyFinancePayWX(findate2); context.Response.Write(data); } if (oper == "integrallist") { var comid = context.Request["comid"].ConvertTo <int>(0); int pageindex = context.Request["pageindex"].ConvertTo <int>(1); int pagesize = context.Request["pagesize"].ConvertTo <int>(10); string key = context.Request["key"].ConvertTo <string>(""); string data = FinanceJsonData.IntegralList(pageindex, pagesize, comid, key); context.Response.Write(data); //context.Response.Write("Hello World"); } if (oper == "integralcount") { var comid = context.Request["comid"].ConvertTo <int>(0); string data = FinanceJsonData.IntegralCount(comid); context.Response.Write(data); //context.Response.Write("Hello World"); } if (oper == "imprestlist") { var comid = context.Request["comid"].ConvertTo <int>(0); int pageindex = context.Request["pageindex"].ConvertTo <int>(1); int pagesize = context.Request["pagesize"].ConvertTo <int>(10); string key = context.Request["key"].ConvertTo <string>(""); string data = FinanceJsonData.ImprestList(pageindex, pagesize, comid, key); context.Response.Write(data); //context.Response.Write("Hello World"); } if (oper == "imprestcount") { var comid = context.Request["comid"].ConvertTo <int>(0); string data = FinanceJsonData.ImprestCount(comid); context.Response.Write(data); //context.Response.Write("Hello World"); } if (oper == "shougongqueren") { var trade_no = context.Request["trade_no"].ConvertTo <string>(""); var order_no = context.Request["order_no"].ConvertTo <int>(0); var total_fee = context.Request["total_fee"].ConvertTo <decimal>(0); string data = FinanceJsonData.shougongqueren(trade_no, order_no, total_fee); context.Response.Write(data); //context.Response.Write("Hello World"); } } }
public string pricedetail = ""; //价格详情(暂时只有用来描述旅游) protected void Page_Load(object sender, EventArgs e) { //RequestUrl = Request.ServerVariables["SERVER_NAME"].ToLower(); string u = Request.ServerVariables["HTTP_USER_AGENT"]; bool bo = detectmobilebrowser.HttpUserAgent(u); if (Request.QueryString["code"] != null) { #region 获取用户openid code = Request.QueryString["code"]; string url = string.Format( "https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appId, appsecret, code); string returnStr = HttpUtil.Send("", url); var obj = JsonConvert.DeserializeObject <ModelOpenID>(returnStr); url = string.Format( "https://api.weixin.qq.com/sns/oauth2/refresh_token?appid={0}&grant_type=refresh_token&refresh_token={1}", appId, obj.refresh_token); returnStr = HttpUtil.Send("", url); obj = JsonConvert.DeserializeObject <ModelOpenID>(returnStr); WriteFile(Server.MapPath("") + "\\Log.txt", obj.access_token); WriteFile(Server.MapPath("") + "\\Log.txt", obj.openid); //url = string.Format( // "https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}", // obj.access_token, obj.openid); //returnStr = HttpUtil.Send("", url); //WriteFile(Server.MapPath("") + "\\Log.txt", returnStr); #endregion /////////////////////////////////////////////////////////////////////////////////////////////// orderid = Request["orderid"].ConvertTo <int>(0); if (orderid != 0) { //根据订单id得到订单信息 B2bOrderData dataorder = new B2bOrderData(); B2b_order modelb2border = dataorder.GetOrderById(orderid); //根据产品id得到产品信息 B2bComProData datapro = new B2bComProData(); B2b_com_pro modelcompro = datapro.GetProById(modelb2border.Pro_id.ToString()); if (modelb2border != null && modelcompro != null) { #region 务类型订单金额 servertype = modelcompro.Server_type; //如果服务类型是“酒店客房”,则根据酒店扩展订单表中房态信息,获取支付金额 if (modelcompro.Server_type == 9) { B2b_order_hotel hotelorder = new B2b_order_hotelData().GetHotelOrderByOrderId(orderid); if (hotelorder != null) { string fangtai = hotelorder.Fangtai; DateTime start_data = hotelorder.Start_date; DateTime end_data = hotelorder.End_date; int bookdaynum = hotelorder.Bookdaynum; decimal everyroomprice = 0; string[] ftstr = fangtai.Split(','); for (int i = 0; i < ftstr.Length; i++) { if (ftstr[i].ConvertTo <decimal>(0) > 0) { everyroomprice += ftstr[i].ConvertTo <decimal>(0); } } price = everyroomprice.ToString(); p_totalprice1 = (modelb2border.U_num * everyroomprice - modelb2border.Integral1 - modelb2border.Imprest1); } else { } } else if (servertype == 2 || servertype == 8)//当地游;跟团游 { string outdate = modelb2border.U_traveldate.ToString("yyyy-MM-dd"); //读取団期价格,根据实际选择的団期报价 B2b_com_LineGroupDate linemode = new B2b_com_LineGroupDateData().GetLineDayGroupDate(DateTime.Parse(outdate), modelcompro.Id); if (linemode != null) { price = linemode.Menprice.ToString(); decimal childreduce = modelcompro.Childreduce; decimal childprice = decimal.Parse(price) - childreduce; if (childprice < 0) { childprice = 0; } pricedetail = modelb2border.U_num + "成人," + modelb2border.Child_u_num + "儿童(成人" + price + "元/人,儿童" + childprice + "元/人)"; p_totalprice1 = (modelb2border.U_num * (linemode.Menprice) + (modelb2border.Child_u_num) * childprice - modelb2border.Integral1 - modelb2border.Imprest1); } } else //票务 { p_totalprice1 = (modelb2border.U_num * modelcompro.Advise_price - modelb2border.Integral1 - modelb2border.Imprest1); price = modelcompro.Advise_price.ToString(); //modelb2border.Pay_price.ToString(); if (price == "0.00" || price == "0") { price = ""; } else { price = CommonFunc.OperTwoDecimal(price); } } #endregion proname = modelcompro.Pro_name; u_name = modelb2border.U_name.Substring(0, 1) + "**"; u_mobile = modelb2border.U_phone.Substring(0, 4) + "****" + modelb2border.U_phone.Substring(modelb2border.U_phone.Length - 3, 3); travel_date = modelb2border.U_traveldate.ToString(); buy_num = modelb2border.U_num; u_youxiaoqi = modelcompro.Pro_start.ToString() + " - " + modelcompro.Pro_end.ToString(); p_totalprice = CommonFunc.OperTwoDecimal(p_totalprice1.ToString()); wxp_totalprice = (p_totalprice1 * 100).ToString("F0"); price = modelb2border.Pay_price.ToString(); price = CommonFunc.OperTwoDecimal(price); comid = modelcompro.Com_id; if (comid != 0) { comName = B2bCompanyData.GetCompany(comid).Com_name; if (bo == false) { Response.Redirect("http://shop" + comid + ".etown.cn"); } } if ((int)modelb2border.Order_state != (int)OrderStatus.WaitPay) { order_status = EnumUtils.GetName((OrderStatus)modelb2border.Order_state); return; } var saleset = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString()); if (saleset != null) { phone = saleset.Service_Phone; } //写入支付数据库,先判定是否有此订单支付 B2bPayData datapay = new B2bPayData(); B2b_pay modelb2pay = datapay.GetPayByoId(orderid); #region 微信支付 //根据产品判断商家是否含有自己的微信支付:a.含有的话支付到商家;b.没有的话支付到平台的微信公众号账户中 B2b_finance_paytype model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(modelcompro.Com_id); if (model != null) { //商家微信支付的所有参数都存在 if (model.Wx_appid != "" && model.Wx_appkey != "" && model.Wx_partnerid != "" && model.Wx_paysignkey != "") { appId = model.Wx_appid; appsecret = model.Wx_appkey; appkey = model.Wx_paysignkey; mchid = model.Wx_partnerid; } else { return; } } else { return; } //创建支付应答对象 var packageReqHandler = new RequestHandler(Context); //初始化 packageReqHandler.init(); timeStamp = TenpayUtil.getTimestamp(); nonceStr = TenpayUtil.getNoncestr(); //设置package订单参数 string productname = modelcompro.Pro_name.Replace("\"", "").Replace("“", "").Replace("'", "").Replace("‘", "").Replace(";", "").Replace(";", ""); packageReqHandler.setParameter("body", productname); //商品信息 127字符 packageReqHandler.setParameter("appid", appId); packageReqHandler.setParameter("mch_id", mchid); packageReqHandler.setParameter("nonce_str", nonceStr.ToLower()); packageReqHandler.setParameter("notify_url", "http://shop" + modelcompro.Com_id + ".etown.cn/wxpay/backpaynotice.aspx"); packageReqHandler.setParameter("openid", obj.openid); packageReqHandler.setParameter("out_trade_no", orderid.ToString()); //商家订单号 packageReqHandler.setParameter("spbill_create_ip", Page.Request.UserHostAddress); //用户的公网ip,不是商户服务器IP packageReqHandler.setParameter("total_fee", wxp_totalprice); //商品金额,以分为单位(money * 100).ToString() packageReqHandler.setParameter("trade_type", "JSAPI"); //获取package包 sign = packageReqHandler.CreateMd5Sign("key", appkey); WriteFile(Server.MapPath("") + "\\Log.txt", sign); packageReqHandler.setParameter("sign", sign); string data = packageReqHandler.parseXML(); WriteFile(Server.MapPath("") + "\\Log.txt", data); string prepayXml = HttpUtil.Send(data, "https://api.mch.weixin.qq.com/pay/unifiedorder"); WriteFile(Server.MapPath("") + "\\Log.txt", prepayXml); //获取预支付ID var xdoc = new XmlDocument(); xdoc.LoadXml(prepayXml); XmlNode xn = xdoc.SelectSingleNode("xml"); XmlNodeList xnl = xn.ChildNodes; if (xnl.Count > 7) { prepayId = xnl[7].InnerText; package = string.Format("prepay_id={0}", prepayId); WriteFile(Server.MapPath("") + "\\Log.txt", package); } //设置支付参数 var paySignReqHandler = new RequestHandler(Context); paySignReqHandler.setParameter("appId", appId); paySignReqHandler.setParameter("timeStamp", timeStamp); paySignReqHandler.setParameter("nonceStr", nonceStr); paySignReqHandler.setParameter("package", package); paySignReqHandler.setParameter("signType", "MD5"); paySign = paySignReqHandler.CreateMd5Sign("key", appkey); WriteFile(Server.MapPath("") + "\\Log.txt", paySign); #endregion //订单提交支付信息 if (modelb2pay == null) { B2b_pay eticket = new B2b_pay() { Id = 0, Oid = orderid, Pay_com = "wx", Pay_name = modelb2border.U_name, Pay_phone = modelb2border.U_phone, Total_fee = p_totalprice1, Trade_no = "", Trade_status = "trade_pendpay", Uip = "" }; int payid = datapay.InsertOrUpdate(eticket); } else { //对已完成支付的,再次提交支付,跳转到订单也或显示此订单已支付 if (modelb2pay.Trade_status != "TRADE_SUCCESS") { //防止金额有所改动 modelb2pay.Pay_com = "wx"; modelb2pay.Total_fee = p_totalprice1; datapay.InsertOrUpdate(modelb2pay); } } } } } }
protected void Page_Load(object sender, EventArgs e) { ResponseHandler resHandler = new ResponseHandler(Context); resHandler.init(); string RequestUrl = Request.ServerVariables["SERVER_NAME"].ToLower(); string u = Request.ServerVariables["HTTP_USER_AGENT"]; //bool bo = detectmobilebrowser.HttpUserAgent(u);//判断是否是手机访问 //if (bo) //{ if (Domain_def.Domain_yanzheng(RequestUrl))//如果符合shop101.etown.cn的格式 { //先通过正则表达式获取COMid int comid = Int32.Parse(Domain_def.Domain_Huoqu(RequestUrl).ToString()); B2b_finance_paytype modelfinance = new B2b_finance_paytypeData().GetFinancePayTypeByComid(comid); resHandler.setKey(modelfinance.Wx_partnerkey, modelfinance.Wx_paysignkey); } else { Response.Write("获取商家支付参数失败"); return; } //} //判断签名 if (resHandler.isTenpaySign()) { if (resHandler.isWXsign()) { //商户在收到后台通知后根据通知ID向财付通发起验证确认,采用后台系统调用交互模式 string notify_id = resHandler.getParameter("notify_id"); //取结果参数做业务处理 string out_trade_no = resHandler.getParameter("out_trade_no"); //财付通订单号 string transaction_id = resHandler.getParameter("transaction_id"); //金额,以分为单位 string total_fee = resHandler.getParameter("total_fee"); //如果有使用折扣券,discount有值,total_fee+discount=原请求的total_fee string discount = resHandler.getParameter("discount"); //支付结果 string trade_state = resHandler.getParameter("trade_state"); //即时到账 if ("0".Equals(trade_state)) { //------------------------------ //处理业务开始 //------------------------------ string retunstr = new PayReturnSendEticketData().PayReturnSendEticket(notify_id, int.Parse(out_trade_no), decimal.Parse(total_fee) / 100, "TRADE_SUCCESS", transaction_id); //对分销充值订单支付返回,对绑定订单进行处理确认 var handdata = OrderJsonData.agentorderpay_Hand(int.Parse(out_trade_no)); //处理数据库逻辑 //注意交易单不要重复处理 //注意判断返回金额 //------------------------------ //处理业务完毕 //------------------------------ //给财付通系统发送成功信息,财付通系统收到此结果后不再进行后续通知 Response.Write("success 后台通知成功"); } else { Response.Write("支付失败"); return; } //回复服务器处理成功 Response.Write("success"); } else {//SHA1签名失败 Response.Write("fail -SHA1 failed"); Response.Write(resHandler.getDebugInfo()); return; } } else {//md5签名失败 Response.Write("fail -md5 failed"); Response.Write(resHandler.getDebugInfo()); return; } }
protected void Page_Load(object sender, EventArgs e) { string sp_billno = Request["order_no"]; string product_name = Request["product_name"]; string order_price = Request["order_price"];; string remarkexplain = Request["remarkexplain"]; string bank_type_value = Request["bank_type_value"].ConvertTo <string>("DEFAULT"); double money = 0; if (null == Request["order_price"]) { Response.Write("支付金额错误!"); Response.End(); return; } try { money = Convert.ToDouble(order_price); } catch { Response.Write("支付金额格式错误!"); Response.End(); return; } if (null == sp_billno) { ////生成订单10位序列号,此处用时间和随机数生成,商户根据自己调整,保证唯一 //sp_billno = DateTime.Now.ToString("HHmmss") + TenpayUtil.BuildRandomStr(4); Response.Write("订单编号错误!"); Response.End(); return; } else { sp_billno = Request["order_no"].ToString(); } //根据订单id得到订单信息 B2bOrderData dataorder = new B2bOrderData(); B2b_order modelb2border = dataorder.GetOrderById(sp_billno.ConvertTo <int>(0)); if (modelb2border == null) { Response.Write("订单信息获取错误!"); Response.End(); return; } //根据产品id得到产品信息 B2bComProData datapro = new B2bComProData(); B2b_com_pro modelcompro = datapro.GetProById(modelb2border.Pro_id.ToString()); if (modelcompro == null) { Response.Write("产品信息错误!"); Response.End(); return; } if (modelb2border != null && modelcompro != null) { //写入支付数据库,先判定是否有此订单支付 //根据订单id得到订单信息 B2bPayData datapay = new B2bPayData(); B2b_pay modelb2pay = datapay.GetPayByoId(sp_billno.ConvertTo <int>(0)); if (modelb2pay != null) { //对已完成支付的,再次提交支付,跳转到订单也或显示此订单已支付 if (modelb2pay.Trade_status == "TRADE_SUCCESS") { Response.Write("订单已经支付过!"); Response.End(); return; } } #region 获得财付通支付参数 tenpay_id,tenpay_key //根据产品判断商家是否含有自己的财付通支付: //a.含有的话支付到商家; //b.没有的话支付到平台财付通账户(易城账户,公司id=106) string tenpay_id = ""; string tenpay_key = ""; B2b_finance_paytype model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(modelcompro.Com_id); if (model != null) { //商家财付通支付的所有参数都存在 if (model.Tenpay_id != "" && model.Tenpay_key != "") { tenpay_id = model.Tenpay_id; tenpay_key = model.Tenpay_key; } else { model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(106); if (model == null) { Response.Write("商户财付通信息设置不完全!"); Response.End(); return; } else { //商家财付通支付的所有参数都存在 if (model.Tenpay_id != "" && model.Tenpay_key != "") { tenpay_id = model.Tenpay_id; tenpay_key = model.Tenpay_key; } else { Response.Write("商户财付通信息设置不完全!!"); Response.End(); return; } } } } else { model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(106); if (model == null) { Response.Write("商户财付通信息设置不完全!"); Response.End(); return; } else { //商家财付通支付的所有参数都存在 if (model.Tenpay_id != "" && model.Tenpay_key != "") { tenpay_id = model.Tenpay_id; tenpay_key = model.Tenpay_key; } else { Response.Write("商户财付通信息设置不完全!!"); Response.End(); return; } } } #endregion if (modelb2pay == null) { B2b_pay eticket = new B2b_pay() { Id = 0, Oid = sp_billno.ConvertTo <int>(0), Pay_com = "mtenpay", Pay_name = modelb2border.U_name, Pay_phone = modelb2border.U_phone, Total_fee = (decimal)modelb2border.Pay_price * modelb2border.U_num + modelb2border.Express - modelb2border.Integral1 - modelb2border.Imprest1, Trade_no = "", Trade_status = "trade_pendpay", Uip = "", comid = model.Com_id }; int payid = datapay.InsertOrUpdate(eticket); } else { //对已完成支付的,再次提交支付,跳转到订单也或显示此订单已支付 if (modelb2pay.Trade_status != "TRADE_SUCCESS") { //防止金额有所改动 modelb2pay.comid = model.Com_id; modelb2pay.Pay_com = "mtenpay"; modelb2pay.Total_fee = (decimal)modelb2border.Pay_price * modelb2border.U_num + modelb2border.Express - modelb2border.Integral1 - modelb2border.Imprest1; datapay.InsertOrUpdate(modelb2pay); } else { Response.Write("订单已经支付过!"); Response.End(); return; } } //创建RequestHandler实例 RequestHandler reqHandler = new RequestHandler(Context); //初始化 reqHandler.init(); //设置密钥 reqHandler.setKey(tenpay_key); reqHandler.setGateUrl("https://gw.tenpay.com/gateway/pay.htm"); //----------------------------- //设置支付参数 //----------------------------- reqHandler.setParameter("partner", tenpay_id); //商户号 reqHandler.setParameter("out_trade_no", sp_billno); //商家订单号 reqHandler.setParameter("total_fee", (money * 100).ToString()); //商品金额,以分为单位 reqHandler.setParameter("return_url", "http://shop" + modelcompro.Com_id.ToString() + ".etown.cn/tenpay/payReturnUrl.aspx"); //交易完成后跳转的URL reqHandler.setParameter("notify_url", "http://shop" + modelcompro.Com_id.ToString() + ".etown.cn/tenpay/payNotifyUrl.aspx"); //接收财付通通知的URL reqHandler.setParameter("body", remarkexplain); //商品描述 reqHandler.setParameter("bank_type", bank_type_value); //银行类型(中介担保时此参数无效) reqHandler.setParameter("spbill_create_ip", Page.Request.UserHostAddress); //用户的公网ip,不是商户服务器IP reqHandler.setParameter("fee_type", "1"); //币种,1人民币 reqHandler.setParameter("subject", product_name); //商品名称(中介交易时必填) //系统可选参数 reqHandler.setParameter("sign_type", "MD5"); reqHandler.setParameter("service_version", "1.0"); reqHandler.setParameter("input_charset", "UTF-8"); reqHandler.setParameter("sign_key_index", "1"); //业务可选参数 reqHandler.setParameter("attach", ""); //附加数据,原样返回 reqHandler.setParameter("product_fee", "0"); //商品费用,必须保证transport_fee + product_fee=total_fee reqHandler.setParameter("transport_fee", "0"); //物流费用,必须保证transport_fee + product_fee=total_fee reqHandler.setParameter("time_start", DateTime.Now.ToString("yyyyMMddHHmmss")); //订单生成时间,格式为yyyymmddhhmmss reqHandler.setParameter("time_expire", ""); //订单失效时间,格式为yyyymmddhhmmss reqHandler.setParameter("buyer_id", ""); //买方财付通账号 reqHandler.setParameter("goods_tag", ""); //商品标记 reqHandler.setParameter("trade_mode", "1"); //交易模式,1即时到账(默认),2中介担保,3后台选择(买家进支付中心列表选择) reqHandler.setParameter("transport_desc", ""); //物流说明 reqHandler.setParameter("trans_type", "1"); //交易类型,1实物交易,2虚拟交易 reqHandler.setParameter("agentid", ""); //平台ID reqHandler.setParameter("agent_type", ""); //代理模式,0无代理(默认),1表示卡易售模式,2表示网店模式 reqHandler.setParameter("seller_id", ""); //卖家商户号,为空则等同于partner //获取请求带参数的url string requestUrl = reqHandler.getRequestURL(); //获取debug信息,建议把请求和debug信息写入日志,方便定位问题 string debuginfo = reqHandler.getDebugInfo(); //Response.Write("<br/>requestUrl:" + requestUrl + "<br/>"); //Response.Write("<br/>debuginfo:" + debuginfo + "<br/>"); //Get的实现方式 string a_link = "<a target=\"_blank\" href=\"" + requestUrl + "\">" + "财付通支付" + "</a>"; //Response.Write(a_link); Response.Redirect(requestUrl); //post实现方式 /* Response.Write("<form method=\"post\" action=\"" + reqHandler.getGateUrl() + "\" >\n"); * Hashtable ht = reqHandler.getAllParameters(); * foreach (DictionaryEntry de in ht) * { * Response.Write("<input type=\"hidden\" name=\"" + de.Key + "\" value=\"" + de.Value + "\" >\n"); * } * Response.Write("<input type=\"submit\" value=\"财付通支付\" >\n</form>\n");*/ } }
protected void Page_Load(object sender, EventArgs e) { //获取访问的商户COMID if (Domain_def.Domain_yanzheng(RequestUrl))//如果符合shop101.etown.cn的格式,则从多微信商户基本信息表中获取comid { comid = Int32.Parse(Domain_def.Domain_Huoqu(RequestUrl)); } else { B2b_company_info companyinfo = B2bCompanyData.GetComId(RequestUrl); if (companyinfo != null) { comid = companyinfo.Com_id; } } #region 获得财付通支付参数 tenpay_id,tenpay_key //根据产品判断商家是否含有自己的财付通支付: //a.含有的话支付到商家; //b.没有的话支付到平台财付通账户(易城账户,公司id=106) string tenpay_id = ""; string tenpay_key = ""; B2b_finance_paytype model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(comid); if (model != null) { //商家财付通支付的所有参数都存在 if (model.Tenpay_id != "" && model.Tenpay_key != "") { tenpay_id = model.Tenpay_id; tenpay_key = model.Tenpay_key; } else { model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(106); if (model == null) { Response.Write("商户财付通信息设置不完全!"); Response.End(); return; } else { //商家财付通支付的所有参数都存在 if (model.Tenpay_id != "" && model.Tenpay_key != "") { tenpay_id = model.Tenpay_id; tenpay_key = model.Tenpay_key; } else { Response.Write("商户财付通信息设置不完全!!"); Response.End(); return; } } } } else { model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(106); if (model == null) { Response.Write("商户财付通信息设置不完全!"); Response.End(); return; } else { //商家财付通支付的所有参数都存在 if (model.Tenpay_id != "" && model.Tenpay_key != "") { tenpay_id = model.Tenpay_id; tenpay_key = model.Tenpay_key; } else { Response.Write("商户财付通信息设置不完全!!"); Response.End(); return; } } } #endregion //创建ResponseHandler实例 ResponseHandler resHandler = new ResponseHandler(Context); resHandler.setKey(tenpay_key); //判断签名 if (resHandler.isTenpaySign()) { ///通知id string notify_id = resHandler.getParameter("notify_id"); //商户订单号 string out_trade_no = resHandler.getParameter("out_trade_no"); //财付通订单号 string transaction_id = resHandler.getParameter("transaction_id"); //金额,以分为单位 string total_fee = resHandler.getParameter("total_fee"); //如果有使用折扣券,discount有值,total_fee+discount=原请求的total_fee string discount = resHandler.getParameter("discount"); //支付结果 string trade_state = resHandler.getParameter("trade_state"); //交易模式,1即时到账,2中介担保 string trade_mode = resHandler.getParameter("trade_mode"); if ("1".Equals(trade_mode)) { //即时到账 if ("0".Equals(trade_state)) { B2bPayData datapay = new B2bPayData(); B2b_pay modelb2pay = datapay.GetPayByoId(out_trade_no.ConvertTo <int>(0)); B2b_order orderdate = new B2bOrderData().GetOrderById(out_trade_no.ConvertTo <int>(0)); if (orderdate != null) { var saleset = B2bCompanySaleSetData.GetDirectSellByComid(orderdate.Comid.ToString()); if (saleset != null) { phone = saleset.Service_Phone; } var comdata = B2bCompanyData.GetCompany(orderdate.Comid); if (saleset != null) { comname = comdata.Com_name; } } if (modelb2pay != null) { total_fee = modelb2pay.Total_fee.ToString(); } string retunstr = new PayReturnSendEticketData().PayReturnSendEticket(notify_id, out_trade_no.ConvertTo <int>(), total_fee.ConvertTo <decimal>(), "TRADE_SUCCESS"); title = "订单支付 成功!"; //Response.Write("即时到帐付款成功"); //给财付通系统发送成功信息,财付通系统收到此结果后不再进行后续通知 } else { title = "即时到账支付失败"; //Response.Write("即时到账支付失败"); } } else if ("2".Equals(trade_mode)) { //中介担保 if ("0".Equals(trade_state)) { title = "中介担保付款成功"; //Response.Write("中介担保付款成功"); //给财付通系统发送成功信息,财付通系统收到此结果后不再进行后续通知 } else { title = "trade_state=" + trade_state; //Response.Write("trade_state=" + trade_state); } } } else { title = "认证签名失败"; //Response.Write("认证签名失败"); } //获取debug信息,建议把debug信息写入日志,方便定位问题 string debuginfo = resHandler.getDebugInfo(); //Response.Write("<br/>debuginfo:" + debuginfo + "<br/>"); }