protected void Page_Load(object sender, EventArgs e) { //创建ResponseHandler实例 ResponseHandler resHandler = new ResponseHandler(Context); resHandler.setKey(PayConfig.AppKey); LogUtil.WriteLog("Notify 页面 支付成功"); //判断签名 try { string error = ""; if (resHandler.isWXsign(out error)) { #region 协议参数===================================== //--------------协议参数-------------------------------------------------------- //SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查 string return_code = resHandler.getParameter("return_code"); //返回信息,如非空,为错误原因签名失败参数格式校验错误 string return_msg = resHandler.getParameter("return_msg"); //微信分配的公众账号 ID string appid = resHandler.getParameter("appid"); //以下字段在 return_code 为 SUCCESS 的时候有返回-------------------------------- //微信支付分配的商户号 string mch_id = resHandler.getParameter("mch_id"); //微信支付分配的终端设备号 string device_info = resHandler.getParameter("device_info"); //微信分配的公众账号 ID string nonce_str = resHandler.getParameter("nonce_str"); //业务结果 SUCCESS/FAIL string result_code = resHandler.getParameter("result_code"); //错误代码 string err_code = resHandler.getParameter("err_code"); //结果信息描述 string err_code_des = resHandler.getParameter("err_code_des"); //以下字段在 return_code 和 result_code 都为 SUCCESS 的时候有返回--------------- //-------------业务参数--------------------------------------------------------- //用户在商户 appid 下的唯一标识 string openid = resHandler.getParameter("openid"); //用户是否关注公众账号,Y-关注,N-未关注,仅在公众账号类型支付有效 string is_subscribe = resHandler.getParameter("is_subscribe"); //JSAPI、NATIVE、MICROPAY、APP string trade_type = resHandler.getParameter("trade_type"); //银行类型,采用字符串类型的银行标识 string bank_type = resHandler.getParameter("bank_type"); //订单总金额,单位为分 string total_fee = resHandler.getParameter("total_fee"); //货币类型,符合 ISO 4217 标准的三位字母代码,默认人民币:CNY string fee_type = resHandler.getParameter("fee_type"); //微信支付订单号 string transaction_id = resHandler.getParameter("transaction_id"); //商户系统的订单号,与请求一致。 string out_trade_no = resHandler.getParameter("out_trade_no"); //商家数据包,原样返回 string attach = resHandler.getParameter("attach"); //支 付 完 成 时 间 , 格 式 为yyyyMMddhhmmss,如 2009 年12 月27日 9点 10分 10 秒表示为 20091227091010。时区为 GMT+8 beijing。该时间取自微信支付服务器 string time_end = resHandler.getParameter("time_end"); #endregion //支付成功 // LogUtil.WriteLog("return_code" + return_code); string[] arr = attach.Split(','); var uid = arr[0]; var fid = arr[1] == null ? "0" : arr[1].ToString() == "" ? "0" : arr[1].ToString(); var price = arr[2]; var ordercode = arr[3]; var pid = arr[4]; // LogUtil.WriteLog(uid + ";" + fid + ";" + price + ";" + ordercode + ";" + pid); Video vd = new Video(); if (!string.IsNullOrEmpty(vd.GetVideoPrice(pid)))//查不到才用传过来的 { price = vd.GetVideoPrice(pid); } //判断是否已经是会员 if (ph.Memberisfxs(uid)) { //再次购买,产品打1折 price = (Convert.ToDouble(price) * 0.1).ToString(); } else { //生成二维码,用户ID,FatherFXSID, DeletePhoto(uid);//删除原有图片 string sql = "select headimgurl,nickname from ML_Member where nID=" + uid; DataTable dt = her.ExecuteDataTable(sql); var url = makeUrl(uid); var picName = ""; if (dt.Rows.Count > 0) { var touurl = dt.Rows[0]["headimgurl"].ToString(); if (string.IsNullOrEmpty(touurl)) { touurl = "http://tv.gongxue168.com/upload_img/getheadimg.jpg"; } string pathtou = saveimage(touurl); string erma = sa.GetQrcode(uid); string pathMs = Server.MapPath("../upload_Img/maseters.jpg"); picName = Guid.NewGuid().ToString() + ".png"; string strPath = HttpContext.Current.Request.FilePath + "/../../upload_Img/Pic"; //项目根路径 string SavePath = Server.MapPath(strPath + "/" + picName); //保存文件的路径 string text = dt.Rows[0]["nickname"].ToString(); CombinImage(pathMs, saveQrcode(erma), pathtou, text).Save(SavePath); } //else //{ // picName = ImageAdd(url); //} bool success = Menber.MemberUpdateFxs(uid, 1, url, picName);//支付的时候就不改变,上级来源 if (success) { LogUtil.WriteLog("微店成功"); } else { LogUtil.WriteLog("微店失败"); } } //插入订单 LogUtil.WriteLog("notify:插入订单"); if (ph.IsOrder(ordercode) == false)//已经存在就不要入库了 { bool falg = false; tongji tj = new tongji(); string fatherID = "0"; //一旦用户的父级不是 总部,则该用户下的订单都属于 同一个父级 string sql = "select FatherFXSID from ML_Member where nID=" + uid; if (Convert.ToInt32(her.ExecuteScalar(sql)) > 0)//已经有父级,就用之前的父级别 { fatherID = her.ExecuteScalar(sql) == null ? "0" : her.ExecuteScalar(sql).ToString(); } int pri = Convert.ToInt32(price);//测试结束,要注销掉* 10000 //插入订单 falg = ph.InsertOrder(uid, fatherID, ordercode, pri, pid, "微信支付"); LogUtil.WriteLog("notify:" + falg.ToString() + "订单号:" + ordercode + "__用户ID:" + uid); //判断是否已经是会员 if (ph.Memberisfxs(uid) == false) { if (or.UpdateUserState(uid)) { LogUtil.WriteLog("notify:会员成功"); } else { LogUtil.WriteLog("notify:会员失败"); } } else { LogUtil.WriteLog("notify:已经是会员不更新"); } LogUtil.WriteLog("佣金分配"); tj.insetTop1User(Convert.ToInt32(uid), Convert.ToInt32(fatherID), pri); tj.insetTop2User(Convert.ToInt32(uid), Convert.ToInt32(fatherID), pri); tj.insetTop3User(Convert.ToInt32(uid), Convert.ToInt32(fatherID), pri); LogUtil.WriteLog("绩效分配"); tj.InsertJxBZ(Convert.ToInt32(uid), pri); tj.InsertJxBZE(Convert.ToInt32(uid), pri); tj.InsertJxXZ(Convert.ToInt32(uid), pri); //3.会员等级升级 DateTime dt = System.DateTime.Now; string time = dt.ToString("yyyy-MM-dd HH:mm:ss"); if (tj.UpdateLevel1()) { WeiPay.LogUtil.WriteLog("班长查询,更新成功!" + time); } if (tj.UpdateLevel2()) { WeiPay.LogUtil.WriteLog("班主任查询,更新成功!" + time); } if (tj.UpdateLevel3()) { WeiPay.LogUtil.WriteLog("校长查询,更新成功!" + time); } } if (!out_trade_no.Equals("") && return_code.Equals("SUCCESS") && result_code.Equals("SUCCESS")) { //LogUtil.WriteLog("Notify 页面 支付成功,支付信息:商家订单号:" + out_trade_no + "、支付金额(分):" + total_fee + "、自定义参数:" + attach); /** * 这里输入用户逻辑操作,比如更新订单的支付状态**/ //or.UpdateUserState(attach); /** * **/ //插入订单 //LogUtil.WriteLog("============ 单次支付结束 ==============="); Response.Write("success"); return; } else { LogUtil.WriteLog("Notify 页面 支付失败,支付信息 total_fee= " + total_fee + "、err_code_des=" + err_code_des + "、result_code=" + result_code); } } else { LogUtil.WriteLog("Notify 页面 isWXsign= false ,错误信息:" + error); } } catch (Exception ee) { LogUtil.WriteLog("Notify 页面 发送异常错误:" + ee.Message); } Response.End(); }