using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Collections.Specialized; using System.Collections.Generic; using System.Globalization; using Newtonsoft.Json; using System.Web.Script.Serialization; namespace Mtxfw.VipSite { /// /// 功能:服务器异步通知页面 /// 版本:3.3 /// 日期:2012-07-10 /// 说明: /// 以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。 /// 该代码仅供学习和研究支付宝接口使用,只是提供一个参考。 /// /// ///////////////////页面功能说明/////////////////// /// 创建该页面文件时,请留心该页面文件中无任何HTML代码及空格。 /// 该页面不能在本机电脑测试,请到服务器上做测试。请确保外部可以访问该页面。 /// 该页面调试工具请使用写文本函数logResult。 /// 如果没有收到该页面返回的 success 信息,支付宝会在24小时内按一定的时间策略重发通知 /// public partial class hfpay_notify_url : 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_jl daojl = new DAL.user_Results_jl(); DAL.user_Results_jl2 daojl2 = new DAL.user_Results_jl2(); Mtxfw.DAL.P_Product daoProduct = new Mtxfw.DAL.P_Product(); DAL.P_Guige daoGuige = new DAL.P_Guige(); Mtxfw.DAL.order_product_info daoorderproduct = new Mtxfw.DAL.order_product_info(); DAL.Article daoArt = new DAL.Article(); DAL.user_live daolive = new DAL.user_live(); DAL.user_proxy daoproxy = new DAL.user_proxy(); DAL.user_zzjf daozzjf = new DAL.user_zzjf(); DAL.user_zzjf_log daozzjflog = new DAL.user_zzjf_log(); DAL.business_info daobusiness = new DAL.business_info(); Utility.Config config = new Mtxfw.Utility.Config(""); DAL.User_openids daoopenids = new DAL.User_openids(); DAL.user_jjfp daojjfp = new DAL.user_jjfp(); public int gtype = 0; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { try { string hostname = Request.Url.Host; gtype = new DAL.host().GetId(hostname); if (!String.IsNullOrEmpty(Request.Form["resp_code"]) && !String.IsNullOrEmpty(Request.Form["resp_desc"]) && !String.IsNullOrEmpty(Request.Form["sign"]) && !String.IsNullOrEmpty(Request.Form["resp_data"])) { string resp_code = Request.Form["resp_code"].ToString(); string resp_desc = Request.Form["resp_desc"].ToString(); string sign = Request.Form["sign"].ToString(); string data = Request.Form["resp_data"].ToString(); Mtxfw.Utility.Common.WriteHtml("/weixin/hfpay_notify_url.txt", resp_code + "|" + resp_desc + "|" + sign + "|" + data); bool iferr = false; if (resp_code == "00000000") { if (Mtxfw.Utility.Interface_WxPay.verfySign(config.hfpayPublicKey, sign, data)) { /******************************** * * 自己业务处理 * *********************************/ huifupayresult1 rada = (huifupayresult1)Fromhuifupayresult1Json(data); if (rada.trans_stat == "S") { Mtxfw.Utility.Common.WriteHtml("/weixin/hfpay_notify_url0.txt", rada.trans_stat); bool ifjs = true; if (Application["LogLock" + rada.req_seq_id] != null) { ifjs = false; } if (ifjs) { Application["LogLock" + rada.req_seq_id]="lock"; Mtxfw.Model.user_Results ReModel = daoResults.GetModel2(9, rada.req_seq_id); if (ReModel != null) { DateTime dt = DateTime.Now; if (ReModel.Seef == 0) { ReModel.Seef = 1; daoResults.UpdateSeef(1, DateTime.Now, ReModel.Id); string openid = ReModel.OrderIds; Mtxfw.Model.user_info umodel = daoUser.GetModel(ReModel.MemberId); if (umodel != null) { int zftype = Convert.ToInt32(ReModel.b17.ToString().Split('.')[0]); if (umodel.uLevel36 == 1) { if (ReModel.Managers != "") { daojl.Updatemoney("Count2", 1, Convert.ToInt64(ReModel.Managers)); } if (umodel.uLevel37 == 0) { daoUser.UpdateuLevel("uLevel37", 1, umodel.Id); } } //增加买家余额 Model.user_Results_jl2 mjl2; int UserId = ReModel.UserId; Double umoney28 = 0.00; int LockBusID = 0;//锁定门店ID string uphone = ""; DataSet ds = daoUser.GetList1("LockBusID,phone,umoney28", "id=" + UserId); if (ds.Tables[0].Rows.Count > 0) { LockBusID = Convert.ToInt32(ds.Tables[0].Rows[0]["LockBusID"]); uphone = Mtxfw.Utility.Common.cphone(ds.Tables[0].Rows[0]["phone"].ToString()); umoney28 = Convert.ToDouble(ds.Tables[0].Rows[0]["umoney28"]); } ds.Clear(); Double zmoney = Convert.ToDouble(ReModel.b0.ToString("f2")); Double ylmoney = Convert.ToDouble((zmoney * umodel.umoney42 / 100).ToString("f2")); Double cbmoney = Convert.ToDouble((zmoney - ylmoney).ToString("f2")); Double money6 = 0.00; //返回商家成本 string province = "", city = "", county = "", Tradingarea = "", token_no = ""; int bid = 0, ifd0 = 0; DataSet sjds = daobusiness.GetList1("id,ifd0,province,city,county,Agentrading,ktoken_no", "utype=0 and UserId=" + umodel.Id); if (sjds.Tables[0].Rows.Count > 0) { bid = Convert.ToInt32(sjds.Tables[0].Rows[0]["id"].ToString()); ifd0 = Convert.ToInt32(sjds.Tables[0].Rows[0]["ifd0"].ToString()); province = sjds.Tables[0].Rows[0]["province"].ToString(); city = sjds.Tables[0].Rows[0]["city"].ToString(); county = sjds.Tables[0].Rows[0]["county"].ToString(); Tradingarea = sjds.Tables[0].Rows[0]["Agentrading"].ToString(); token_no = sjds.Tables[0].Rows[0]["ktoken_no"].ToString(); } sjds.Clear(); if (token_no == "" && ifd0 == 1) { try { string PayID = dt.ToString("yyMMddHHmmss" + umodel.Id, DateTimeFormatInfo.InvariantInfo); string sys_id = config.hfpaysys_id; string product_id = config.hfpayproduct_id; string req_date = dt.ToString("yyyyMMdd"); string req_seq_id = PayID; string huifu_id = (umodel.CompanyCert != "" ? umodel.CompanyCert : umodel.CompanyNumber); string notify_url = config.webUrl + "/pay/hfpay_chashnotify_url.aspx"; SortedDictionary pay_dic = new SortedDictionary(); pay_dic.Add("req_date", req_date); pay_dic.Add("req_seq_id", req_seq_id); pay_dic.Add("huifu_id", huifu_id); string get_PaySign = Mtxfw.Utility.Interface_WxPay.BuildRequest0(pay_dic, config.hfpayPrivateKey); string strq0 = "{"; strq0 += "\"sys_id\":\"" + sys_id + "\","; strq0 += "\"product_id\":\"" + product_id + "\","; strq0 += "\"data\":{"; strq0 += "\"req_date\":\"" + req_date + "\","; strq0 += "\"req_seq_id\":\"" + req_seq_id + "\","; strq0 += "\"huifu_id\":\"" + huifu_id + "\""; strq0 += "}"; strq0 += ",\"sign\":\"" + get_PaySign + "\""; strq0 += "}"; string strResult = Mtxfw.Utility.Common.getPage2("https://api.huifu.com/v2/merchant/basicdata/query", "", "utf-8", true, true, strq0); //Mtxfw.Utility.Common.WriteHtml("/weixin/apiajaxquery.txt", strResult + "|" + strq0); huifuresult hr = (huifuresult)FromhuifuresultJson(strResult); if (hr.data.resp_code == "00000000") { huifubasicdataresult hr0 = (huifubasicdataresult)FromhuifubasicdataresultJson(strResult); string strResult0 = hr0.data.qry_cash_card_info_list; //Mtxfw.Utility.Common.WriteHtml("/weixin/apiajaxquery0.txt", strResult0); List hr1 = (List)FromhuifucardlistJson(strResult0); if (hr1[0].status == "N") { token_no = hr1[0].token_no; daobusiness.Updatektoken_no(token_no, bid); } } } catch (Exception ex) { Model.User_Errlog mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "汇付支付修改token_no错误"; mo.addtime = DateTime.Now; mo.ErrBody = ex.ToString(); mo.ErrBody2 = ex.Message; new DAL.User_Errlog().Add(mo); } } if (cbmoney > 0.0000) { string PayID = dt.ToString("yyMMddHHmmss" + umodel.Id, DateTimeFormatInfo.InvariantInfo); Mtxfw.Model.user_Results ModelResults = new Mtxfw.Model.user_Results(); ModelResults.b0 = cbmoney; ModelResults.b1 = 0; ModelResults.b2 = 0; ModelResults.b3 = 0; ModelResults.b4 = 0; ModelResults.b5 = 0; ModelResults.b6 = 0; ModelResults.b7 = 0; ModelResults.b8 = 0; ModelResults.b9 = 0; ModelResults.b10 = 0; ModelResults.b11 = 0; ModelResults.b12 = 0; ModelResults.b13 = 0; ModelResults.b14 = 0; ModelResults.b15 = 0; ModelResults.b16 = 0; ModelResults.b17 = 0; ModelResults.b18 = 1; ModelResults.conent = "商家成本"; ModelResults.Totalmoney = cbmoney; ModelResults.MemberId = umodel.Id; ModelResults.UserId = UserId; ModelResults.ListNumber = PayID; ModelResults.Managers = ""; ModelResults.Seef = 1; ModelResults.utype = "20"; ModelResults.addtime = dt; ModelResults.gtype = gtype; Int64 resultid = daoResults.Add(ModelResults); if (token_no != "" && ifd0 == 1) { string sys_id = config.hfpaysys_id; string product_id = config.hfpayproduct_id; string req_date = dt.ToString("yyyyMMdd"); string req_seq_id = PayID; string cash_amt = cbmoney.ToString("f2"); string huifu_id = (umodel.CompanyCert != "" ? umodel.CompanyCert : umodel.CompanyNumber); string into_acct_date_type = "D0"; string notify_url = config.webUrl + "/pay/hfpay_chashnotify_url.aspx"; SortedDictionary pay_dic = new SortedDictionary(); pay_dic.Add("req_date", req_date); pay_dic.Add("req_seq_id", req_seq_id); pay_dic.Add("cash_amt", cash_amt); pay_dic.Add("huifu_id", huifu_id); pay_dic.Add("into_acct_date_type", into_acct_date_type); pay_dic.Add("token_no", token_no); pay_dic.Add("notify_url", notify_url); string get_PaySign = Mtxfw.Utility.Interface_WxPay.BuildRequest0(pay_dic, config.hfpayPrivateKey); string strq0 = "{"; strq0 += "\"sys_id\":\"" + sys_id + "\","; strq0 += "\"product_id\":\"" + product_id + "\","; strq0 += "\"data\":{"; strq0 += "\"req_date\":\"" + req_date + "\","; strq0 += "\"req_seq_id\":\"" + req_seq_id + "\","; strq0 += "\"cash_amt\":\"" + cash_amt + "\","; strq0 += "\"huifu_id\":\"" + huifu_id + "\","; strq0 += "\"into_acct_date_type\":\"" + into_acct_date_type + "\","; strq0 += "\"token_no\":\"" + token_no + "\","; strq0 += "\"notify_url\":\"" + notify_url + "\""; strq0 += "}"; strq0 += ",\"sign\":\"" + get_PaySign + "\""; strq0 += "}"; string strResult = Mtxfw.Utility.Common.getPage2("https://api.huifu.com/v2/trade/settlement/enchashment", "", "utf-8", true, true, strq0); //Mtxfw.Utility.Common.WriteHtml("/weixin/hfpay_enchashment.txt", strResult + "|" + strq0); huifuresult hr = (huifuresult)FromhuifuresultJson(strResult); if (hr.data.resp_code == "00000000") { } else { Model.User_Errlog mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "调用支付成本接口错误"; mo.addtime = DateTime.Now; mo.ErrBody = strResult; mo.ErrBody2 = strq0; new DAL.User_Errlog().Add(mo); } } } mjl2 = new Model.user_Results_jl2(); mjl2.MemberId = umodel.Id; mjl2.MemberId2 = UserId; mjl2.Addmoney = ylmoney; mjl2.Cutmoney = money6; mjl2.Totalmoney = zmoney; mjl2.addtime = dt; mjl2.BZContent = uphone + "扫码支付"; mjl2.PayID = ReModel.ListNumber; mjl2.OrdersIDs = ""; mjl2.OrdersID = zftype; mjl2.utype = 23; mjl2.utype2 = 1; mjl2.Seef = 0; mjl2.seeftime = dt; mjl2.gtype = gtype; Int64 rid = daojl2.Add(mjl2); daojl2.UpdateMinNumber(1, rid);//收款类型0汇聚1汇付 //daojl2.UpdateMaxNumber(0, rid);//收款类型0康泉1 /*daojl2.UpdateTGYID(umodel.ActivateBusID, rid); string strdlid = daoUser.Getzd("DLRememberID", "id=" + umodel.ActivateBusID).ToString(); if (strdlid != "") { daojl2.UpdateDLID(Convert.ToInt32(strdlid), rid); }*/ daoUser.UpdateMoney("umoney43", zmoney, umodel.Id); daoUser.UpdateMoney("umoney45", zmoney, umodel.ActivateBusID); daobusiness.Updatesmmoney(zmoney, bid); Model.User_CZ_log logmodel = new Model.User_CZ_log(); logmodel.MemberId = UserId; logmodel.AddTime = dt; logmodel.IP = Mtxfw.Utility.Common.GetIP; logmodel.Body = "银花优选门店" + umodel.UserName + "汇付支付成功:" + ReModel.b0.ToString() + "元"; logmodel.UType = 0; logmodel.gtype = gtype; new DAL.User_CZ_log().Add(logmodel); if (daoopenids.GetCount("ttype=" + (zftype == 2 ? 1 : 0) + " and openid='" + openid + "'") == 0) { Model.User_openids omodel = new Model.User_openids(); omodel.MemberId = UserId; omodel.SJId = umodel.Id; omodel.openid = openid; omodel.addtime = DateTime.Now; omodel.ttype = (zftype == 2 ? 1 : 0); omodel.gtype = 0; daoopenids.Add(omodel); LockBusID = umodel.Id; } else { string strid = daoopenids.Getzd("SJId", "ttype=" + (zftype == 2 ? 1 : 0) + " and openid='" + openid + "'").ToString(); if (strid != "") { int LockBusID0 = Convert.ToInt32(strid); if (LockBusID0 == 0) { if (LockBusID == 0) { daoUser.UpdateuLevel("LockBusID", umodel.Id, UserId); LockBusID = umodel.Id; Model.User_CZ_log logmodel0 = new Model.User_CZ_log(); logmodel0.MemberId = umodel.Id; logmodel0.AddTime = DateTime.Now; logmodel0.IP = Mtxfw.Utility.Common.GetIP; logmodel0.Body = "银花优选汇付支付锁定会员:" + uphone + "|" + UserId; logmodel0.UType = 0; logmodel0.gtype = gtype; new DAL.User_CZ_log().Add(logmodel0); } daoopenids.UpdateSJId(LockBusID, (zftype == 2 ? 1 : 0), openid); } else { LockBusID = LockBusID0; } } } if (umodel.CompanyPic != "") { string t = Mtxfw.Utility.Common.timeStamp(); string tsign = Mtxfw.Utility.Interface_WxPay.GetMD5(t + "3596", "utf-8"); string strq = "exec|" + umodel.CompanyPic + "|" + t + "|tts|银花优选" + (zftype == 2 ? "微信" : "支付宝") + "收款" + ReModel.b0.ToString() + "元"; string strr = Mtxfw.Utility.Common.getPage2("http://v.pmhapp.cn:27905/exec?t=" + t + "&tsign=" + tsign, "", "utf-8", false, true, strq); if (strr != "OK") { Model.User_Errlog mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "exec27905"; mo.addtime = DateTime.Now; mo.ErrBody = umodel.CompanyPic; mo.ErrBody2 = strr; new DAL.User_Errlog().Add(mo); t = Mtxfw.Utility.Common.timeStamp(); tsign = Mtxfw.Utility.Interface_WxPay.GetMD5(t + "3596", "utf-8"); strq = "exec|" + umodel.CompanyPic + "|" + t + "|tts|银花优选" + (zftype == 2 ? "微信" : "支付宝") + "收款" + ReModel.b0.ToString() + "元"; strr = Mtxfw.Utility.Common.getPage2("http://v.pmhapp.cn:27904/exec?t=" + t + "&tsign=" + tsign, "", "utf-8", false, true, strq); if (strr != "OK") { mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "exec27904"; mo.addtime = DateTime.Now; mo.ErrBody = umodel.CompanyPic; mo.ErrBody2 = strr; new DAL.User_Errlog().Add(mo); t = Mtxfw.Utility.Common.timeStamp(); tsign = Mtxfw.Utility.Interface_WxPay.GetMD5(t + "3596", "utf-8"); strq = "exec|" + umodel.CompanyPic + "|" + t + "|tts|银花优选" + (zftype == 2 ? "微信" : "支付宝") + "收款" + ReModel.b0.ToString() + "元"; strr = Mtxfw.Utility.Common.getPage2("http://v.pmhapp.cn:27900/exec?t=" + t + "&tsign=" + tsign, "", "utf-8", false, true, strq); if (strr != "OK") { mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "exec27900"; mo.addtime = DateTime.Now; mo.ErrBody = umodel.CompanyPic; mo.ErrBody2 = strr; new DAL.User_Errlog().Add(mo); t = Mtxfw.Utility.Common.timeStamp(); tsign = Mtxfw.Utility.Interface_WxPay.GetMD5(t + "3596", "utf-8"); strq = "exec|" + umodel.CompanyPic + "|" + t + "|tts|银花优选" + (zftype == 2 ? "微信" : "支付宝") + "收款" + ReModel.b0.ToString() + "元"; strr = Mtxfw.Utility.Common.getPage2("http://v.pmhapp.cn:27901/exec?t=" + t + "&tsign=" + tsign, "", "utf-8", false, true, strq); if (strr != "OK") { mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "exec27901"; mo.addtime = DateTime.Now; mo.ErrBody = umodel.CompanyPic; mo.ErrBody2 = strr; new DAL.User_Errlog().Add(mo); t = Mtxfw.Utility.Common.timeStamp(); tsign = Mtxfw.Utility.Interface_WxPay.GetMD5(t + "3596", "utf-8"); strq = "exec|" + umodel.CompanyPic + "|" + t + "|tts|银花优选" + (zftype == 2 ? "微信" : "支付宝") + "收款" + ReModel.b0.ToString() + "元"; strr = Mtxfw.Utility.Common.getPage2("http://v.pmhapp.cn:27902/exec?t=" + t + "&tsign=" + tsign, "", "utf-8", false, true, strq); if (strr != "OK") { mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "exec27902"; mo.addtime = DateTime.Now; mo.ErrBody = umodel.CompanyPic; mo.ErrBody2 = strr; new DAL.User_Errlog().Add(mo); t = Mtxfw.Utility.Common.timeStamp(); tsign = Mtxfw.Utility.Interface_WxPay.GetMD5(t + "3596", "utf-8"); strq = "exec|" + umodel.CompanyPic + "|" + t + "|tts|银花优选" + (zftype == 2 ? "微信" : "支付宝") + "收款" + ReModel.b0.ToString() + "元"; strr = Mtxfw.Utility.Common.getPage2("http://v.pmhapp.cn:27903/exec?t=" + t + "&tsign=" + tsign, "", "utf-8", false, true, strq); if (strr != "OK") { mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "exec27903"; mo.addtime = DateTime.Now; mo.ErrBody = umodel.CompanyPic; mo.ErrBody2 = strr; new DAL.User_Errlog().Add(mo); } } } } } } } if (umodel.CompanyProvince != "") { string t = Mtxfw.Utility.Common.timeStamp(); string tsign = Mtxfw.Utility.Interface_WxPay.GetMD5(t + "3596", "utf-8"); string strq = "exec|" + umodel.CompanyProvince + "|" + t + "|tts|银花优选" + (zftype == 2 ? "微信" : "支付宝") + "收款" + ReModel.b0.ToString() + "元"; string strr = Mtxfw.Utility.Common.getPage2("http://v.pmhapp.cn:27905/exec?t=" + t + "&tsign=" + tsign, "", "utf-8", false, true, strq); if (strr != "OK") { Model.User_Errlog mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "exec27905"; mo.addtime = DateTime.Now; mo.ErrBody = umodel.CompanyProvince; mo.ErrBody2 = strr; new DAL.User_Errlog().Add(mo); t = Mtxfw.Utility.Common.timeStamp(); tsign = Mtxfw.Utility.Interface_WxPay.GetMD5(t + "3596", "utf-8"); strq = "exec|" + umodel.CompanyProvince + "|" + t + "|tts|银花优选" + (zftype == 2 ? "微信" : "支付宝") + "收款" + ReModel.b0.ToString() + "元"; strr = Mtxfw.Utility.Common.getPage2("http://v.pmhapp.cn:27904/exec?t=" + t + "&tsign=" + tsign, "", "utf-8", false, true, strq); if (strr != "OK") { mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "exec27904"; mo.addtime = DateTime.Now; mo.ErrBody = umodel.CompanyProvince; mo.ErrBody2 = strr; new DAL.User_Errlog().Add(mo); t = Mtxfw.Utility.Common.timeStamp(); tsign = Mtxfw.Utility.Interface_WxPay.GetMD5(t + "3596", "utf-8"); strq = "exec|" + umodel.CompanyProvince + "|" + t + "|tts|银花优选" + (zftype == 2 ? "微信" : "支付宝") + "收款" + ReModel.b0.ToString() + "元"; strr = Mtxfw.Utility.Common.getPage2("http://v.pmhapp.cn:27900/exec?t=" + t + "&tsign=" + tsign, "", "utf-8", false, true, strq); if (strr != "OK") { mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "exec27900"; mo.addtime = DateTime.Now; mo.ErrBody = umodel.CompanyProvince; mo.ErrBody2 = strr; new DAL.User_Errlog().Add(mo); t = Mtxfw.Utility.Common.timeStamp(); tsign = Mtxfw.Utility.Interface_WxPay.GetMD5(t + "3596", "utf-8"); strq = "exec|" + umodel.CompanyProvince + "|" + t + "|tts|银花优选" + (zftype == 2 ? "微信" : "支付宝") + "收款" + ReModel.b0.ToString() + "元"; strr = Mtxfw.Utility.Common.getPage2("http://v.pmhapp.cn:27901/exec?t=" + t + "&tsign=" + tsign, "", "utf-8", false, true, strq); if (strr != "OK") { mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "exec27901"; mo.addtime = DateTime.Now; mo.ErrBody = umodel.CompanyProvince; mo.ErrBody2 = strr; new DAL.User_Errlog().Add(mo); t = Mtxfw.Utility.Common.timeStamp(); tsign = Mtxfw.Utility.Interface_WxPay.GetMD5(t + "3596", "utf-8"); strq = "exec|" + umodel.CompanyProvince + "|" + t + "|tts|银花优选" + (zftype == 2 ? "微信" : "支付宝") + "收款" + ReModel.b0.ToString() + "元"; strr = Mtxfw.Utility.Common.getPage2("http://v.pmhapp.cn:27902/exec?t=" + t + "&tsign=" + tsign, "", "utf-8", false, true, strq); if (strr != "OK") { mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "exec27902"; mo.addtime = DateTime.Now; mo.ErrBody = umodel.CompanyProvince; mo.ErrBody2 = strr; new DAL.User_Errlog().Add(mo); t = Mtxfw.Utility.Common.timeStamp(); tsign = Mtxfw.Utility.Interface_WxPay.GetMD5(t + "3596", "utf-8"); strq = "exec|" + umodel.CompanyProvince + "|" + t + "|tts|银花优选" + (zftype == 2 ? "微信" : "支付宝") + "收款" + ReModel.b0.ToString() + "元"; strr = Mtxfw.Utility.Common.getPage2("http://v.pmhapp.cn:27903/exec?t=" + t + "&tsign=" + tsign, "", "utf-8", false, true, strq); if (strr != "OK") { mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "exec27903"; mo.addtime = DateTime.Now; mo.ErrBody = umodel.CompanyProvince; mo.ErrBody2 = strr; new DAL.User_Errlog().Add(mo); } } } } } } } if (umodel.CompanyCity != "") { string t = Mtxfw.Utility.Common.timeStamp(); string tsign = Mtxfw.Utility.Interface_WxPay.GetMD5(t + "3596", "utf-8"); string strq = "exec|" + umodel.CompanyCity + "|" + t + "|tts|银花优选" + (zftype == 2 ? "微信" : "支付宝") + "收款" + ReModel.b0.ToString() + "元"; string strr = Mtxfw.Utility.Common.getPage2("http://v.pmhapp.cn:27905/exec?t=" + t + "&tsign=" + tsign, "", "utf-8", false, true, strq); if (strr != "OK") { Model.User_Errlog mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "exec27905"; mo.addtime = DateTime.Now; mo.ErrBody = umodel.CompanyCity; mo.ErrBody2 = strr; new DAL.User_Errlog().Add(mo); t = Mtxfw.Utility.Common.timeStamp(); tsign = Mtxfw.Utility.Interface_WxPay.GetMD5(t + "3596", "utf-8"); strq = "exec|" + umodel.CompanyCity + "|" + t + "|tts|银花优选" + (zftype == 2 ? "微信" : "支付宝") + "收款" + ReModel.b0.ToString() + "元"; strr = Mtxfw.Utility.Common.getPage2("http://v.pmhapp.cn:27904/exec?t=" + t + "&tsign=" + tsign, "", "utf-8", false, true, strq); if (strr != "OK") { mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "exec27904"; mo.addtime = DateTime.Now; mo.ErrBody = umodel.CompanyCity; mo.ErrBody2 = strr; new DAL.User_Errlog().Add(mo); t = Mtxfw.Utility.Common.timeStamp(); tsign = Mtxfw.Utility.Interface_WxPay.GetMD5(t + "3596", "utf-8"); strq = "exec|" + umodel.CompanyCity + "|" + t + "|tts|银花优选" + (zftype == 2 ? "微信" : "支付宝") + "收款" + ReModel.b0.ToString() + "元"; strr = Mtxfw.Utility.Common.getPage2("http://v.pmhapp.cn:27900/exec?t=" + t + "&tsign=" + tsign, "", "utf-8", false, true, strq); if (strr != "OK") { mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "exec27900"; mo.addtime = DateTime.Now; mo.ErrBody = umodel.CompanyCity; mo.ErrBody2 = strr; new DAL.User_Errlog().Add(mo); t = Mtxfw.Utility.Common.timeStamp(); tsign = Mtxfw.Utility.Interface_WxPay.GetMD5(t + "3596", "utf-8"); strq = "exec|" + umodel.CompanyCity + "|" + t + "|tts|银花优选" + (zftype == 2 ? "微信" : "支付宝") + "收款" + ReModel.b0.ToString() + "元"; strr = Mtxfw.Utility.Common.getPage2("http://v.pmhapp.cn:27901/exec?t=" + t + "&tsign=" + tsign, "", "utf-8", false, true, strq); if (strr != "OK") { mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "exec27901"; mo.addtime = DateTime.Now; mo.ErrBody = umodel.CompanyCity; mo.ErrBody2 = strr; new DAL.User_Errlog().Add(mo); t = Mtxfw.Utility.Common.timeStamp(); tsign = Mtxfw.Utility.Interface_WxPay.GetMD5(t + "3596", "utf-8"); strq = "exec|" + umodel.CompanyCity + "|" + t + "|tts|银花优选" + (zftype == 2 ? "微信" : "支付宝") + "收款" + ReModel.b0.ToString() + "元"; strr = Mtxfw.Utility.Common.getPage2("http://v.pmhapp.cn:27902/exec?t=" + t + "&tsign=" + tsign, "", "utf-8", false, true, strq); if (strr != "OK") { mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "exec27902"; mo.addtime = DateTime.Now; mo.ErrBody = umodel.CompanyCity; mo.ErrBody2 = strr; new DAL.User_Errlog().Add(mo); t = Mtxfw.Utility.Common.timeStamp(); tsign = Mtxfw.Utility.Interface_WxPay.GetMD5(t + "3596", "utf-8"); strq = "exec|" + umodel.CompanyCity + "|" + t + "|tts|银花优选" + (zftype == 2 ? "微信" : "支付宝") + "收款" + ReModel.b0.ToString() + "元"; strr = Mtxfw.Utility.Common.getPage2("http://v.pmhapp.cn:27903/exec?t=" + t + "&tsign=" + tsign, "", "utf-8", false, true, strq); if (strr != "OK") { mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "exec27903"; mo.addtime = DateTime.Now; mo.ErrBody = umodel.CompanyCity; mo.ErrBody2 = strr; new DAL.User_Errlog().Add(mo); } } } } } } } } } } ReModel = daoResults.GetModel2(2, rada.req_seq_id); if (ReModel != null) { DateTime dt = DateTime.Now; 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 zftype = Convert.ToInt32(ReModel.b17.ToString().Split('.')[0]); int type = Convert.ToInt32(ReModel.b18.ToString().Split('.')[0]); if (type == 3) { } else if (type == 2) { string[] aResultIdS = ReModel.OrderIds.Split(','); for (int i = 0; i < aResultIdS.Length; i++) { if (aResultIdS[i] != "") { Model.user_Results_jl2 jlmodel = daojl2.GetModel(Convert.ToInt64(aResultIdS[i])); if (jlmodel != null) { daojl2.UpdateSeef("seef", 1, "seeftime", dt, jlmodel.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 = 0; logmodel.gtype = gtype; new DAL.User_CZ_log().Add(logmodel); } else if (type == 1) { 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 + umodel.umoney35 + ReModel.Totalmoney); mjl2.addtime = dt; mjl2.BZContent = "支付宝支付购买VIP套餐,余额充值成功"; 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 + umodel.umoney35); mjl2.addtime = dt; mjl2.BZContent = "支付宝支付购买VIP套餐,余额扣款成功"; 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); 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); daoUser.UpdateuLevel("uLevel20", 1, 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 = "购买VIP套餐成功"; logmodel.UType = 0; logmodel.gtype = gtype; new DAL.User_CZ_log().Add(logmodel); } else { mjl2 = new Model.user_Results_jl2(); mjl2.MemberId = umodel.Id; mjl2.MemberId2 = 0; mjl2.Addmoney = ReModel.Totalmoney; mjl2.Cutmoney = 0; mjl2.Totalmoney = ((zftype == 1 ? umodel.umoney30 : (umodel.umoney - umodel.umoney17)) + ReModel.Totalmoney); mjl2.addtime = dt; mjl2.BZContent = "支付宝支付购买商品,余额充值成功"; mjl2.PayID = ""; mjl2.OrdersIDs = ""; mjl2.OrdersID = 0; mjl2.utype = (zftype == 1 ? 2 : 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 = (zftype == 1 ? umodel.umoney30 : (umodel.umoney - umodel.umoney17)); mjl2.addtime = dt; mjl2.BZContent = "支付宝支付购买商品,余额扣款成功"; mjl2.PayID = ""; mjl2.OrdersIDs = ""; mjl2.OrdersID = 0; mjl2.utype = (zftype == 1 ? 2 : 1); mjl2.utype2 = 0; mjl2.Seef = -1; mjl2.seeftime = dt; mjl2.gtype = gtype; new Mtxfw.DAL.user_Results_jl2().Add(mjl2); 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, ZSubTotal4 = 0.00, ZSubTotal5 = 0.00, ZSubTotal6 = 0.00, zyunfei = 0.00, xjZSubTotal = 0.00, JFZSubTotal = 0.00, PayZSubTotal = ReModel.b0; int utype = -1, utype0 = 0, Totalnum = 0, ptype = 0, peitype = 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; JFZSubTotal += OrderModel.JFTotalprice; ZSubTotal0 += OrderModel.Totalprice0; ZSubTotal1 += OrderModel.Totalprice2; ZSubTotal2 += OrderModel.Totalprice3; ZSubTotal3 += OrderModel.Totalprice4; ZSubTotal4 += OrderModel.Totalprice5; ZSubTotal5 += OrderModel.Totalprice6; ZSubTotal6 += OrderModel.Totalprice7; 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; utype0 = OrderModel.hasRead; ptype = OrderModel.ptype; peitype = OrderModel.peitype; province = OrderModel.Province; city = OrderModel.City; county = OrderModel.County; } } } } ZSubTotal = Convert.ToDouble(ZSubTotal.ToString("f2")); JFZSubTotal = Convert.ToDouble(JFZSubTotal.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")); xjZSubTotal = (ZSubTotal - PayZSubTotal); xjZSubTotal = Convert.ToDouble(xjZSubTotal.ToString("f2")); PayZSubTotal = Convert.ToDouble(PayZSubTotal.ToString("f2")); if (utype == 0) { if (JFZSubTotal > 0.00) { mjl2 = new Model.user_Results_jl2(); mjl2.MemberId = umodel.Id; mjl2.MemberId2 = 0; mjl2.Addmoney = -JFZSubTotal; mjl2.Cutmoney = 0; mjl2.Totalmoney = (umodel.umoney31 - JFZSubTotal); mjl2.addtime = dt; mjl2.BZContent = "购买商品"; mjl2.PayID = ""; mjl2.OrdersIDs = ""; mjl2.OrdersID = 0; mjl2.utype = 4; mjl2.utype2 = 0; mjl2.Seef = -1; mjl2.seeftime = dt; mjl2.gtype = gtype; daojl2.Add(mjl2); //减少买家余额 daoUser.UpdateMoney("umoney31", -JFZSubTotal, umodel.Id); } } string strResult = ""; int OrderId = 0, PId = 0; int yyq = 0;// Convert.ToInt32(config.webMoney4); for (int i = 0; i < AOrderIDs.Length; i++) { Mtxfw.Model.order_info OrderModel = daoorder.GetModel(int.Parse(AOrderIDs[i])); if (OrderModel != null) { OrderId = OrderModel.Id; PId = OrderModel.pid; if (OrderModel.O_Payed == "" || OrderModel.O_Payed == "0") { Double money = Convert.ToDouble((OrderModel.Totalprice - OrderModel.Totalprice1).ToString("f2"));//结算金额 if (utype == 0) { money = Convert.ToDouble((money - OrderModel.JFTotalprice).ToString("f2"));//结算金额 } Double money0 = Convert.ToDouble(OrderModel.Totalprice0.ToString("f2"));//首单推荐奖励 Double money1 = Convert.ToDouble(OrderModel.Totalprice2.ToString("f2"));//复购推荐奖励 Double money2 = Convert.ToDouble(OrderModel.Totalprice3.ToString("f2"));//赠送广告券/成本 Double money3 = Convert.ToDouble(OrderModel.Totalprice4.ToString("f2"));//赠送补贴券 Double money4 = Convert.ToDouble(OrderModel.Totalprice5.ToString("f2"));// Double money5 = Convert.ToDouble(OrderModel.Totalprice6.ToString("f2"));// Double money6 = Convert.ToDouble(OrderModel.Totalprice7.ToString("f2"));// Double money7 = Convert.ToDouble(OrderModel.Totalprice8.ToString("f2"));// Double money8 = Convert.ToDouble(OrderModel.Totalprice9.ToString("f2"));// if (utype == 0) { DAL.MemberStatistics.UpdteYJ(config, umodel, money, money0, money2, money3, gtype, dt, OrderModel.ttype, OrderModel.ptype, peitype, OrderModel.orderid, OrderModel.Id, OrderModel.Province, OrderModel.City, OrderModel.County, OrderModel.Tradingarea); } else if (utype == 2) { int ycount0 = daoorder.GetCount("ttype=2 and IFDelete=0 and ptype=" + OrderModel.ptype + " and UserId=" + umodel.Id + " and O_Payed>0"); if (ycount0 > 0) { money0 = money1; } DAL.MemberStatistics.UpdteYJ(config, umodel, money, money0, money2, money3, gtype, dt, OrderModel.ttype, OrderModel.ptype, peitype, OrderModel.orderid, OrderModel.Id, OrderModel.Province, OrderModel.City, OrderModel.County, OrderModel.Tradingarea); } if (utype == 14) { if ((peitype == 1 ? OrderModel.ZTMemberId : OrderModel.MemberId) > 0) { Mtxfw.Model.user_info umodel0 = new Mtxfw.DAL.user_info().GetModel((peitype == 1 ? OrderModel.ZTMemberId : OrderModel.MemberId)); if (umodel0 != null) { if (money3 > 0.00) { mjl2 = new Model.user_Results_jl2(); mjl2.MemberId = umodel0.Id; mjl2.MemberId2 = 0; mjl2.Addmoney = money3; mjl2.Cutmoney = 0; mjl2.Totalmoney = (umodel0.umoney40 + money3); mjl2.addtime = dt; mjl2.BZContent = umodel.RealName + "购买商品,成本"; mjl2.PayID = ""; mjl2.OrdersIDs = ""; mjl2.OrdersID = 0; mjl2.utype = 16; mjl2.utype2 = 0; mjl2.Seef = -1; mjl2.seeftime = dt; mjl2.gtype = gtype; daojl2.Add(mjl2); umodel0.umoney40 += money3; umodel0.umoney40 = Convert.ToDouble(umodel0.umoney40.ToString("f2")); daoUser.UpdateMoney("umoney40", money3, umodel0.Id); } } } } daoorder.UpdateqyState(0, "1", dt, OrderModel.Id); daoProduct.UpdateJiangLi(OrderModel.pid, 1); daoorder.Updatetranid(rada.out_trans_id, rada.req_seq_id, OrderModel.Id); daoorder.Updaterefund_id(rada.party_order_id, OrderModel.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 = 0; logmodel.gtype = gtype; new DAL.User_CZ_log().Add(logmodel); } } } } } } else { iferr = true; } } else { iferr = true; } } else { iferr = true; } if (iferr) { Model.User_Errlog mo = new Model.User_Errlog(); mo.DLID = 0; mo.ErrType = "银花优选汇付支付接口错误"; mo.addtime = DateTime.Now; mo.ErrBody = resp_code + "|" + resp_desc + "|" + sign; mo.ErrBody2 = data; new DAL.User_Errlog().Add(mo); //Response.Write("fail"); } else { } Response.Write("200"); //请不要修改或删除 } else//验证失败 { Response.Write("fail"); } } catch (Exception err) { Mtxfw.Utility.Common.WriteHtml("/weixin/payerr.txt", err.ToString()); } } } /// /// 获取支付宝POST过来通知消息,并以“参数名=参数值”的形式组成数组 /// /// request回来的信息组成的数组 public IDictionary GetRequestPost() { int i = 0; IDictionary sArray = new Dictionary(); NameValueCollection coll; //Load Form variables into NameValueCollection variable. coll = Request.Form; // Get names of all forms into a string array. String[] requestItem = coll.AllKeys; for (i = 0; i < requestItem.Length; i++) { sArray.Add(requestItem[i], Request.Form[requestItem[i]]); } return sArray; } //切记alipaypublickey是支付宝的公钥,请去open.alipay.com对应应用下查看。 //bool RSACheckV1(IDictionary parameters, string alipaypublicKey, string charset, string signType, bool keyFromFile) public object Fromhuifupayresult1Json(string json) { JavaScriptSerializer js = new JavaScriptSerializer(); return js.Deserialize(json); } public object FromhuifuresultJson(string json) { JavaScriptSerializer js = new JavaScriptSerializer(); return js.Deserialize(json); } public object FromhuifubasicdataresultJson(string json) { JavaScriptSerializer js = new JavaScriptSerializer(); return js.Deserialize(json); } public object FromhuifucardlistJson(string json) { JavaScriptSerializer js = new JavaScriptSerializer(); return js.Deserialize>(json); } } }