/// <summary> /// 记录产品价格变动日志 /// </summary> /// <param name="proid"></param> /// <param name="product"></param> /// <returns></returns> public int EditPriceLog(int proid, B2b_com_pro product) { using (var helper = new SqlHelper()) { var result = new InternalB2b_com_pro_pricelog(helper).EditPriceLog(proid, product); return(result); } }
protected void Page_Load(object sender, EventArgs e) { comid = Request["comid"].ConvertTo <int>(0); agentid = Request["agentid"].ConvertTo <int>(0); orderid = Request["orderid"].ConvertTo <int>(0); md5info = Request["md5info"].ConvertTo <string>(""); string Returnmd5 = EncryptionHelper.ToMD5(orderid.ToString() + comid.ToString() + agentid.ToString() + "lixh1210", "UTF-8"); if (Returnmd5 == md5info)//验证MD5 { B2bOrderData orderdate = new B2bOrderData(); B2b_order ordermodel = orderdate.GetOrderById(orderid); if (ordermodel != null) { B2bComProData prodata = new B2bComProData(); B2b_com_pro promodel = prodata.GetProById(ordermodel.Pro_id.ToString()); if (promodel != null) { if (ordermodel.Agentid == agentid && ordermodel.Comid == comid && ordermodel.Warrant_type == 2) { ExcelRender.RenderToExcel( ExcelSqlHelper.ExecuteDataTable(CommandType.Text, "select e_proname [产品名称],pno [票号],pnum [数量] from b2b_eticket where oid=" + orderid), Context, promodel.Pro_name + ordermodel.U_subdate.Date.ToString("yyyyMMdd") + "-" + ordermodel.Id.ToString() + ".xls"); } else { err = "订单参数错误"; } } else { err = "产品错误"; } } else { err = "订单错误"; } } else { err = "验证错误"; } }
internal int InsertPriceLog(int proid, B2b_com_pro product) { string inssql = @"INSERT INTO [EtownDB].[dbo].[b2b_com_pro_pricelog] ([comid] ,[proid] ,[face_price] ,[advise_price] ,[agentsettle_price] ,[Agent1_price] ,[Agent2_price] ,[Agent3_price] ,[opertime] ,[operor]) VALUES (@comid ,@proid ,@face_price ,@advise_price ,@agentsettle_price ,@Agent1_price ,@Agent2_price ,@Agent3_price ,@opertime ,@operor )"; var cmd = sqlHelper.PrepareTextSqlCommand(inssql); cmd.AddParam("@comid", product.Com_id); cmd.AddParam("@proid", proid); cmd.AddParam("@face_price", product.Face_price); cmd.AddParam("@advise_price", product.Advise_price); cmd.AddParam("@agentsettle_price", product.Agentsettle_price); cmd.AddParam("@Agent1_price", product.Agent1_price); cmd.AddParam("@Agent2_price", product.Agent2_price); cmd.AddParam("@Agent3_price", product.Agent3_price); cmd.AddParam("@opertime", DateTime.Now); cmd.AddParam("@operor", product.Createuserid); return(cmd.ExecuteNonQuery()); }
internal int EditPriceLog(int proid, B2b_com_pro product) { if (product.Id == 0)//新增产品 { return(InsertPriceLog(proid, product)); } else //编辑产品 { string selsql = "select count(1) from b2b_com_pro_pricelog where proid=" + proid; var cmd = sqlHelper.PrepareTextSqlCommand(selsql); object o = cmd.ExecuteScalar(); if (o.ToString() == "0") { return(InsertPriceLog(proid, product)); } else { B2b_com_pro_pricelog log = GetlastPriceLog(proid); if (log == null) { return(0); } else { //判断产品价格是否进行了更改 if (log.face_price != product.Face_price || log.advise_price != product.Advise_price || log.agentsettle_price != product.Agentsettle_price || log.Agent1_price != product.Agent1_price || log.Agent2_price != product.Agent2_price || log.Agent3_price != product.Agent3_price) { return(InsertPriceLog(proid, product)); } else { return(1); } } } } }
protected void Page_Load(object sender, EventArgs e) { if (Session["AccountId"] != null) { AccountId = Session["AccountId"].ToString(); AccountName = Session["AccountName"].ToString(); AccountCard = Session["AccountCard"].ToString(); Today = DateTime.Now.ToString("yyyy-MM-dd"); } comid = Request["comid"].ConvertTo <int>(0); proid = Request["proid"].ConvertTo <string>(""); orderid = Request["orderid"].ConvertTo <int>(0); ordertype = Request["ordertype"].ConvertTo <string>("1"); RequestUrl = Request.ServerVariables["SERVER_NAME"].ToLower(); if (Request.QueryString["out_trade_no"] != null) { orderid = Request.QueryString["out_trade_no"].ConvertTo <int>(0); //根据订单id得到订单信息 B2bOrderData dataorder = new B2bOrderData(); B2b_order modelb2border = dataorder.GetOrderById(orderid); proid = modelb2border.Pro_id.ToString(); } //读产品信息 if (proid != "") { //根据产品id得到产品信息 B2bComProData datapro = new B2bComProData(); B2b_com_pro modelcompro = datapro.GetProById(proid); if (modelcompro != null) { proname = modelcompro.Pro_name; comid = modelcompro.Com_id; } } //针对支付同步返回页,暂时无法绑定域名 if (Request.QueryString["out_trade_no"] == null) { //根据域名读取商户ID,如果没有绑定域名直接跳转后台 B2b_company_info companyinfo = B2bCompanyData.GetComId(RequestUrl); if (companyinfo != null) { comid = companyinfo.Com_id; } else { //判定是否为自助域名规则安 shop1.etown.cn if (Domain_def.Domain_yanzheng(RequestUrl)) { comid = Int32.Parse(Domain_def.Domain_Huoqu(RequestUrl)); } else { if (RequestUrl == "shop.etown.cn" || RequestUrl == "test.etown.cn" || RequestUrl == "admin.etown.cn" || RequestUrl == "admin.vctrip.com") { Response.Redirect("/Manage/index1.html"); } else { Response.Redirect("/admin/"); } } } } //判断商户ID(域名未绑定) if (comid != 0) { B2b_company com = B2bCompanyData.GetAllComMsg(comid); B2b_company_saleset comsetinfo = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString()); if (com != null) { Com_name = com.Com_name; Scenic_name = com.Scenic_name; Scenic_intro = com.B2bcompanyinfo.Scenic_intro; if (comsetinfo != null) { if (comsetinfo.Logo != "") { FileUploadModel comlogo = new FileUploadData().GetFileById(int.Parse(comsetinfo.Logo)); if (comlogo != null) { Logourl = "<img src=\"" + fileUrl + comlogo.Relativepath + "\" alt=\"" + Scenic_name + "\" height=\"80\" id=\"imglogo\" />"; } } else { Logourl = ""; } Service_Phone = comsetinfo.Service_Phone; if (Service_Phone != "") { Service_Phone = "客服电话:" + Service_Phone; } Copyright = comsetinfo.Copyright; } } } else { //如果没有商户ID(域名未绑定) 则跳转管理登陆页面。 Response.Redirect("/Manage/index1.html"); } }
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) { Request.ValidateInput(); int orderid = Request["out_trade_no"].ConvertTo <int>(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()); ////////////////////////////////////////////请求参数//////////////////////////////////////////// //必填参数// //请与贵网站订单系统中的唯一订单号匹配 string out_trade_no = orderid.ToString(); //订单名称,显示在支付宝收银台里的“商品名称”里,显示在支付宝的交易管理的“商品名称”的列表里。 string subject = ""; if (modelb2border.Order_type == 2) { subject = "预付款充值"; } else { subject = modelcompro.Pro_name; } //订单描述、订单详细、订单备注,显示在支付宝收银台里的“商品描述”里 string body = "pay"; //订单总金额,显示在支付宝收银台里的“应付总额”里 string total_fee = String.Format("{0:N2}", (modelb2border.U_num * modelb2border.Pay_price + modelb2border.Express) - modelb2border.Integral1 - modelb2border.Imprest1); // if (modelb2border.Shopcartid > 0) //如果是购物车产品重新计算费用 { total_fee = String.Format("{0:N2}", dataorder.GetCartOrderMoneyById(orderid)); } total_fee = total_fee.Replace(",", ""); //扩展功能参数——默认支付方式// //默认支付方式,代码见“即时到帐接口”技术文档 string paymethod = Request["paymethod"]; //默认网银代号,代号列表见“即时到帐接口”技术文档“附录”→“银行列表” string defaultbank = Request["defaultbank"]; //扩展功能参数——防钓鱼// //防钓鱼时间戳 string anti_phishing_key = ""; //获取客户端的IP地址,建议:编写获取客户端IP地址的程序 string exter_invoke_ip = ""; //注意: //请慎重选择是否开启防钓鱼功能 //exter_invoke_ip、anti_phishing_key一旦被设置过,那么它们就会成为必填参数 //建议使用POST方式请求数据 //示例: //exter_invoke_ip = ""; //Service aliQuery_timestamp = new Service(); //anti_phishing_key = aliQuery_timestamp.Query_timestamp(); //获取防钓鱼时间戳函数 //扩展功能参数——其他// //商品展示地址,要用http:// 格式的完整路径,不允许加?id=123这类自定义参数 string show_url = ""; //自定义参数,可存放任何内容(除=、&等特殊字符外),不会显示在页面上 string extra_common_param = ""; //默认买家支付宝账号 string buyer_email = ""; //扩展功能参数——分润(若要使用,请按照注释要求的格式赋值)// //提成类型,该值为固定值:10,不需要修改 string royalty_type = ""; //提成信息集 string royalty_parameters = ""; //注意: //与需要结合商户网站自身情况动态获取每笔交易的各分润收款账号、各分润金额、各分润说明。最多只能设置10条 //各分润金额的总和须小于等于total_fee //提成信息集格式为:收款方Email_1^金额1^备注1|收款方Email_2^金额2^备注2 //示例: //royalty_type = "10"; //royalty_parameters = "[email protected]^0.01^分润备注一|[email protected]^0.01^分润备注二"; //////////////////////////////////////////////////////////////////////////////////////////////// //把请求参数打包成数组 SortedDictionary <string, string> sParaTemp = new SortedDictionary <string, string>(); sParaTemp.Add("payment_type", "1"); sParaTemp.Add("show_url", show_url); sParaTemp.Add("out_trade_no", out_trade_no); sParaTemp.Add("subject", subject); sParaTemp.Add("body", body); sParaTemp.Add("total_fee", total_fee); sParaTemp.Add("paymethod", paymethod); sParaTemp.Add("defaultbank", defaultbank); sParaTemp.Add("anti_phishing_key", anti_phishing_key); sParaTemp.Add("exter_invoke_ip", exter_invoke_ip); sParaTemp.Add("extra_common_param", extra_common_param); sParaTemp.Add("buyer_email", buyer_email); sParaTemp.Add("royalty_type", royalty_type); sParaTemp.Add("royalty_parameters", royalty_parameters); sParaTemp.Add("default_login", "Y"); //写入支付数据库,先判定是否有此订单支付 //根据订单id得到订单信息 B2bPayData datapay = new B2bPayData(); B2b_pay modelb2pay = datapay.GetPayByoId(orderid); if (modelb2pay == null) { B2b_pay eticket = new B2b_pay() { Id = 0, Oid = orderid, Pay_com = "alipay", Pay_name = modelb2border.U_name, Pay_phone = modelb2border.U_phone, Total_fee = decimal.Parse(total_fee), Trade_no = "", Trade_status = "trade_pendpay", Uip = "", comid = 106 }; int payid = datapay.InsertOrUpdate(eticket); } else { //对已完成支付的,再次提交支付,跳转到订单也或显示此订单已支付 if (modelb2pay.Trade_status != "TRADE_SUCCESS") { //防止金额有所改动 modelb2pay.comid = 106; modelb2pay.Pay_com = "alipay"; modelb2pay.Total_fee = decimal.Parse(total_fee); datapay.InsertOrUpdate(modelb2pay); } else { } } //构造即时到帐接口表单提交HTML数据,无需修改 Service ali = new Service(); string sHtmlText = ali.Create_direct_pay_by_user(sParaTemp); Response.Write(sHtmlText); }
protected void Page_Load(object sender, EventArgs e) { int orderid = Request["out_trade_no"].ConvertTo <int>(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) { //支付宝网关地址 string GATEWAY_NEW = "http://wappaygw.alipay.com/service/rest.htm?"; ////////////////////////////////////////////调用授权接口alipay.wap.trade.create.direct获取授权码token//////////////////////////////////////////// //返回格式 string format = "xml"; //必填,不需要修改 //返回格式 string v = "2.0"; //必填,不需要修改 //请求号 string req_id = DateTime.Now.ToString("yyyyMMddHHmmss"); //必填,须保证每次请求都是唯一 //req_data详细信息 //服务器异步通知页面路径 //string notify_url = ""; string notify_url = "http://" + RequestUrl + "/h5/pay_by/notify_url.aspx"; //需http://格式的完整路径,不允许加?id=123这类自定义参数 //页面跳转同步通知页面路径 //string call_back_url = "http://127.0.0.1:64704/WS_WAP_PAYWAP-CSHARP-UTF-8/call_back_url.aspx"; string call_back_url = "http://" + RequestUrl + "/h5/pay_by/call_back_url.aspx"; //需http://格式的完整路径,不允许加?id=123这类自定义参数 //操作中断返回地址 //string merchant_url = "http://v.etown.cn"; string merchant_url = "http://" + RequestUrl + "/h5/Orderlist.aspx"; //用户付款中途退出返回商户的地址。需http://格式的完整路径,不允许加?id=123这类自定义参数 //卖家支付宝帐户 string seller_email = "*****@*****.**"; //必填 //商户订单号 string out_trade_no = modelb2border.Id.ToString(); //商户网站订单系统中唯一订单号,必填 //订单名称 string subject = ""; if (modelb2border.Order_type == 1) { subject = modelcompro.Pro_name; } if (modelb2border.Order_type == 2) { if (modelb2border.serverid == "") { subject = "预付款充值"; } else { subject = "购买服务于押金"; } } //必填 //付款金额 string total_fee = (modelb2border.Pay_price * modelb2border.U_num + modelb2border.Express - modelb2border.Integral1 - modelb2border.Imprest1).ToString(); //必填 if (modelb2border.Child_u_num > 0)//如果是旅游包含儿童的 { total_fee = (Decimal.Parse(total_fee) + modelb2border.Child_u_num * (modelb2border.Pay_price - modelcompro.Childreduce)).ToString(); } //如果是购物车订单重新写金额 if (modelb2border.Shopcartid != 0) { total_fee = dataorder.GetCartOrderMoneyById(orderid).ToString("0.00");; } //请求业务参数详细 string req_dataToken = "<direct_trade_create_req><notify_url>" + notify_url + "</notify_url><call_back_url>" + call_back_url + "</call_back_url><seller_account_name>" + seller_email + "</seller_account_name><out_trade_no>" + out_trade_no + "</out_trade_no><subject>" + subject + "</subject><total_fee>" + total_fee + "</total_fee><merchant_url>" + merchant_url + "</merchant_url></direct_trade_create_req>"; //必填 //把请求参数打包成数组 Dictionary <string, string> sParaTempToken = new Dictionary <string, string>(); sParaTempToken.Add("partner", Config.Partner); sParaTempToken.Add("_input_charset", Config.Input_charset.ToLower()); sParaTempToken.Add("sec_id", Config.Sign_type.ToUpper()); sParaTempToken.Add("service", "alipay.wap.trade.create.direct"); sParaTempToken.Add("format", format); sParaTempToken.Add("v", v); sParaTempToken.Add("req_id", req_id); sParaTempToken.Add("req_data", req_dataToken); //建立请求 string sHtmlTextToken = Submit.BuildRequest(GATEWAY_NEW, sParaTempToken); //URLDECODE返回的信息 Encoding code = Encoding.GetEncoding(Config.Input_charset); sHtmlTextToken = HttpUtility.UrlDecode(sHtmlTextToken, code); //解析远程模拟提交后返回的信息 Dictionary <string, string> dicHtmlTextToken = Submit.ParseResponse(sHtmlTextToken); //获取token string request_token = dicHtmlTextToken["request_token"]; ////////////////////////////////////////////根据授权码token调用交易接口alipay.wap.auth.authAndExecute//////////////////////////////////////////// //业务详细 string req_data = "<auth_and_execute_req><request_token>" + request_token + "</request_token></auth_and_execute_req>"; //必填 //把请求参数打包成数组 Dictionary <string, string> sParaTemp = new Dictionary <string, string>(); sParaTemp.Add("partner", Config.Partner); sParaTemp.Add("_input_charset", Config.Input_charset.ToLower()); sParaTemp.Add("sec_id", Config.Sign_type.ToUpper()); sParaTemp.Add("service", "alipay.wap.auth.authAndExecute"); sParaTemp.Add("format", format); sParaTemp.Add("v", v); sParaTemp.Add("req_data", req_data); //写入支付数据库,先判定是否有此订单支付 //根据订单id得到订单信息 B2bPayData datapay = new B2bPayData(); B2b_pay modelb2pay = datapay.GetPayByoId(orderid); if (modelb2pay == null) { B2b_pay eticket = new B2b_pay() { Id = 0, Oid = orderid, Pay_com = "malipay", Pay_name = modelb2border.U_name, Pay_phone = modelb2border.U_phone, Total_fee = decimal.Parse(total_fee), Trade_no = "", Trade_status = "trade_pendpay", Uip = "", comid = 106 }; int payid = datapay.InsertOrUpdate(eticket); } else { //对已完成支付的,再次提交支付,跳转到订单也或显示此订单已支付 if (modelb2pay.Trade_status != "TRADE_SUCCESS") { //防止金额有所改动 modelb2pay.comid = 106; modelb2pay.Pay_com = "malipay"; modelb2pay.Total_fee = decimal.Parse(total_fee); datapay.InsertOrUpdate(modelb2pay); } } //建立请求 string sHtmlText = Submit.BuildRequest(GATEWAY_NEW, sParaTemp, "get", "确认"); Response.Write(sHtmlText); } }
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); } } } }
protected void Page_Load(object sender, EventArgs e) { //返回订单号 orderid = Request["orderid"].ConvertTo <int>(0); agentorderid = Request["agentorderid"].ConvertTo <int>(0); act = Request["act"].ConvertTo <string>(""); 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 ((int)modelb2border.Order_state == (int)OrderStatus.WaitPay) { 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; p_totalprice = (int)(modelb2border.U_num * modelb2border.Pay_price); ordertype = modelb2border.Order_type; if (ordertype == 2) { proname = "预付款充值"; u_youxiaoqi = ""; } else { proname = modelcompro.Pro_name; u_youxiaoqi = modelcompro.Pro_start.ToString() + " - " + modelcompro.Pro_end.ToString(); } } comid_temp = Request["comid"].ConvertTo <int>(0); B2b_company companyinfo = B2bCompanyData.GetAllComMsg(comid_temp); if (companyinfo != null) { company = companyinfo.Com_name; } if (Session["Agentid"] != null) { //账户信息 Agentid = Int32.Parse(Session["Agentid"].ToString()); Account = Session["Account"].ToString(); Agent_company agenginfo = AgentCompanyData.GetAgentWarrant(Agentid, comid_temp); if (agenginfo != null) { yufukuan = "您预付款:" + agenginfo.Imprest + " 元"; Warrant_type = agenginfo.Warrant_type; } } } }
protected void Page_Load(object sender, EventArgs e) { string u = Request.ServerVariables["HTTP_USER_AGENT"]; bo = detectmobilebrowser.HttpUserAgent(u); Dictionary <string, string> sPara = GetRequestGet(); if (sPara.Count > 0)//判断是否有带返回参数 { Notify aliNotify = new Notify(); bool verifyResult = aliNotify.VerifyReturn(sPara, Request.QueryString["sign"]); string trade_no = Request["trade_no"]; //支付宝交易号 int order_no = Int32.Parse(Request["out_trade_no"]); //获取订单号 orderid = order_no; decimal total_fee = 0; //获取总金额 if (verifyResult) //验证成功 { ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //请在这里加上商户的业务逻辑程序代码 //获取访问的商户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; } } //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表 ////商户订单号 //string out_trade_no = Request.QueryString["out_trade_no"]; ////支付宝交易号 //string trade_no = Request.QueryString["trade_no"]; B2bPayData datapay = new B2bPayData(); B2b_pay modelb2pay = datapay.GetPayByoId(order_no); md5 = EncryptionHelper.ToMD5(order_no.ToString() + "lixh1210", "UTF-8"); B2b_order orderdate = new B2bOrderData().GetOrderById(order_no); if (orderdate != null) { order_type = orderdate.Order_type; 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; } //根据产品id得到产品信息 B2bComProData datapro = new B2bComProData(); B2b_com_pro modelcompro = datapro.GetProById(orderdate.Pro_id.ToString(), orderdate.Speciid, orderdate.channelcoachid); if (modelcompro != null) { servertype = modelcompro.Server_type; } } if (modelb2pay != null) { total_fee = modelb2pay.Total_fee; } ////交易状态 string result = Request.QueryString["result"]; //判断是否在商户网站中已经做过了这次通知返回的处理 //如果没有做过处理,那么执行商户的业务程序 //如果有做过处理,那么不执行商户的业务程序 //打印页面 //Response.Write("验证成功<br />");订单支付 成功! string retunstr = new PayReturnSendEticketData().PayReturnSendEticket(trade_no, order_no, total_fee, result); title = "订单支付 成功!"; //对分销充值订单支付返回,对绑定订单进行处理确认 var handdata = OrderJsonData.agentorderpay_Hand(order_no); //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— ///////////////////////////////////////////////////////////////////////////////////////////////////////////// } else//验证失败 { //Response.Write("验证失败"); title = "订单支付 出现错误"; } } else { //Response.Write("无返回参数"); title = "订单 没有 支付"; } }
protected void Page_Load(object sender, EventArgs e) { string u = Request.ServerVariables["HTTP_USER_AGENT"]; bool bo = detectmobilebrowser.HttpUserAgent(u); //返回订单号 orderid = Request["orderid"].ConvertTo <int>(0); agentorderid = Request["agentorderid"].ConvertTo <int>(0); if (orderid != 0) { //根据订单id得到订单信息 B2bOrderData dataorder = new B2bOrderData(); B2b_order modelb2border = dataorder.GetOrderById(orderid); if (modelb2border != null) { if (!bo) { Response.Redirect("/ui/vasui/pay.aspx?orderid=" + orderid + "&comid=" + modelb2border.Comid); } } //取消超时订单 B2b_com_pro pro_cannelorder = new B2b_com_pro(); pro_cannelorder.Server_type = 0; int rs_cannelorder = new B2bComProData().CancelOvertimeOrder(pro_cannelorder); orderstatus = EnumUtils.GetName((OrderStatus)modelb2border.Order_state); order_state = modelb2border.Order_state; paystatus = modelb2border.Pay_state;//1未支付;2已支付 order_type = modelb2border.Order_type; subtime = modelb2border.U_subdate.ToString("yyyy/MM/dd hh:mm:ss"); comid = modelb2border.Comid; #region 正常订单 if (modelb2border.Order_type == 1) { //根据产品id得到产品信息 B2bComProData datapro = new B2bComProData(); B2b_com_pro modelcompro = datapro.GetProById(modelb2border.Pro_id.ToString(), modelb2border.Speciid); ////如果订单“未付款”显示支付及订单信息 //if ((int)modelb2border.Order_state == (int)OrderStatus.WaitPay) //{ if (modelb2border.U_name != "") { u_name = modelb2border.U_name.Substring(0, 1) + "**"; } else { u_name = "**"; } if (modelb2border.U_phone != "") { u_mobile = modelb2border.U_phone.Substring(0, 4) + "****" + modelb2border.U_phone.Substring(modelb2border.U_phone.Length - 3, 3); } else { u_mobile = "****"; } travel_date = modelb2border.U_traveldate.ToString(); buy_num = modelb2border.U_num; if (modelcompro != null) { u_youxiaoqi = modelcompro.Pro_start.ToString() + " - " + modelcompro.Pro_end.ToString(); travel_proid = modelcompro.Travelproductid; comid = modelcompro.Com_id; proname = modelcompro.Pro_name; servertype = modelcompro.Server_type; Ispanicbuy = modelcompro.Ispanicbuy; } #region 如果服务类型是“酒店客房”,则根据酒店扩展订单表中房态信息,获取支付金额 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_totalprice = (modelb2border.U_num * everyroomprice - modelb2border.Integral1 - modelb2border.Imprest1); } } #endregion #region 当地游;跟团游;旅游大巴,获取支付金额 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(); if (servertype == 2 || servertype == 8) { 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_totalprice = (modelb2border.U_num * (linemode.Menprice) + (modelb2border.Child_u_num) * childprice - modelb2border.Integral1 - modelb2border.Imprest1); } else //旅游大巴:没有儿童减免 { pricedetail = modelb2border.U_num + "人(" + price + "元/人)"; p_totalprice = (modelb2border.U_num * (linemode.Menprice) - modelb2border.Integral1 - modelb2border.Imprest1); } } } else if (servertype == 10) { pricedetail = modelb2border.U_num + "人(" + modelb2border.Pay_price.ToString("0.00") + "元/人)"; p_totalprice = (modelb2border.U_num * (modelb2border.Pay_price) - modelb2border.Integral1 - modelb2border.Imprest1); } #endregion #region 票务、实物,获取支付金额 else //票务 { p_totalprice = (modelb2border.U_num * modelb2border.Pay_price - modelb2border.Integral1 - modelb2border.Imprest1); price = modelb2border.Pay_price.ToString(); //modelb2border.Pay_price.ToString(); if (price == "0.00" || price == "0") { price = ""; } else { price = CommonFunc.OperTwoDecimal(price); } } #endregion //} #region 获得服务电话 var saleset = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString()); if (saleset != null) { phone = saleset.Service_Phone; } if (modelcompro != null) { //查询项目电话,如果有项目电话调取项目电话 var projectdata = new B2b_com_projectData(); var projectmodel = projectdata.GetProject(modelcompro.Projectid, comid); if (projectmodel != null) { if (projectmodel.Mobile != "") { phone = projectmodel.Mobile; } } } #endregion } #endregion #region 充值订单 if (modelb2border.Order_type == 2) { if (modelb2border.serverid != "") { proname = "购买服务与押金"; } else if (modelb2border.payorder == 1) { proname = "快速支付"; } else { proname = "预付款充值"; } //ordertype=2 充值订单会传递过来值 if (comid == 0) { comid = Request["comid"].ConvertTo <int>(0); } p_totalprice = (modelb2border.U_num * modelb2border.Pay_price); //获得商户电话 var saleset = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString()); if (saleset != null) { phone = saleset.Service_Phone; } } #endregion p_totalpricedesc = CommonFunc.OperTwoDecimal(p_totalprice.ToString()); #region 统一获得商户名称 和 微信支付链接 if (comid != 0) { wxpaylinkurl = WeiXinJsonData.GetFollowOpenLinkUrlAboutPay(comid, "http://shop" + comid + ".etown.cn/wxpay/payment_" + orderid + "_1.aspx"); comName = B2bCompanyData.GetCompany(comid).Com_name; } #endregion } }
public string nativePayImgurl = "/Images/defaultThumb.png"; //微信原生支付二维码 protected void Page_Load(object sender, EventArgs e) { //返回订单号 orderid = Request["orderid"].ConvertTo <int>(0); #region 正常订单支付操作 if (orderid != 0) { string u = Request.ServerVariables["HTTP_USER_AGENT"]; bool bo = detectmobilebrowser.HttpUserAgent(u); if (bo) { Response.Redirect("/h5/pay.aspx?orderid=" + orderid); } //根据订单id得到订单信息 B2bOrderData dataorder = new B2bOrderData(); B2b_order modelb2border = dataorder.GetOrderById(orderid); cart = modelb2border.Shopcartid;//不等于0则为购物车订单 //根据产品id得到产品信息 B2bComProData datapro = new B2bComProData(); B2b_com_pro modelcompro = datapro.GetProById(modelb2border.Pro_id.ToString(), modelb2border.Speciid); if (modelcompro != null) { Server_type = modelcompro.Server_type; comid = modelcompro.Com_id; //绿野 不显示头部 if (modelcompro.Com_id == 2553) { viewtop = 0; } string urljson = WeiXinJsonData.getNativePayQrcode(orderid, comid, "oid"); try { XmlDocument retdoc = (XmlDocument)JsonConvert.DeserializeXmlNode("{\"root\":" + urljson + "}"); XmlElement retroot = retdoc.DocumentElement; string type = retroot.SelectSingleNode("type").InnerText; string msg = retroot.SelectSingleNode("msg").InnerText; nativePayImgurl = "/ui/pmui/eticket/showtcode.aspx?pno=" + msg; } catch { } } else { //产品错误 } //如果订单“未付款”现实支付及订单信息 if ((int)modelb2border.Order_state == (int)OrderStatus.WaitPay) { 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; p_totalprice = CommonFunc.OperTwoDecimal((modelb2border.U_num * modelb2border.Pay_price + modelb2border.Express - modelb2border.Integral1 - modelb2border.Imprest1).ToString()); if (modelb2border.Child_u_num > 0)//如果是旅游包含儿童的 { p_totalprice = (Decimal.Parse(p_totalprice) + modelb2border.Child_u_num * (modelb2border.Pay_price - modelcompro.Childreduce)).ToString(); } ordertype = modelb2border.Order_type; if (ordertype == 2) { proname = "预付款充值"; u_youxiaoqi = ""; } else { proname = modelcompro.Pro_name; if (modelcompro.Server_type == 10) {//服务类型是:旅游大巴 u_youxiaoqi = modelb2border.U_traveldate.ToString("yyyy-MM-dd"); } else { u_youxiaoqi = modelcompro.Pro_start.ToString() + " - " + modelcompro.Pro_end.ToString(); } } //如果是购物车订单再次处理 if (cart > 0) { proname = dataorder.GetCartOrderProById(orderid); p_totalprice = dataorder.GetCartOrderMoneyById(orderid).ToString("0.00"); buy_num = 1; } tenpay_url = string.Format("/tenpay/payRequest.aspx?order_no={0}&product_name={1}&order_price={2}&remarkexplain={3}", orderid, Server.UrlEncode(proname), Server.UrlEncode(p_totalprice), Server.UrlEncode(proname)); if (Server_type == 9) { //订房查询入住 及离店日期 var hoteldata = new B2b_order_hotelData(); var hotelmodel = hoteldata.GetHotelOrderByOrderId(orderid); if (hotelmodel != null) { stardate = hotelmodel.Start_date.ToString("yyyy-MM-dd"); enddate = hotelmodel.End_date.ToString("yyyy-MM-dd"); } } } } #endregion }
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 } } }
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) { int order_no = Int32.Parse(Request.QueryString["out_trade_no"]); //获取订单号 //返回订单号 int orderid = order_no; 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()); //生成电子码 int u_num = modelb2border.U_num; int comid = modelcompro.Com_id; RandomCodeData datarandomcode = new RandomCodeData(); RandomCode modelrandomcode = datarandomcode.GetRandomCode();//得到未用随机码对象 //设置取出的电子码状态为1(已使用) modelrandomcode.State = 1; int randomcodeid = datarandomcode.InsertOrUpdate(modelrandomcode); string eticketcode = "9" + comid.ToString() + modelrandomcode.Code.ToString(); string sendstr = ""; //录入电子票列表 B2bEticketData eticketdata = new B2bEticketData(); B2b_eticket eticket = new B2b_eticket() { Id = 0, Com_id = comid, Pro_id = modelcompro.Id, Agent_id = 0,//直销 Pno = eticketcode, E_type = (int)EticketCodeType.ShuZiMa, Pnum = modelb2border.U_num, Use_pnum = modelb2border.U_num, E_proname = modelcompro.Pro_name, E_face_price = modelcompro.Face_price, E_sale_price = modelcompro.Advise_price, E_cost_price = modelcompro.Agentsettle_price, V_state = (int)EticketCodeStatus.NotValidate, Send_state = (int)EticketCodeSendStatus.NotSend, Subdate = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")) }; int eticketid = eticketdata.InsertOrUpdate(eticket); if (eticketid > 0) { //生成电子码短信,稍后可单独写类或写到数据库中 diveticketcode.InnerText = "电子码生成成功:" + eticketcode; sendstr = "感谢您订购" + modelcompro.Pro_name + modelb2border.U_num + "张" + ",电子码:" + eticketcode + " 有效期至:" + modelcompro.Pro_end.ToString("yyyy-MM-dd"); } else { diveticketcode.InnerText = "电子码生成ERROR"; } } }
private string signkey = "146491#%##^11"; //签名秘钥,由慧择指定 //承保 public string Hzins_OrderApply(B2b_com_pro modelcompro, B2b_order modelb2border) { string transNo = modelb2border.Id.ToString(); //(以后需要修改为渠道商订单号)交易流水号,每次请求不能相同 string caseCode = modelcompro.Service_proid; //(以后需要更改为正式产品)方案代码,每一款保险公司产品的方案代码都不相同,由慧择分配 //签名,预签名数据:密钥+渠道商身份标识+交易流水号+方案代码 string sign = EncryptionHelper.ToMD5(signkey + partnerId + transNo + caseCode, "UTF-8"); sign = sign.ToLower(); //根据订单号 得到慧择网 承保信息 Api_hzins_OrderApplyReq_Application mapplication = new Api_hzins_OrderApplyReq_ApplicationData().GetOrderApplyReq_Application(modelb2border.Id); if (mapplication == null) { TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\BaoxianLog.txt", "fail1"); return("fail"); } Api_hzins_OrderApplyReq_applicantInfo mapplicationinfo = new Api_hzins_OrderApplyReq_applicantInfoData().GetOrderApplyReq_applicantInfo(modelb2border.Id); if (mapplicationinfo == null) { TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\BaoxianLog.txt", "fail2"); return("fail"); } List <Api_hzins_OrderApplyReq_insurantInfo> listinsurantInfo = new Api_hzins_OrderApplyReq_insurantInfoData().GetOrderApplyReq_insurantInfo(modelb2border.Id); if (listinsurantInfo == null) { TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\BaoxianLog.txt", "fail3"); return("fail"); } else { if (listinsurantInfo.Count == 0) { TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\BaoxianLog.txt", "fail4"); return("fail"); } } string s = "{" + "\"partnerId\":" + partnerId + "," + "\"transNo\":\"" + transNo + "\"," + "\"caseCode\":\"" + caseCode + "\"," + "\"sign\":\"" + sign + "\"," + "\"applicationData\":{" + "\"applicationDate\":\"" + mapplication.applicationDate + "\"," + "\"startDate\":\"" + mapplication.startDate + "\"," + "\"endDate\":\"" + mapplication.endDate + "\"" + "}," + "\"applicantInfo\":{" + "\"cName\":\"" + mapplicationinfo.cName + "\"," + "\"eName\":\"" + mapplicationinfo.eName + "\"," + "\"cardType\":\"" + mapplicationinfo.cardType + "\"," + "\"cardCode\":\"" + mapplicationinfo.cardCode + "\"," + "\"sex\":" + mapplicationinfo.sex + "," + "\"birthday\":\"" + mapplicationinfo.birthday + "\"," + "\"mobile\":\"" + mapplicationinfo.mobile + "\"," + "\"email\":\"" + mapplicationinfo.email + "\"," + "\"jobInfo\":null" + "}," + "\"insurantInfos\":["; string insurantInfosstr = ""; foreach (Api_hzins_OrderApplyReq_insurantInfo minsinfo in listinsurantInfo) { if (minsinfo != null) { insurantInfosstr += "{" + "\"insurantId\":" + minsinfo.insurantId + "," + "\"cName\":\"" + minsinfo.cName + "\"," + "\"eName\":\"" + minsinfo.eName + "\"," + "\"sex\":" + minsinfo.sex + "," + "\"cardType\":" + minsinfo.cardType + "," + "\"cardCode\":\"" + minsinfo.cardCode + "\"," + "\"birthday\":\"" + minsinfo.birthday + "\"," + "\"relationId\":" + minsinfo.relationId + "," + "\"count\":" + minsinfo.count + "," + "\"singlePrice\":" + minsinfo.singlePrice + "," + "\"fltNo\":null," + "\"fltDate\":null," + "\"city\":\"null\"," + "\"tripPurposeId\":" + minsinfo.tripPurposeId + "," + "\"destination\":null," + "\"visaCity\":null," + "\"jobInfo\":null," + "\"mobile\":null" + "},"; } } insurantInfosstr = insurantInfosstr.Substring(0, insurantInfosstr.Length - 1); s += insurantInfosstr + "]," + "\"extendInfo\":{" + "\"userId\":null," + "\"email\":null," + "\"userName\":null," + "\"phone\":null" + "}" + "}"; string str = new GetUrlData().HttpPostJson("http://channel.hzins.com/api/orderApply", s.Trim()); //录入和慧择网交互日志 ApiLog mapilog = new ApiLog { Id = 0, request_type = "orderApply", Serviceid = 2, Str = s.Trim(), Subdate = DateTime.Now, ReturnStr = str, ReturnSubdate = DateTime.Now, Errmsg = "", }; int ins = new ApiLogData().EditLog(mapilog); //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\BaoxianLog.txt", "发送信息:" + s.Trim() + "<br>" + "返回信息:" + str); return(str); }