using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Data.SqlClient; using System.Xml; using System.Globalization; using System.Text; using System.Web.Script.Serialization; namespace Mtxfw.shop { public partial class kjpay_notify : System.Web.UI.Page { Mtxfw.DAL.user_info daoUser = new Mtxfw.DAL.user_info(); Mtxfw.DAL.order_info daoorder = new Mtxfw.DAL.order_info(); Mtxfw.DAL.user_Results daoResults = new Mtxfw.DAL.user_Results(); DAL.user_Results_jl2 daojl2 = new DAL.user_Results_jl2(); Mtxfw.DAL.order_product_info daoorderproduct = new Mtxfw.DAL.order_product_info(); private Mtxfw.Utility.Config config = new Mtxfw.Utility.Config(""); DAL.Article daoArt = new DAL.Article(); DAL.user_live daolive = new DAL.user_live(); DAL.user_proxy daoproxy = new DAL.user_proxy(); DAL.user_jjfp daojjfp = new DAL.user_jjfp(); Mtxfw.DAL.P_Product daoProduct = new Mtxfw.DAL.P_Product(); int gtype = 0; public string APIv3key = ""; protected void Page_Load(object sender, EventArgs e) { string strContent = ""; try { string hostname = Request.Url.Host; byte[] bytes = Request.BinaryRead(Request.ContentLength); strContent = System.Text.Encoding.UTF8.GetString(bytes); kjpay_notify_returns rmsg = (kjpay_notify_returns)Fromkjpay_notify_returns(strContent); string biz_code = rmsg.biz_code; string biz_msg = rmsg.biz_msg; string data = rmsg.data; string rand_str = rmsg.rand_str; string sign_type = rmsg.sign_type; string mch_no = rmsg.mch_no; string sign = rmsg.sign; SortedDictionary pay_dic = new SortedDictionary(); pay_dic.Add("biz_code", biz_code); pay_dic.Add("biz_msg", biz_msg); pay_dic.Add("data", data); pay_dic.Add("rand_str", rand_str); pay_dic.Add("sign_type", sign_type); pay_dic.Add("mch_no", mch_no); bool IFSign = Mtxfw.Utility.Interface_WxPay.BuildRequest1(pay_dic, sign, config.hjpay_PUBLIC_KEY); DateTime dt = DateTime.Now; Model.User_Errlog mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "kjpay_notify"; mo.addtime = dt; mo.ErrBody = biz_code + "|" + biz_msg + "|" + data + "|" + rand_str + "|" + sign_type + "|" + mch_no; mo.ErrBody2 = sign + "|" + IFSign.ToString(); new DAL.User_Errlog().Add(mo); //Mtxfw.Utility.Common.WriteHtml("/weixin/kjpay_notify.txt", biz_code + "|" + biz_msg + "|" + data + "|" + rand_str + "|" + sign_type + "|" + mch_no + "|" + sign + "|" + IFSign.ToString()); if (IFSign && biz_code == "JS000000") { kjpay_notify_data kjdata = (kjpay_notify_data)Fromkjpay_notify_data(data); if (kjdata.order_status == "P1000") { /******************************** * * 自己业务处理 * *********************************/ Mtxfw.Model.user_Results ReModel = daoResults.GetModel2(2, kjdata.mch_order_no); if (ReModel != null) { if (ReModel.Seef == 0) { ReModel.Seef = 1; daoResults.UpdateSeef(1, DateTime.Now, ReModel.Id); Mtxfw.Model.user_info umodel = daoUser.GetModel(ReModel.MemberId); if (umodel != null) { //增加买家余额 Model.user_Results_jl2 mjl2 = new Model.user_Results_jl2(); int type = Convert.ToInt32(ReModel.b18.ToString().Split('.')[0]); if (type == 3) { int gid = Convert.ToInt32(ReModel.b1.ToString().Split('.')[0]); int liveid = Convert.ToInt32(ReModel.b2.ToString().Split('.')[0]); int receiverid = Convert.ToInt32(ReModel.b3.ToString().Split('.')[0]); Mtxfw.Model.user_Goods gmodel = new Mtxfw.DAL.user_Goods().GetModel(gid); if (gmodel != null) { Mtxfw.Model.Article model = new Mtxfw.Model.Article(); model.senderid = umodel.Id; model.receiverid = receiverid; model.Title = "直播礼物"; model.ParentID = 21; model.CategoryId = liveid.ToString(); model.AddTime = dt; model.Author = ""; model.Content = "赠送礼物:"; model.Paths = ""; model.Content2 = ""; model.Paths2 = ""; model.KeyWords = ""; model.media_id = ""; model.thumb_media_id = ""; model.wtype = 0; model.wtype2 = 0; model.LinkID = 0; model.Seef = 0; model.gtype = ReModel.gtype; daoArt.Add(model); Mtxfw.Model.user_info umodel2 = new Mtxfw.DAL.user_info().GetModel(receiverid); if (umodel2 != null) { Model.User_CZ_log logmodel = new Model.User_CZ_log(); logmodel.MemberId = umodel.Id; logmodel.AddTime = dt; logmodel.IP = Mtxfw.Utility.Common.GetIP; logmodel.Body = "给" + umodel2.NCName + "赠送了礼物"; logmodel.UType = 3; logmodel.gtype = ReModel.gtype; new DAL.User_CZ_log().Add(logmodel); } new Mtxfw.DAL.user_live().addSel("lzhd", 1, liveid); } } else if (type == 2) { string[] aResultIdS = ReModel.OrderIds.Split(','); for (int i = 0; i < aResultIdS.Length; i++) { if (aResultIdS[i] != "") { daoResults.UpdateSeef(1, dt, Convert.ToInt64(aResultIdS[i])); } } mjl2 = new Model.user_Results_jl2(); mjl2.MemberId = umodel.Id; mjl2.MemberId2 = 0; mjl2.Addmoney = ReModel.Totalmoney; mjl2.Cutmoney = 0; mjl2.Totalmoney = (umodel.umoney - umodel.umoney17 + ReModel.Totalmoney); mjl2.addtime = dt; mjl2.BZContent = "快捷支付购买优惠券,充值成功"; mjl2.PayID = ""; mjl2.OrdersIDs = ""; mjl2.OrdersID = 0; mjl2.utype = 0; mjl2.utype2 = 0; mjl2.Seef = -1; mjl2.seeftime = dt; mjl2.gtype = 0; new Mtxfw.DAL.user_Results_jl2().Add(mjl2); //减少买家余额 new Mtxfw.DAL.user_info().UpdateMoney("umoney17", -ReModel.Totalmoney, umodel.Id); Model.User_CZ_log logmodel = new Model.User_CZ_log(); logmodel.MemberId = umodel.Id; logmodel.AddTime = dt; logmodel.IP = Mtxfw.Utility.Common.GetIP; logmodel.Body = "快捷支付购买优惠券成功"; logmodel.UType = 3; logmodel.gtype = ReModel.gtype; new DAL.User_CZ_log().Add(logmodel); } else if (type == 1) { Int64 ResultId = Convert.ToInt64(ReModel.OrderIds); Mtxfw.Model.user_Results ReModel0 = daoResults.GetModel(ResultId); if (ReModel0 != null) { daoResults.UpdateSeef(1, dt, ReModel0.Id); DateTime regtime1 = DateTime.Now.AddDays(ReModel0.b2); if (umodel.uLevel4 == 1) { regtime1 = umodel.RegTime1.AddDays(ReModel0.b2); } daoUser.UpdateuLevel("uLevel4", 1, umodel.Id); daoUser.UpdatePassword("regtime1", regtime1.ToString(), umodel.Id); } } else { mjl2 = new Model.user_Results_jl2(); mjl2.MemberId = umodel.Id; mjl2.MemberId2 = 0; mjl2.Addmoney = ReModel.Totalmoney; mjl2.Cutmoney = 0; mjl2.Totalmoney = (umodel.umoney - umodel.umoney17 + ReModel.Totalmoney); mjl2.addtime = dt; mjl2.BZContent = "快捷支付购买商品,充值成功"; mjl2.PayID = ""; mjl2.OrdersIDs = ""; mjl2.OrdersID = 0; mjl2.utype = 1; mjl2.utype2 = 0; mjl2.Seef = -1; mjl2.seeftime = dt; mjl2.gtype = gtype; new Mtxfw.DAL.user_Results_jl2().Add(mjl2); mjl2 = new Model.user_Results_jl2(); mjl2.MemberId = umodel.Id; mjl2.MemberId2 = 0; mjl2.Addmoney = -ReModel.Totalmoney; mjl2.Cutmoney = 0; mjl2.Totalmoney = (umodel.umoney - umodel.umoney17); mjl2.addtime = dt; mjl2.BZContent = "快捷支付购买商品,扣款成功"; mjl2.PayID = ""; mjl2.OrdersIDs = ""; mjl2.OrdersID = 0; mjl2.utype = 1; mjl2.utype2 = 0; mjl2.Seef = -1; mjl2.seeftime = dt; mjl2.gtype = gtype; new Mtxfw.DAL.user_Results_jl2().Add(mjl2); Model.User_CZ_log logmodel = new Model.User_CZ_log(); logmodel.MemberId = umodel.Id; logmodel.AddTime = dt; logmodel.IP = Mtxfw.Utility.Common.GetIP; logmodel.Body = "快捷支付购买商品成功"; logmodel.UType = 3; logmodel.gtype = ReModel.gtype; new DAL.User_CZ_log().Add(logmodel); int liveid = 0, poid = 0, pcount = 0, ypcount = 0, P_UserID = 0; string OID = "", pncname = (umodel.NCName == "" ? umodel.RealName : umodel.NCName); if (ReModel.OrderIds != "") { Double ZSubTotal = 0.00, ZSubTotal0 = 0.00, ZSubTotal1 = 0.00, ZSubTotal2 = 0.00, ZSubTotal3 = 0.00, zyunfei = 0.00; int utype = -1, zftype = -1, Totalnum = 0, ptype = 0; string province = "", city = "", county = ""; string[] AOrderIDs = ReModel.OrderIds.Split(','); for (int i = 0; i < AOrderIDs.Length; i++) { Mtxfw.Model.order_info OrderModel = daoorder.GetModel(int.Parse(AOrderIDs[i])); if (OrderModel != null) { if (OrderModel.O_Payed == "" || OrderModel.O_Payed == "0") { OID = OrderModel.orderid; zyunfei += OrderModel.Totalprice1; P_UserID = OrderModel.MemberId; ZSubTotal += OrderModel.Totalprice; ZSubTotal0 += OrderModel.Totalprice0; ZSubTotal1 += OrderModel.Totalprice2; ZSubTotal2 += OrderModel.Totalprice3; ZSubTotal3 += OrderModel.Totalprice4; if (OrderModel.ttype == 4) { liveid = OrderModel.pid; } Totalnum += OrderModel.Totalnum; if (OrderModel.ttype == 6 && OrderModel.ptype == 1) { poid = OrderModel.poid; pcount = OrderModel.pcount; ypcount = OrderModel.ypcount; } if (utype == -1) { utype = OrderModel.ttype; ptype = OrderModel.ptype; zftype = Convert.ToInt32(OrderModel.utype); province = OrderModel.Province; city = OrderModel.City; county = OrderModel.County; } } } } ZSubTotal = Convert.ToDouble(ZSubTotal.ToString("f2")); ZSubTotal0 = Convert.ToDouble(ZSubTotal0.ToString("f2")); ZSubTotal1 = Convert.ToDouble(ZSubTotal1.ToString("f2")); ZSubTotal2 = Convert.ToDouble(ZSubTotal2.ToString("f2")); ZSubTotal3 = Convert.ToDouble(ZSubTotal3.ToString("f2")); zyunfei = Convert.ToDouble(zyunfei.ToString("f2")); for (int i = 0; i < AOrderIDs.Length; i++) { Mtxfw.Model.order_info OrderModel = daoorder.GetModel(int.Parse(AOrderIDs[i])); if (OrderModel != null) { if (OrderModel.O_Payed == "" || OrderModel.O_Payed == "0") { if (OrderModel.ttype == 6 && OrderModel.ptype == 1) { daoProduct.UpdateJiangLi(OrderModel.pid, 1); daoorder.UpdateqyState(0, "4", dt, OrderModel.Id); } else { daoorder.UpdateqyState(0, "1", dt, OrderModel.Id); } Double pv = Convert.ToDouble(OrderModel.Totalprice.ToString("f2"));//总金额 Double pv0 = Convert.ToDouble(OrderModel.Totalprice0.ToString("f2"));//赠送金豆 if (utype == 1) { int dyc = 0; if (umodel.uLevel14 == 0) { //更新审核时间 umodel.RegTime = dt; daoUser.UpdatePassword("regtime", dt.ToString(), umodel.Id); umodel.uLevel14 = 1; daoUser.UpdateuLevel("uLevel14", 1, umodel.Id); dyc = 1; } if (umodel.uLevel == 0) { umodel.uLevel = 1; daoUser.UpdateuLevel("uLevel", 1, umodel.Id); } Int64 ResultID = 0; mjl2 = new Model.user_Results_jl2(); mjl2.MemberId = umodel.Id; mjl2.MemberId2 = 0; mjl2.Addmoney = pv0; mjl2.Cutmoney = Totalnum; mjl2.Totalmoney = pv; mjl2.addtime = dt; mjl2.BZContent = "购买商品,总金额:" + ZSubTotal; mjl2.PayID = ""; mjl2.OrdersIDs = ""; mjl2.OrdersID = dyc; mjl2.utype = 8; mjl2.utype2 = 0; mjl2.Seef = -1; mjl2.seeftime = DateTime.Now; mjl2.gtype = 0; ResultID = daojl2.Add(mjl2); umodel.umoney20 += pv0; umodel.umoney20 = Convert.ToDouble(umodel.umoney20.ToString("f2")); daoUser.UpdateMoney("umoney20", pv0, umodel.Id); DAL.MemberStatistics.UpdteYJ(config, ResultID, umodel, pv, pv0, dyc, gtype, dt, province, city, county, 0); } else if (utype == 2) { } else if (utype == 0) { } if (umodel.Province == "") { daoUser.UpdatePassword("Province", province, umodel.Id); } if (umodel.City == "") { daoUser.UpdatePassword("City", city, umodel.Id); } if (umodel.County == "") { daoUser.UpdatePassword("County", county, umodel.Id); } } } } } } } } } Response.Write("success"); } else { kjpay_notify_Errdata kjdata0 = (kjpay_notify_Errdata)Fromkjpay_notify_Errdata(data); mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "kjpay_notify_err"; mo.addtime = dt; mo.ErrBody = kjdata0.err_code + "|" + kjdata.mch_order_no; mo.ErrBody2 = kjdata0.err_msg; new DAL.User_Errlog().Add(mo); } } } catch (Exception err) { Mtxfw.Utility.Common.WriteHtml("/weixin/weixinpayerr5.txt", err.ToString() + "|" + strContent); } } public object Fromkjpay_notify_returns(string json) { JavaScriptSerializer js = new JavaScriptSerializer(); return js.Deserialize(json); } public object Fromkjpay_notify_data(string json) { JavaScriptSerializer js = new JavaScriptSerializer(); return js.Deserialize(json); } public object Fromkjpay_notify_Errdata(string json) { JavaScriptSerializer js = new JavaScriptSerializer(); return js.Deserialize(json); } } public class kjpay_notify_returns { public String biz_code { get; set; } public String biz_msg { get; set; } public String data { get; set; } public String rand_str { get; set; } public String sign_type { get; set; } public String mch_no { get; set; } public String sign { get; set; } } public class kjpay_notify_data { public String order_status { get; set; } public String mch_order_no { get; set; } public String jp_order_no { get; set; } public String order_amount { get; set; } } public class kjpay_notify_Errdata { public String err_code { get; set; } public String err_msg { get; set; } } }