diff --git a/Mtxfw.DAL/MemberStatistics_huiyuan.cs b/Mtxfw.DAL/MemberStatistics_huiyuan.cs index 191856d..9b7d4c1 100644 --- a/Mtxfw.DAL/MemberStatistics_huiyuan.cs +++ b/Mtxfw.DAL/MemberStatistics_huiyuan.cs @@ -98,6 +98,13 @@ namespace Mtxfw.DAL if (ttype == 0) { uplevel = UpdteSelfuLevel(gtype, umodel, config, ptype, pv); + //升到2级及以上后要审视是业绩达到升到更高级标准,防止因为一开始低于二级导致错过业绩升级 + if (uplevel>1) + { + umodel.uLevel = uplevel; + ReviseselfLevel(gtype, umodel, config, uplevel); + } + } @@ -106,6 +113,8 @@ namespace Mtxfw.DAL int uds = 1, uds0 = 1, uds1 = 1; int YContactID = umodel.ContactID; + //直接推荐人等级 + int ContactLevel = 0; string YContactIDS = umodel.ContactIDS; ASuperiorsIDS = (umodel.ContactIDS).Split(','); Double yfbl = 0; @@ -115,34 +124,52 @@ namespace Mtxfw.DAL { // DataSet ds = daoUser.GetList1("ID,ContactIDS,ContactID,umoney17,umoney18,uLevel", "gtype=" + gtype + " and UserState='正常' And IFStores=0 And uLevel17=0 And id=" + ASuperiorsIDS[ak]); - + if (ds.Tables[0].Rows.Count > 0) { int dID = Convert.ToInt32(ds.Tables[0].Rows[0]["ID"].ToString()); //string YContactID = ds.Tables[0].Rows[0]["ContactID"].ToString(); //string YContactIDS = ds.Tables[0].Rows[0]["ContactIDS"].ToString(); - + Double umoney18 = Convert.ToDouble((Convert.ToDouble(ds.Tables[0].Rows[0]["umoney18"]) + pv).ToString("f2")); //Double Yumoney19 = Convert.ToDouble((Convert.ToDouble(ds.Tables[0].Rows[0]["umoney19"]) + pv).ToString("f2")); int YuLevel = Convert.ToInt32(ds.Tables[0].Rows[0]["uLevel"].ToString()); //int YuLevel4 = Convert.ToInt32(ds.Tables[0].Rows[0]["uLevel4"].ToString()); //int YuLevel11 = Convert.ToInt32(ds.Tables[0].Rows[0]["uLevel11"].ToString()); //int YIFBecomeAgents = Convert.ToInt32(ds.Tables[0].Rows[0]["IFBecomeAgents"].ToString()); - //已分的奖金比例 - - //推荐链条中的人等级比被推荐人等级高,才可以分奖金 - if (umodel.uLevel < (YuLevel)) - { - daoUser.UpdateMoney("umoney18", pv, dID); - daoUser.UpdateMoney("umoney19", pv, dID); - var isLast = ak == 1; - //热卖商品,且遍历到当前会员是付款仁直接推荐人,则计算佣金 - if(ttype == 0 && YuLevel == YContactID) + ///总业绩(排除自己购买) + daoUser.UpdateMoney("umoney18", pv, dID); + //本月业绩 + daoUser.UpdateMoney("umoney19", pv, dID); + + //遍历到当前会员是付款人直接推荐人 + if (dID == YContactID && YuLevel>0) + { + //获取直接推荐人的等级 + ContactLevel = YuLevel; + //直接推荐人,且大于普通会员级别 + if (YuLevel > 0) { //计算佣金 YongJinJS(config, umodel, ds.Tables[0].Rows[0], YContactID, YContactIDS, pv, xfz, yfbl, ttype); } + + } + + //推荐链条中的人等级比直接推荐人等级高,或者是购买者直接推荐人,才可以分奖金 + if ((ContactLevel < YuLevel && ContactLevel > 0)|| dID == YContactID) + { + + var isLast = ak == 1; + + + ////遍历到当前会员是付款仁直接推荐人,则计算佣金 + //if (dID == YContactID) + //{ + // //计算佣金 + // YongJinJS(config, umodel, ds.Tables[0].Rows[0], YContactID, YContactIDS, pv, xfz, yfbl, ttype); + //} //结算奖金(按等级算批发差价) yfbl = JiangJinJS(config, umodel, ds.Tables[0].Rows[0], YContactID, YContactIDS, pv, xfz, yfbl, ttype); @@ -153,10 +180,11 @@ namespace Mtxfw.DAL /////如果符合条件更新自己的等级 移到上面了,这里 注释掉了,如果今后没影响,记得删掉,留着没意义 //var uplevel = UpdteSelfuLevel(gtype, umodel, config, ptype, pv); - ///如果热卖商城的商品,更新上级的等级 - if (uplevel > 0 && ttype == 0) + /////如果热卖商城的商品,更新上级的等级 + //if (uplevel > 0 && ttype == 0) + if ( ttype == 0) { - UpdteContacttLevel(gtype, umodel, config, ds.Tables[0].Rows[0], YContactID, YContactIDS, uplevel); + UpdteContacttLevel(gtype, umodel, config, ds.Tables[0].Rows[0], YContactID, YContactIDS, uplevel,umoney18); ///上面更新金额和等级的几个方法顺序不能颠倒,否则会出错 } @@ -206,43 +234,73 @@ namespace Mtxfw.DAL var uplevel3_amount = config.direct_upgrade_level3_amount_condition; var uplevel4_amount = config.direct_upgrade_level4_amount_condition; var uplevel5_amount = config.direct_upgrade_level5_amount_condition; - if (duLevel < ptype) - { - var flag = daoUser.UpdateuLevel("uLevel", ptype, dID); - if (ptype == 1) - { - //买1级商品提升到1级会员,并加积分 - daoUser.UpdateMoney("umoney30", pv, dID); - } - return flag ? 1 : 0; - } - else if (uplevel1_amount > 0 && pv >= uplevel1_amount && duLevel < 1) + //if (duLevel < ptype) + //{ + // var flag = daoUser.UpdateuLevel("uLevel", ptype, dID); + // if (ptype == 1) + // { + // //买1级商品提升到1级会员,并加积分 + // daoUser.UpdateMoney("umoney30", pv, dID); + // } + // return flag ? 1 : 0; + //} + //else + + //必须先判断大的,再判断小的,否则只算小的,不算大的 + if (uplevel5_amount > 0 && pv >= uplevel5_amount && duLevel <5) { //买1级商品提升到1级会员,并加积分 - daoUser.UpdateMoney("umoney30", pv, dID); - var flag = daoUser.UpdateuLevel("uLevel", 1, dID); - return flag ? 1 : 0; + //daoUser.UpdateMoney("umoney30", pv, dID); + var flag = daoUser.UpdateuLevel("uLevel", 5, dID); + return flag ? 5 : 0; } - else if (uplevel2_amount > 0 && pv >= uplevel2_amount && duLevel < 2) + else if (uplevel4_amount > 0 && pv >= uplevel4_amount && duLevel < 4) { - var flag = daoUser.UpdateuLevel("uLevel", 2, dID); - return flag ? 2 : 0; + var flag = daoUser.UpdateuLevel("uLevel", 4, dID); + return flag ? 4 : 0; } else if (uplevel3_amount > 0 && pv >= uplevel3_amount && duLevel < 3) { var flag = daoUser.UpdateuLevel("uLevel", 3, dID); return flag ? 3 : 0; } - else if (uplevel4_amount > 0 && pv >= uplevel4_amount && duLevel < 4) + else if (uplevel2_amount > 0 && pv >= uplevel2_amount && duLevel < 2) { - var flag = daoUser.UpdateuLevel("uLevel", 4, dID); - return flag ? 4 : 0; + var flag = daoUser.UpdateuLevel("uLevel", 2, dID); + return flag ? 2 : 0; } - else if (uplevel5_amount > 0 && pv >= uplevel5_amount && duLevel < 4) + else if (uplevel1_amount > 0 && pv >= uplevel1_amount && duLevel < 1) { - var flag = daoUser.UpdateuLevel("uLevel", 5, dID); - return flag ? 3 : 0; + var flag = daoUser.UpdateuLevel("uLevel", 1, dID); + return flag ? 1 : 0; } + //if (uplevel1_amount > 0 && pv >= uplevel1_amount && duLevel < 1) + //{ + // //买1级商品提升到1级会员,并加积分 + // //daoUser.UpdateMoney("umoney30", pv, dID); + // var flag = daoUser.UpdateuLevel("uLevel", 1, dID); + // return flag ? 1 : 0; + //} + //else if (uplevel2_amount > 0 && pv >= uplevel2_amount && duLevel < 2) + //{ + // var flag = daoUser.UpdateuLevel("uLevel", 2, dID); + // return flag ? 2 : 0; + //} + //else if (uplevel3_amount > 0 && pv >= uplevel3_amount && duLevel < 3) + //{ + // var flag = daoUser.UpdateuLevel("uLevel", 3, dID); + // return flag ? 3 : 0; + //} + //else if (uplevel4_amount > 0 && pv >= uplevel4_amount && duLevel < 4) + //{ + // var flag = daoUser.UpdateuLevel("uLevel", 4, dID); + // return flag ? 4 : 0; + //} + //else if (uplevel5_amount > 0 && pv >= uplevel5_amount && duLevel < 4) + //{ + // var flag = daoUser.UpdateuLevel("uLevel", 5, dID); + // return flag ? 3 : 0; + //} } } @@ -272,7 +330,8 @@ namespace Mtxfw.DAL /// 直属上级 /// 上级链条 /// 我当前上升到的等级 - public static void UpdteContacttLevel(int gtype, Model.user_info umodel, Mtxfw.Utility.Config config, DataRow Rows,int YContactID, string YContactIDS,int selflevel) + /// 团队总业绩 + public static void UpdteContacttLevel(int gtype, Model.user_info umodel, Mtxfw.Utility.Config config, DataRow Rows,int YContactID, string YContactIDS,int selflevel,Double zyj) { Model.User_Errlog mo; DateTime dt = DateTime.Now; @@ -281,23 +340,23 @@ namespace Mtxfw.DAL { var rowid = Convert.ToInt32(Rows["ID"].ToString()); var rowlevel = Convert.ToInt32(Rows["uLevel"].ToString()); - //只给直属上级升级,如果不是直属上级就不升级了 - if (YContactID != rowid) - { - return; - } + ////只给直属上级升级,如果不是直属上级就不升级了 + //if (YContactID != rowid) + //{ + // return; + //} - //如果直接上级等级小于1,就不升级了.从第1级开始这种类别的升级 - if (rowlevel < 1) - { - return; - } + ////如果直接上级等级小2,就不升级了.从第2级开始这种类别的升级 + //if (rowlevel < 2) + //{ + // return; + //} - //如果当前级别超过直接上级,直接上级就不能通过他不升级了 - if (selflevel> rowlevel) - { - return; - } + ////如果当前级别超过直接上级,直接上级就不能通过他不升级了 + //if (selflevel> rowlevel) + //{ + // return; + //} if (umodel != null) { var uplevel5_amount = config.upgrade_level5_amount_condition; @@ -306,74 +365,72 @@ namespace Mtxfw.DAL var upgrade_level5 = config.upgrade_level5_person_condition; var upgrade_level3 = config.upgrade_level3_person_condition; var upgrade_level4 = config.upgrade_level4_person_condition; - var umoneyyjze = umodel.umoney18; + var umoneyyjze = zyj;// umodel.umoney18; var uplevel = 0; var tjcount = 0; - switch (selflevel) + + tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel > 1"); + switch (rowlevel) { - //case 2: - // if (rowlevel == 2) - // { - // // rowlevel是否升到2级的条件 - // if (uplevel2_amount>0 && upgrade_level2>0) - // { - // tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + ""); - // if (tjcount >= upgrade_level2 && umoneyyjze >= uplevel2_amount) - // { - // uplevel = 2; - // } - // } - - // } - // break; - case 3: - // - if (rowlevel == 3) - { + case 2: + // rowlevel是否升到3级的条件 if (uplevel3_amount > 0 && upgrade_level3 > 0) { - tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + ""); + //tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + ""); if (tjcount >= upgrade_level3 && umoneyyjze >= uplevel3_amount) { uplevel = 3; } } - - } + + break; - case 4: - if (rowlevel == 4) - { + case 3: + // + // rowlevel是否升到4级的条件 if (uplevel4_amount > 0 && upgrade_level4 > 0) { - tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + ""); + // tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + ""); if (tjcount >= upgrade_level4 && umoneyyjze >= uplevel4_amount) { uplevel = 4; } } - } + break; - case 5: - if (rowlevel == 4) - { + case 4: + // rowlevel是否升到5级的条件 if (uplevel5_amount > 0 && upgrade_level5 > 0) { - tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + ""); + // tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + ""); if (tjcount >= upgrade_level5 && umoneyyjze >= uplevel5_amount) { uplevel = 5; } } - } + break; + //case 5: + + // // rowlevel是否升到5级的条件 + // if (uplevel5_amount > 0 && upgrade_level5 > 0) + // { + // // tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + ""); + // if (tjcount >= upgrade_level5 && umoneyyjze >= uplevel5_amount) + // { + // uplevel = 5; + // } + // } + + + // break; } if (uplevel > 0) { @@ -396,6 +453,121 @@ namespace Mtxfw.DAL } + /// + /// 补充因级别低时错过的业绩奖励,当升级到2级时,补上业绩升级 + /// + /// + /// + /// + /// + public static void ReviseselfLevel(int gtype, Model.user_info umodel, Mtxfw.Utility.Config config, int selflevel) + { + Model.User_Errlog mo; + DateTime dt = DateTime.Now; + + try + { + var rowid = umodel.Id; + var rowlevel = selflevel; + + if (umodel != null) + { + var uplevel5_amount = config.upgrade_level5_amount_condition; + var uplevel3_amount = config.upgrade_level3_amount_condition; + var uplevel4_amount = config.upgrade_level4_amount_condition; + var upgrade_level5 = config.upgrade_level5_person_condition; + var upgrade_level3 = config.upgrade_level3_person_condition; + var upgrade_level4 = config.upgrade_level4_person_condition; + //总业绩 + var umoneyyjze = umodel.umoney18; + + + var uplevel = 0; + var tjcount = 0; + //健康大使及以上级别人数 + tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel > 1"); + switch (rowlevel) + { + case 2: + + // rowlevel是否升到3级的条件 + if (uplevel3_amount > 0 && upgrade_level3 > 0) + { + //tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + ""); + if (tjcount >= upgrade_level3 && umoneyyjze >= uplevel3_amount) + { + uplevel = 3; + } + } + + + break; + case 3: + // + + // rowlevel是否升到4级的条件 + if (uplevel4_amount > 0 && upgrade_level4 > 0) + { + // tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + ""); + if (tjcount >= upgrade_level4 && umoneyyjze >= uplevel4_amount) + { + uplevel = 4; + } + } + + + break; + case 4: + + // rowlevel是否升到5级的条件 + if (uplevel5_amount > 0 && upgrade_level5 > 0) + { + // tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + ""); + if (tjcount >= upgrade_level5 && umoneyyjze >= uplevel5_amount) + { + uplevel = 5; + } + } + + + break; + //case 5: + + // // rowlevel是否升到5级的条件 + // if (uplevel5_amount > 0 && upgrade_level5 > 0) + // { + // // tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + ""); + // if (tjcount >= upgrade_level5 && umoneyyjze >= uplevel5_amount) + // { + // uplevel = 5; + // } + // } + + + // break; + } + if (uplevel > 0) + { + daoUser.UpdateuLevel("uLevel", uplevel, rowid); + } + + } + } + catch (Exception ex) + { + mo = new Model.User_Errlog(); + + mo.DLID = 0; + mo.ErrType = "更新自身会员级别"; + mo.addtime = dt; + mo.ErrBody = ex.ToString(); + mo.ErrBody2 = ex.Message; + new DAL.User_Errlog().Add(mo); + } + + } + + public static void UpdteuLevel(int gtype, Mtxfw.Utility.Config config, int dID, string YContactIDS, int YuLevel, int YuLevel4, int YuLevel11, int YIFBecomeAgents, Double Yumoney18, Double Yumoney19, DateTime dt) { int duLevel = YuLevel; @@ -945,6 +1117,7 @@ namespace Mtxfw.DAL Model.User_Errlog mo; DateTime dt = DateTime.Now; double result = yfbl; + Double jfje = xfz; try { @@ -958,59 +1131,80 @@ namespace Mtxfw.DAL var BZContent = "";//备注 if (ttype == 0) { + // jfje = pv; BZContent = "热卖商品批发差价"; } else { + // jfje = xfz; BZContent = "商城商品批发差价"; } //当前奖金比例 Double fixed_bonus = 0; //当前级别对应的最大奖金比例 - 下级已分比例 等于当前等级剩余可分奖金比例 //热卖商品分配方案 - if (ttype == 0) + //if (ttype == 0) + //{ + + // switch (ContactLevel) + // { + // case 1: + // fixed_bonus = config.level1_fixed_bonus - yfbl; + // break; + // case 2: + // fixed_bonus = config.level2_fixed_bonus - yfbl; + // break; + // case 3: + // fixed_bonus = config.level3_fixed_bonus - yfbl; + // break; + // case 4: + // fixed_bonus = config.level4_fixed_bonus - yfbl; + // break; + // } + //} + ////商城商品分配方案 + //else + //{ + // switch (ContactLevel) + // { + // case 1: + // fixed_bonus = config.level1_fixed_bonus - yfbl; + // break; + // case 2: + // fixed_bonus = config.level2_fixed_bonus - yfbl; + // break; + // case 3: + // fixed_bonus = config.level3_fixed_bonus - yfbl; + // break; + // case 4: + // fixed_bonus = config.level4_fixed_bonus - yfbl; + // break; + // } + + //} + switch (ContactLevel) { - - switch (ContactLevel) - { - case 1: - fixed_bonus = config.level1_fixed_bonus - yfbl; - break; - case 2: - fixed_bonus = config.level2_fixed_bonus - yfbl; - break; - case 3: - fixed_bonus = config.level3_fixed_bonus - yfbl; - break; - case 4: - fixed_bonus = config.level4_fixed_bonus - yfbl; - break; - } - } - //商城商品分配方案 - else - { - switch (ContactLevel) - { - case 1: - fixed_bonus = config.level1_fixed_bonus - yfbl; - break; - case 2: - fixed_bonus = config.level2_fixed_bonus - yfbl; - break; - case 3: - fixed_bonus = config.level3_fixed_bonus - yfbl; - break; - case 4: - fixed_bonus = config.level4_fixed_bonus - yfbl; - break; - } + case 1: + fixed_bonus = config.level1_fixed_bonus - yfbl; + break; + case 2: + fixed_bonus = config.level2_fixed_bonus - yfbl; + break; + case 3: + fixed_bonus = config.level3_fixed_bonus - yfbl; + break; + case 4: + fixed_bonus = config.level4_fixed_bonus - yfbl; + break; + case 5: + fixed_bonus = config.level5_fixed_bonus - yfbl; + break; } if (fixed_bonus > 0) { - if (pv > 0) + if (jfje > 0) { - Double jaingjin = Convert.ToDouble((fixed_bonus * pv).ToString("f4")); + Double jaingjin = Convert.ToDouble((fixed_bonus * jfje).ToString("f4")); if (jaingjin > 0.0000) { var mjl2 = new Model.user_Results_jl2(); @@ -1074,15 +1268,25 @@ namespace Mtxfw.DAL { Model.User_Errlog mo; DateTime dt = DateTime.Now; - double result = yfbl; + Double result = yfbl; + Double jsje = 0; + // 热卖商品按 金额计算佣金 ,商城商品按消费值计算佣金 + if (ttype == 0) + { + jsje = pv; + } + else + { + jsje = xfz; + } try { - var uplevel2_amount = config.direct_upgrade_level2_amount_condition; + //var uplevel2_amount = config.direct_upgrade_level2_amount_condition; ///热卖商品只有到达升级到2级金额的才能拿佣金 - if (pv < uplevel2_amount) - { - result = 0; - } + //if (pv < uplevel2_amount) + //{ + // result = 0; + //} int dID = Convert.ToInt32(ContactRow["ID"].ToString()); //Yumoney17就是余额,而且写成负数 Double Yumoney17 = Convert.ToDouble(Convert.ToDouble(ContactRow["umoney17"]).ToString("f4")); @@ -1091,13 +1295,13 @@ namespace Mtxfw.DAL var buyerlevelname = Mtxfw.Utility.Common.GetuLevelname(buyerlevel); var Contactlevelname = Mtxfw.Utility.Common.GetuLevelname(ContactLevel); ; var BZContent = "业务佣金";//备注 - - Double fixed_bonus = 0;//config.level3_fixed_bonus + //获取业务佣金比例 + Double fixed_bonus = config.level0_direct_superior_bonus_ratio; if (fixed_bonus > 0) { - if (pv > 0) + if (jsje > 0) { - Double jaingjin = Convert.ToDouble((fixed_bonus * pv).ToString("f4")); + Double jaingjin = Convert.ToDouble((fixed_bonus * jsje).ToString("f4")); if (jaingjin > 0.0000) { var mjl2 = new Model.user_Results_jl2(); diff --git a/Mtxfw.DAL/order_info.cs b/Mtxfw.DAL/order_info.cs index 43d52ee..453ab38 100644 --- a/Mtxfw.DAL/order_info.cs +++ b/Mtxfw.DAL/order_info.cs @@ -341,6 +341,33 @@ namespace Mtxfw.DAL parameters[2].Value = OID; return Mtxfw.Utility.SqlDbHelper_U.ExecuteCmd(strSql.ToString(), parameters); } + + /// + /// 核销订单 + /// + public int UpdateHxState(DateTime SelValue2, string OID,string hxm) + { + string SelValue = "2"; + StringBuilder strSql = new StringBuilder(); + strSql.Append("update order_info set "); + + strSql.Append("O_Payed=@SelValue,O_Payed_Date=@SelValue2"); + + + + strSql.Append(" where id=@OID and orderhxm =@hxm"); + SqlParameter[] parameters = { + new SqlParameter("@SelValue", SqlDbType.VarChar,50), + new SqlParameter("@SelValue2", SqlDbType.DateTime), + new SqlParameter("@OID", SqlDbType.VarChar,50), + new SqlParameter("@hxm", SqlDbType.VarChar, 50)}; + parameters[0].Value = SelValue; + parameters[1].Value = SelValue2; + parameters[2].Value = OID; + parameters[3].Value = hxm; + return Mtxfw.Utility.SqlDbHelper_U.ExecuteCmd(strSql.ToString(), parameters); + } + /// /// 更新运单号 /// diff --git a/Mtxfw.Utility/Common.cs b/Mtxfw.Utility/Common.cs index e96bf49..d2ce784 100644 --- a/Mtxfw.Utility/Common.cs +++ b/Mtxfw.Utility/Common.cs @@ -1980,7 +1980,7 @@ namespace Mtxfw.Utility { Dictionary dic = new Dictionary(); dic.Add(0, "普通会员"); - dic.Add(1, "准健康大使"); + dic.Add(1, "VIP"); dic.Add(2, "健康大使"); dic.Add(3, "健康合伙人"); dic.Add(4, "健康执行官"); diff --git a/Mtxfw.Utility/Config.cs b/Mtxfw.Utility/Config.cs index a99d960..f783037 100644 --- a/Mtxfw.Utility/Config.cs +++ b/Mtxfw.Utility/Config.cs @@ -2631,6 +2631,63 @@ namespace Mtxfw.Utility set { setData("webMoney153", value); } } + + /// + /// 小程序商户号 + /// + public string webXMchid + { + get + { return getData("webXMchid"); } + set + { setData("webXMchid", value); } + } + + /// + /// 小程序ApiV3Key + /// + public string webXApiV3Key + { + get + { return getData("webXApiV3Key"); } + set + { setData("webXApiV3Key", value); } + } + + /// + /// 小程序商户证书序列号 + /// + public string webXMchSerialNo + { + get + { return getData("webXMchSerialNo"); } + set + { setData("webXMchSerialNo", value); } + } + + + /// + /// 小程序商户私钥(PEM格式)从微信商户平台下载的apiclient_key.pem文件内容 + /// + public string webXPrivateKey + { + get + { return getData("webXPrivateKey"); } + set + { setData("webXPrivateKey", value); } + } + + /// + /// 微信支付V3商户私钥文件路径 + /// + public string webXPrivateKeyPath + { + get + { return getData("webXPrivateKeyPath"); } + set + { setData("webXPrivateKeyPath", value); } + } + public string webMoney154 { get diff --git a/Mtxfw.Utility/DbConnection.cs b/Mtxfw.Utility/DbConnection.cs index e216551..cc3b067 100644 --- a/Mtxfw.Utility/DbConnection.cs +++ b/Mtxfw.Utility/DbConnection.cs @@ -14,7 +14,7 @@ namespace Mtxfw.Utility { get { - string connection = ConfigurationManager.AppSettings["ConnStr0"].ToString(); //ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString; + string connection = ConfigurationManager.AppSettings["ConnStr"].ToString(); //string connection = ConfigurationManager.AppSettings["ConnStr0"].ToString(); //ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString; if (Encrypt == true) { return connection; diff --git a/Mtxfw.Utility/Mtxfw.Utility.csproj b/Mtxfw.Utility/Mtxfw.Utility.csproj index 06b31fc..cbf4a66 100644 --- a/Mtxfw.Utility/Mtxfw.Utility.csproj +++ b/Mtxfw.Utility/Mtxfw.Utility.csproj @@ -240,6 +240,9 @@ + + + diff --git a/Mtxfw.VipSite/Admin_Member_Products_add.aspx b/Mtxfw.VipSite/Admin_Member_Products_add.aspx index dfa4492..04774c9 100644 --- a/Mtxfw.VipSite/Admin_Member_Products_add.aspx +++ b/Mtxfw.VipSite/Admin_Member_Products_add.aspx @@ -532,7 +532,7 @@ var len = 1; function onaddgg() {//
  • //var html = '
    • '; - var html = '
      • '; + var html = '
        • '; @@ -571,7 +571,7 @@ var jg2 = fTrim($("#addggbox_box" + id + " #textjg2").val()); var jg1 = "";// fTrim($("#addggbox_box" + id + " #textjg1").val()); - var jg3 = "";// fTrim($("#addggbox_box" + id + " #textjg3").val()); + var jg3 = fTrim($("#addggbox_box" + id + " #textjg3").val()); var jg4 = fTrim($("#addggbox_box" + id + " #textjg4").val()); var jg5 = ""; var jg6 = ""; @@ -595,6 +595,12 @@ alert("零售价不能为空") } } + if (b) { + if (jg3 == "") { + b = false; + alert("成本价不能为空") + } + } if (b) { if (jg4 == "") { b = false; @@ -1080,13 +1086,13 @@
          -
          • 规格
          • 售价
          • 零售价
          • 消费值
          • +
            • 规格
            • 会员价
            • 零售价
            • 消费值
            • 成本价
            • 重量
            • 库存
            • 颜色
            • 图片
            <%=guige%> <%if (guige == "") {%> -
            • +
              • #颜色#
              • #图片#
              diff --git a/Mtxfw.VipSite/Admin_Member_Products_add.aspx.cs b/Mtxfw.VipSite/Admin_Member_Products_add.aspx.cs index 10f0f41..cdf5654 100644 --- a/Mtxfw.VipSite/Admin_Member_Products_add.aspx.cs +++ b/Mtxfw.VipSite/Admin_Member_Products_add.aspx.cs @@ -107,7 +107,7 @@ namespace Mtxfw.VipSite string tps = Dr["G_Images"].ToString(); //guige += "
              • "; //guige += "
              • #颜色#
              • #图片#
              "; - guige += "
              • "; + guige += "
                • "; guige += "
                • #颜色#
                • #图片#
                "; } } @@ -213,7 +213,7 @@ namespace Mtxfw.VipSite int G_KC = int.Parse(Dr["G_KC"].ToString()); string colors = Dr["G_Color"].ToString(); string tps = Dr["G_Images"].ToString(); - guige += "
                • "; + guige += "
                  • "; guige += "
                  • #颜色#
                  • #图片#
                  "; diff --git a/Mtxfw.VipSite/Admin_Member_Products_add1.aspx b/Mtxfw.VipSite/Admin_Member_Products_add1.aspx index 8e9de8d..06d4bf9 100644 --- a/Mtxfw.VipSite/Admin_Member_Products_add1.aspx +++ b/Mtxfw.VipSite/Admin_Member_Products_add1.aspx @@ -461,7 +461,7 @@ var len = 1; function onaddgg() { //var html = '
                  • '; - var html = '
                    • '; + var html = '
                      • '; html += '
                      • #颜色#
                      • #图片#
        '; @@ -499,7 +499,7 @@ var jg2 = fTrim($("#addggbox_box" + id + " #textjg2").val()); var jg0 = ""; var jg1 = "";//fTrim($("#addggbox_box" + id + " #textjg1").val()); - var jg3 = ""; + var jg3 = fTrim($("#addggbox_box" + id + " #textjg3").val()); jg4 = fTrim($("#addggbox_box" + id + " #textjg4").val()); var jg5 = ""; var jg6 = ""; @@ -541,12 +541,12 @@ // alert("直推奖励不能为空") // } // } - //if (b) { - // if (jg1== "") { - // b = false; - // alert("复购直推奖励不能为空") - // } - //} + if (b) { + if (jg3== "") { + b = false; + alert("成本价不能为空") + } + } if (b) { @@ -1005,13 +1005,13 @@
        -
        • 规格
        • 会员价
        • 零售价
        • 消费值
        • +
          • 规格
          • 优惠价
          • 零售价
          • 消费值
          • 成本价
          • 重量
          • 库存
          • 颜色
          • 图片
          <%=guige%> <%if (guige == "") {%> -
          • +
            • #颜色#
            • #图片#
            <%} %> diff --git a/Mtxfw.VipSite/Admin_Member_Products_add1.aspx.cs b/Mtxfw.VipSite/Admin_Member_Products_add1.aspx.cs index 9809dc8..545a8e9 100644 --- a/Mtxfw.VipSite/Admin_Member_Products_add1.aspx.cs +++ b/Mtxfw.VipSite/Admin_Member_Products_add1.aspx.cs @@ -106,7 +106,7 @@ namespace Mtxfw.VipSite int G_KC = int.Parse(Dr["G_KC"].ToString()); string colors = Dr["G_Color"].ToString(); string tps = Dr["G_Images"].ToString(); - guige += "
            • "; + guige += "
              • "; @@ -213,7 +213,7 @@ namespace Mtxfw.VipSite string colors = Dr["G_Color"].ToString(); string tps = Dr["G_Images"].ToString(); //guige += "
                • "; - guige += "
                  • "; + guige += "
                    • "; diff --git a/Mtxfw.VipSite/App_Data/Config.xml b/Mtxfw.VipSite/App_Data/Config.xml index c7a90b1..1d336ed 100644 --- a/Mtxfw.VipSite/App_Data/Config.xml +++ b/Mtxfw.VipSite/App_Data/Config.xml @@ -229,8 +229,13 @@ - - + + + + + + + @@ -238,7 +243,7 @@ - + @@ -287,20 +292,20 @@ - - - - + + + + - + - - - + + + \ No newline at end of file diff --git a/Mtxfw.VipSite/App_Data/apiclient_cert.p12 b/Mtxfw.VipSite/App_Data/apiclient_cert.p12 index 26dc1a9..61491fe 100644 Binary files a/Mtxfw.VipSite/App_Data/apiclient_cert.p12 and b/Mtxfw.VipSite/App_Data/apiclient_cert.p12 differ diff --git a/Mtxfw.VipSite/App_Data/apiclient_cert.pem b/Mtxfw.VipSite/App_Data/apiclient_cert.pem index 1c6b559..1e89505 100644 --- a/Mtxfw.VipSite/App_Data/apiclient_cert.pem +++ b/Mtxfw.VipSite/App_Data/apiclient_cert.pem @@ -1,25 +1,25 @@ -----BEGIN CERTIFICATE----- -MIIEKzCCAxOgAwIBAgIUPMkWMvsvvpeHvYW6wIG+dmulQuAwDQYJKoZIhvcNAQEL +MIIENDCCAxygAwIBAgIULKe9UcraZCtJxQngP2W6FWyg31cwDQYJKoZIhvcNAQEL BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg -Q0EwHhcNMjQwOTMwMTIyMjUyWhcNMjkwOTI5MTIyMjUyWjCBhDETMBEGA1UEAwwK -MTY5MzQyNjk4NDEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMTAwLgYDVQQL -DCfmsZ/oi4/mma7msJHmhafmlbDlrZfnp5HmioDmnInpmZDlhazlj7gxCzAJBgNV -BAYTAkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBAOPeN5TW/ENyICvrQ+iSzHWLOpyoJpcr15SWVRkP3+AugO48Mmc8 -GP0zRZPKWU8QZrECSYWqIXcAy0ZEbYD+vLj9inLoyJoc0Z3aNgXHulsgb6Ge6Dlh -PFf6ibyC1GvPf1FgOzFYVFkPVIFLcLVzOkDmS2tU2Yetpx7wW67axAnWRAigUSdH -Y1GYNBVpDPoAu7LkgdrtzPWeukeCMfwVxfNI+PNjr0Hxv/c4EfHL4AlcUDX3GZBQ -z7kzOtSHEe3mL2+W5uZgjt9o8TMIUlc9KujJypw5uYuA1viSwCW+T6B0XIhoOAGW -jLMQwJo2Tf8Uy+Gm8EUyh5izEFlcMnGhsh8CAwEAAaOBuTCBtjAJBgNVHRMEAjAA -MAsGA1UdDwQEAwID+DCBmwYDVR0fBIGTMIGQMIGNoIGKoIGHhoGEaHR0cDovL2V2 -Y2EuaXRydXMuY29tLmNuL3B1YmxpYy9pdHJ1c2NybD9DQT0xQkQ0MjIwRTUwREJD -MDRCMDZBRDM5NzU0OTg0NkMwMUMzRThFQkQyJnNnPUhBQ0M0NzFCNjU0MjJFMTJC -MjdBOUQzM0E4N0FEMUNERjU5MjZFMTQwMzcxMA0GCSqGSIb3DQEBCwUAA4IBAQCt -Y4b0d/mUO1Nu5E4MNTD5bPTVvo+y1HSSb5qA8I5wojzqK6sbgRb6pfUpebKKF6Co -WrVOuceKW+Q6MYLBdGOA+rCQ5R9q6va75j2Hva51c3nEs7N2V/UmTA0JNXJgxu4z -mL6E0pKSsAQI6cAwgGIhqHGPRRcWPbDNuRfsJIK5ALgxNP4akL5D5DBGRyegPHYA -a7WZJPmlLz/ZQHSIgNZHvdlfCScw2A6Yo2mQjupUFhPRcm3j+EUDLt/NRxOP+ctM -YXkvxYwU0ClV2uqhWvdY+a8X+wGe6hMqNXXPpoL3u8F43qQ7cxmFJhGWzLmzho3N -jxMTqWtMi7ejjtmlZCHW +Q0EwHhcNMjUxMDMwMTIyMDMzWhcNMzAxMDI5MTIyMDMzWjCBjTETMBEGA1UEAwwK +MTczMDMwNDQ0NzEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMTkwNwYDVQQL +DDDlqITlupXlqITmmJ/ljLrlgaXkuYvnv7zlgaXlurfnrqHnkIbmnInpmZDlhazl +j7gxCzAJBgNVBAYTAkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBALyumMYGdJA0KfhGZj0vvLVZF5rIgnh1Fm2mVuoP +B7rZxMs7Xy6OBIAjSVIDnx4Xim7/VIXmAQ7uokw8FtXqPXCFC3nzOYxyzjIP81Jr +v9Dso7n7CStJV5uQ0aUz68X3MPz3fssLWW0fkDPmcTmpbWhSdo26XVv7AJjkqcJZ +8uPVOVr55qvGvNK6MAqsw6Tp3Fwox2w1jXIwXyDpTvcdiLwsVZcDCBMLSdTe+1tB +vi/8NpGVUFJjOiy67pAsPQDzvsYekd4kOKP1U0ALjndz7TCM1cweLN9Vw5gP+2JK +r3uzo4xyxitPWvfMg1SBzo4C4EnkzmeukYA3DJPpNin0k4ECAwEAAaOBuTCBtjAJ +BgNVHRMEAjAAMAsGA1UdDwQEAwID+DCBmwYDVR0fBIGTMIGQMIGNoIGKoIGHhoGE +aHR0cDovL2V2Y2EuaXRydXMuY29tLmNuL3B1YmxpYy9pdHJ1c2NybD9DQT0xQkQ0 +MjIwRTUwREJDMDRCMDZBRDM5NzU0OTg0NkMwMUMzRThFQkQyJnNnPUhBQ0M0NzFC +NjU0MjJFMTJCMjdBOUQzM0E4N0FEMUNERjU5MjZFMTQwMzcxMA0GCSqGSIb3DQEB +CwUAA4IBAQB7OnuXiMBzru5H5jgeP+ozpGfkYgOU54qoWmTJowC0V4NGgah0fC/k +43twxMu2VNqw4Szoqdk+eHRYiH1W/H3p5B7rRrk86Zxk5euIBrPLDmdTOMdDHvmi +FHOBL3jaq40xmfWMx3A5drSA6D/nRNHk0MmwOLTXfDXblDigi1guyDVOGZL0jfru +GZYsMEUd85DSL1UWUJHopYCmAFjlCJbKO3ooSf8xXre/uR4VekauG95aGpMqRtN/ +4H9derW2z40SFmq0Pe508UC3f3r+B+DtD6NBi/HYwI+JOe0CM3voeA09RoTEjSLX +hZ1qfqik0Y2vImW9PwapzwI6H5WF0TrY -----END CERTIFICATE----- diff --git a/Mtxfw.VipSite/App_Data/apiclient_key.pem b/Mtxfw.VipSite/App_Data/apiclient_key.pem index db46c46..4d231c0 100644 --- a/Mtxfw.VipSite/App_Data/apiclient_key.pem +++ b/Mtxfw.VipSite/App_Data/apiclient_key.pem @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDj3jeU1vxDciAr -60Poksx1izqcqCaXK9eUllUZD9/gLoDuPDJnPBj9M0WTyllPEGaxAkmFqiF3AMtG -RG2A/ry4/Ypy6MiaHNGd2jYFx7pbIG+hnug5YTxX+om8gtRrz39RYDsxWFRZD1SB -S3C1czpA5ktrVNmHrace8Fuu2sQJ1kQIoFEnR2NRmDQVaQz6ALuy5IHa7cz1nrpH -gjH8FcXzSPjzY69B8b/3OBHxy+AJXFA19xmQUM+5MzrUhxHt5i9vlubmYI7faPEz -CFJXPSroycqcObmLgNb4ksAlvk+gdFyIaDgBloyzEMCaNk3/FMvhpvBFMoeYsxBZ -XDJxobIfAgMBAAECggEAdeDsIexBXea5K98uJy9h4+DdtlLqe8OrZ2uJpEhpCUEl -Y5jyfiNBziJq+PRx1QvoA+PqAuKrIzPe9H/LojKlkJFgwOcZd1g3PBC5Z64WArQ5 -64MYIS7jF6Q9Aq8vkoIqG//LP1Cxec0La0OKj+OHHDHGjES9r4mu7btrwn3bcjZS -gbG9qSVYdMmu7N6cM7tzK3BdVG12o2IDWxA3Y6AMtuENo+lH24Qg2CfbhSiCVxZ4 -rRjBDDpBIbukygXYucmIkbSIAiY0IvHr7TAzqrC1TBYBahdzboiR5TKR9uBEEN9H -Szbc/49SVZCB+gDzl0naYKkqmnp++B78wYIq95HbMQKBgQD/HqdNj9i6rB76bBYx -KO5+ZmCWtHMxxBpjVm4J8SpZ7mYRbhC7lEbS8LnReb8fkE/oumfNiarvKc/22Yxo -1BmDDCFzBJoyXwzn9N2s/KBTKDKfr3xdASoMkPf5W1Lw8p5TrEoHgnZO39M7h3rW -hn1hFfaN8jAbl0ug5HeiEOSXlwKBgQDkp34DjA2MiH3ugKpQMmu4ECn++R81f5Lk -bGGp3g5bjvzM29AxmQYCpD/9NmTgEa9TTV4IkN2rITDZ966f1LqdymxADfn+GxXv -G7AeH+5uUeQnRuQ8xg1NMGGGItTwrunLUNrAETY7DgiCDnWAqpNP3XW3/hVH4nXn -aEaYLCXKuQKBgAGSms1rmZZtATPh/rEG45F76BSFwEAKSW9bVQpSpkQvqAlreEbv -vxAF099qtLbpGNUCcSlfM+KNi26mIKt0w0N/i6U93gV5eIblh4hNdl+M2+MIHegk -3bF+I0kyOuypUjiJ01sAfuI1lwPC7grsgVFb5U0ytQE2iYzQW7xwBji5AoGBALsL -lNb7+51pjnLLSAdgp6OjfWc5jWErIhO/4UifAOm/F2fRrQbVoggJKttNYsm1TdH8 -KR8iumKiPR8hMPVIhPxNOa5QgJ9wssmtwa1y+429acEDifN5JCpvmGetGLpmq5QJ -aVjS+6Tlfuo9P7voTad4hzLjI69xPnf1YkJbYvLpAoGABZ8itwHLBuvOYFoYgWOf -wUxplsOWO/wcltH0o1bj8OpdgdurACtXF8P3sMwtP2o0YaKU4QOOhCaYEE0EHQOQ -lzQf3LwNqiyfdpgIRg8gjAkKcyVp8Ci7Tb3dE5Iro4CXJcwtrxkPsXkUAMsKiPeE -QW3LJmlxOdz/YdVgUC4Y8wo= +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC8rpjGBnSQNCn4 +RmY9L7y1WReayIJ4dRZtplbqDwe62cTLO18ujgSAI0lSA58eF4pu/1SF5gEO7qJM +PBbV6j1whQt58zmMcs4yD/NSa7/Q7KO5+wkrSVebkNGlM+vF9zD8937LC1ltH5Az +5nE5qW1oUnaNul1b+wCY5KnCWfLj1Tla+earxrzSujAKrMOk6dxcKMdsNY1yMF8g +6U73HYi8LFWXAwgTC0nU3vtbQb4v/DaRlVBSYzosuu6QLD0A877GHpHeJDij9VNA +C453c+0wjNXMHizfVcOYD/tiSq97s6OMcsYrT1r3zINUgc6OAuBJ5M5nrpGANwyT +6TYp9JOBAgMBAAECggEAGxyXdTTuQN5N/Y/YFwip/ADuRF51aOuiKmVRbdZ1DONH +xNAmMCFWAjePzIoarg9B5AsqUQcotcWSapPj0B8VbvqfGInbhhPlDwp9syUqbdHj +ANFSkva58O+RQETCpzKKxn6lqHVcBzMW3G5LbLassuXOhTT3P0VE47NPtU6JeTUm +CcLAx9dlg7At6Y7R9rDhvn/kyfZGZ6I9PQNuCu4c/ExkubA3J3QAgrXHzab74qO6 +PsyiinNSzzhguYtEd8F3HDq/c2laRGrBHb4otO0GzHyGSCkwfbN3gLqghGjA12XQ +9tAjcHV+NU5NaD2MPXN4d+x+2QMiuFM+6Rf6Y+hW9QKBgQDmnlb9OIFNng1+zewC +IEnYUDKF5UAwbijy9anrM+V6mVQXguL11hgGK+tmrAHNUr/fGJ7gDGQn4TUFzbLz +4eUCYxAqdm0fqEa/khKuQoxXsIfmc0J3NpInZgOL9FdQRrFJefz8U7piWzI6rw59 +e9BfQYrCcn9vVOvP6rXCb0NWIwKBgQDRcrL9mvTSUcxDzFLVUms2AI3bslEMR3UJ +ErxiXcm2zp2apBIhMuM56I5ifVEiYMs6gZxWsKxsIFI7dUvOFPlKaLbugnhx9yst +iFBKR511U5AupF1x/8HBis29gOQkPSyIbrIT4KLmGrMOl4F+fz5i0crsrmwdzpgp +69yAbX6gCwKBgB7vSG3pIXce52KGDs1uNVmd0Fkjmkukyztj9qoFKRgb7yrENNuT +H1/cjlQUaJ15JyGu9MjLALhUvj8MC6ApQgXi8e0wO40Ojobt+jGD3b15gZFJDrZd +DJfaWElyui+be/aGNYhHVu4Qm5lBmCj+7cGJUiqpHyz48DTQoBb3w8mPAoGARM3S +IN97l2/Jk2gWuf8mOwo5j7dnSopa1w0xl3rJ3eTH/1nwnrlRzd8ojxAtzAZSHLkh +O5U0PxzrBp9EtMFNF3WIypdPq9iPdZi3D3+xKS63SaszC1UCOGs5pQwnZgQ2kecT +VtZPjRmuQpfgsUZpnxrd95xg5fXNJNBXklTl6PsCgYEA45dnym313OpVTY7aQi3j +Mof4tK7UT2ak2UbP6moI25oIoL1y2YxF5wc0ZtOlqZdzmXtjf5vINmxCIaOCHxPR +e31e876AX1CUOZGYD7Za2VongfCaCFwZXFjzKZtmaE80jaI76RBAO7JO+4EUjvQ/ +B4Gy6kAEZeySQxf1ImZJfcs= -----END PRIVATE KEY----- diff --git a/Mtxfw.VipSite/pay/weixinnotify_url.aspx.cs b/Mtxfw.VipSite/pay/weixinnotify_url.aspx.cs index 1620fc1..ba86b4d 100644 --- a/Mtxfw.VipSite/pay/weixinnotify_url.aspx.cs +++ b/Mtxfw.VipSite/pay/weixinnotify_url.aspx.cs @@ -1,14 +1,16 @@ -using System; +using Mtxfw.Utility; +using System; using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Globalization; +using System.IO; using System.Linq; +using System.Text; 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 VodSDK; namespace Mtxfw.shop { @@ -39,48 +41,80 @@ namespace Mtxfw.shop { string hostname = Request.Url.Host; - string wxNotifyXml = ""; - byte[] bytes = Request.BinaryRead(Request.ContentLength); - string strContent = bytes.ToString(); - if (strContent.IndexOf("REFUND.") != -1) + // 处理V2/V3通知 + byte[] bytes = Request.BinaryRead(Request.ContentLength); + string content = System.Text.Encoding.UTF8.GetString(bytes); + + // V3通知处理 (JSON格式) + if (content.StartsWith("{") || Request.Headers["Wechatpay-Signature"] != null) + { + var v3Handler = new WxPayV3NotifyHandler(config); + string timestamp = Request.Headers["Wechatpay-Timestamp"]; + string nonce = Request.Headers["Wechatpay-Nonce"]; + string signature = Request.Headers["Wechatpay-Signature"]; + + if (v3Handler.VerifySignature(timestamp, nonce, content, signature)) + { + var json = v3Handler.ProcessNotification(new MemoryStream(bytes)); + string eventType = json["event_type"]?.ToString(); + + // 提取V3通知关键参数 + // 商户订单号,对应创建订单时传入的out_trade_no + string outTradeNo = json["resource"]?["out_trade_no"]?.ToString(); + + // 微信支付订单号,微信系统内部唯一标识 + string transactionId = json["resource"]?["transaction_id"]?.ToString(); + + // 订单总金额,单位为分(需转换为元需除以100) + string totalFee = json["resource"]?["amount"]?["total"]?.ToString(); + + // 支付完成时间,格式为yyyy-MM-ddTHH:mm:ss+08:00 + string successTime = json["resource"]?["success_time"]?.ToString(); + + // 保存原始通知供调试 + System.IO.File.WriteAllText(Server.MapPath("/weixin/payv3.json"), json.ToString()); + + // 转换为与V2兼容的格式,复用现有业务逻辑 + if (eventType == "TRANSACTION.SUCCESS") { - wxNotifyXml = System.Text.Encoding.UTF8.GetString(bytes); + SortedDictionary pay_dic = new SortedDictionary(); + pay_dic.Add("out_trade_no", outTradeNo); + pay_dic.Add("transaction_id", transactionId); + pay_dic.Add("total_fee", totalFee); + pay_dic.Add("time_end", successTime); + pay_dic.Add("result_code", "SUCCESS"); + pay_dic.Add("return_code", "SUCCESS"); + + // 复用V2的业务处理逻辑 + string PARTNER_KEY = config.webPARTNER_KEY; + string total_fee = pay_dic["total_fee"]; + Double total_amount = Convert.ToDouble((Convert.ToDouble(total_fee) / 100).ToString("f2")); + string out_trade_no = pay_dic["out_trade_no"]; + string transaction_id = pay_dic["transaction_id"]; + bool ifjs = true; - if (wxNotifyXml.Length == 0) - { - return; - } + if (Application["LogLock" + out_trade_no] != null) + { + ifjs = false; + } + if (ifjs) + { + FinishWork(out_trade_no, transaction_id); + } - XmlDocument xmldoc = new XmlDocument(); - xmldoc.LoadXml(wxNotifyXml); - xmldoc.Save(Server.MapPath("/weixin/payxml0.xml")); - string event_type = xmldoc.SelectSingleNode("/xml/event_type").InnerText; - if (event_type == "REFUND.SUCCESS") - { - } - else if (event_type == "REFUND.ABNORMAL") - { + } + } + } + // V2通知处理 (XML格式) + else + { + string wxNotifyXml = content; + if (wxNotifyXml.Length == 0) return; - } - else if (event_type == "REFUND.CLOSED") - { - - } - } - else - { - wxNotifyXml = System.Text.Encoding.UTF8.GetString(bytes); - - if (wxNotifyXml.Length == 0) - { - return; - } - - XmlDocument xmldoc = new XmlDocument(); - - xmldoc.LoadXml(wxNotifyXml); + XmlDocument xmldoc = new XmlDocument(); + xmldoc.LoadXml(wxNotifyXml); xmldoc.Save(Server.MapPath("/weixin/payxml.xml")); string ResultCode = xmldoc.SelectSingleNode("/xml/result_code").InnerText; string ReturnCode = xmldoc.SelectSingleNode("/xml/return_code").InnerText; @@ -151,566 +185,571 @@ namespace Mtxfw.shop * *********************************/ bool ifjs = true; + if (Application["LogLock" + out_trade_no] != null) { ifjs = false; } - if (ifjs) + if (ifjs) { - Application["LogLock" + out_trade_no] = "lock"; - Mtxfw.Model.user_Results ReModel = daoResults.GetModel2(2, out_trade_no); - 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) - { - 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] != "") - { - Model.user_Results_jl2 jlmodel = daojl2.GetModel(Convert.ToInt64(aResultIdS[i])); - if (jlmodel != null) - { - daojl2.UpdateSeef("seef", 1, "seeftime", dt, jlmodel.Id); - Double money = Convert.ToDouble(jlmodel.Addmoney.ToString("f2"));//流量积分 - string[] area = jlmodel.OrdersIDs.Split('|'); - string province = area[0]; - string city = (area.Length > 1 ? area[1] : ""); - string county = (area.Length > 2 ? area[2] : ""); - string address = jlmodel.BZContent; - if (jlmodel.utype2 == 4) - { - daoUser.UpdateuLevel("uLevel28", Convert.ToInt32(jlmodel.Totalmoney.ToString().Split('.')[0]), umodel.Id); - if (money > 0.00) - { - mjl2 = new Model.user_Results_jl2(); - mjl2.MemberId = umodel.Id; - mjl2.MemberId2 = 0; - mjl2.Addmoney = money; - mjl2.Cutmoney = 0; - mjl2.Totalmoney = (umodel.umoney38 + money); - mjl2.addtime = dt; - mjl2.BZContent = "申请品牌展示"; - mjl2.PayID = ""; - mjl2.OrdersIDs = ""; - mjl2.OrdersID = 0; - mjl2.utype = 13; - mjl2.utype2 = 0; - mjl2.Seef = -1; - mjl2.seeftime = dt; - mjl2.gtype = gtype; - daojl2.Add(mjl2); - //减少买家余额 - daoUser.UpdateMoney("umoney38", money, umodel.Id); - umodel.umoney38 += money; - } - } - Double money0 = Convert.ToDouble(jlmodel.Cutmoney.ToString("f2"));//贡献值 - if (money0 > 0.00) - { - mjl2 = new Model.user_Results_jl2(); - mjl2.MemberId = umodel.Id; - mjl2.MemberId2 = 0; - mjl2.Addmoney = money0; - mjl2.Cutmoney = 0; - mjl2.Totalmoney = (umodel.umoney31 + money0); - mjl2.addtime = dt; - mjl2.BZContent = "申请企业品牌展示赠送"; - mjl2.PayID = ""; - mjl2.OrdersIDs = ""; - mjl2.OrdersID = 0; - mjl2.utype = 3; - mjl2.utype2 = 0; - mjl2.Seef = -1; - mjl2.seeftime = dt; - mjl2.gtype = gtype; - daojl2.Add(mjl2); - mjl2 = new Model.user_Results_jl2(); - daoUser.UpdateMoney("umoney31", money0, umodel.Id); - } - if (jlmodel.MinNumber == 1) - { - if (umodel.uLevel26 == 0) - { - daoUser.UpdateuLevel("uLevel26", 1, umodel.Id); - } - } - string[] ASuperiorsIDS = (umodel.ContactIDS).Split(','); - int uds = 1, uds0 = 1; - for (int ak = ASuperiorsIDS.Length - 2; ak > 0; ak--) - { - if (ASuperiorsIDS[ak] != "") - { - // - DataSet ds = daoUser.GetList1("ID,uLevel26", "gtype=" + gtype + " and UserState='正常' And IFStores=0 And uLevel17=0 And id=" + ASuperiorsIDS[ak]); - if (ds.Tables[0].Rows.Count > 0) - { - int dID = Convert.ToInt32(ds.Tables[0].Rows[0]["ID"].ToString()); - int YuLevel26 = Convert.ToInt32(ds.Tables[0].Rows[0]["uLevel26"].ToString()); - if (uds == 1) - { - Double bfb = Convert.ToDouble(config.webMoney48); - if (YuLevel26 == 1) - { - bfb = bfb = Convert.ToDouble(config.webMoney49); - uds0 += 1; - } - Double umoney4 = Convert.ToDouble(Convert.ToDouble((money * bfb / 100).ToString("0.##")).ToString("f2")); - if (umoney4 > 0.0000) - { - daoUser.UpdateMoney("umoney4", umoney4, dID); - DAL.MemberStatistics.Statistics(dt, dID, 0, jlmodel.Id, 1, 0, 1, "来源" + umodel.RealName + "分享奖励", gtype); - } - } - if (YuLevel26 == 1) - { - if (uds0 == 1) - { - Double bfb = (Convert.ToDouble(config.webMoney49) - Convert.ToDouble(config.webMoney48)); - Double umoney4 = Convert.ToDouble(Convert.ToDouble((money * bfb / 100).ToString("0.##")).ToString("f2")); - if (umoney4 > 0.0000) - { - daoUser.UpdateMoney("umoney4", umoney4, dID); - DAL.MemberStatistics.Statistics(dt, dID, 0, jlmodel.Id, 1, 0, 1, "来源" + umodel.RealName + "VIP奖励", gtype); - } - } - uds0 += 1; - } - uds += 1; - } - ds.Clear(); - } - } - - DataSet dds = daoproxy.GetList1("MemberId", "gtype=" + gtype + " and TType=1 And seef=1 And AgenLevel=2 And Agenprovince='" + province + "' And Agencity='" + city + "' And AgenCounty='" + county + "' And CHARINDEX(AAddress,'" + address + "')>0"); - if (dds.Tables[0].Rows.Count > 0) - { - foreach (System.Data.DataRow drv in dds.Tables[0].Rows) - { - int dID = Convert.ToInt32(drv["MemberId"].ToString()); - - Double bfb = Convert.ToDouble(Convert.ToDouble(config.webMoney62).ToString("f2")); - Double umoney4 = Convert.ToDouble(((bfb / 100) * money).ToString("f2")); - if (umoney4 > 0.00) - { - daoUser.UpdateMoney("umoney4", umoney4, dID); - DAL.MemberStatistics.Statistics(dt, dID, 0, jlmodel.Id, 1, 0, 1, "来源" + umodel.RealName + "乡镇代理奖励", gtype); - } - } - } - dds.Clear(); - dds = daoproxy.GetList1("MemberId", "gtype=" + gtype + " and TType=1 And seef=1 And AgenLevel=3 And Agenprovince='" + province + "' And Agencity='" + city + "' And AgenCounty='" + county + "'"); - if (dds.Tables[0].Rows.Count > 0) - { - foreach (System.Data.DataRow drv in dds.Tables[0].Rows) - { - int dID = Convert.ToInt32(drv["MemberId"].ToString()); - - Double bfb = Convert.ToDouble(Convert.ToDouble(config.webMoney61).ToString("f2")); - Double umoney4 = Convert.ToDouble(((bfb / 100) * money).ToString("f2")); - if (umoney4 > 0.00) - { - daoUser.UpdateMoney("umoney4", umoney4, dID); - DAL.MemberStatistics.Statistics(dt, dID, 0, jlmodel.Id, 1, 0, 1, "来源" + umodel.RealName + "县代理奖励", gtype); - } - } - } - dds.Clear(); - dds = daoproxy.GetList1("MemberId", "gtype=" + gtype + " and TType=1 And seef=1 And AgenLevel=4 And Agenprovince='" + province + "' And Agencity='" + city + "'"); - if (dds.Tables[0].Rows.Count > 0) - { - foreach (System.Data.DataRow drv in dds.Tables[0].Rows) - { - int dID = Convert.ToInt32(drv["MemberId"].ToString()); - - Double bfb = Convert.ToDouble(Convert.ToDouble(config.webMoney60).ToString("f2")); - Double umoney4 = Convert.ToDouble(((bfb / 100) * money).ToString("f2")); - if (umoney4 > 0.00) - { - daoUser.UpdateMoney("umoney4", umoney4, dID); - DAL.MemberStatistics.Statistics(dt, dID, 0, jlmodel.Id, 1, 0, 1, "来源" + umodel.RealName + "市代理奖励", gtype); - } - } - } - dds.Clear(); - dds = daoproxy.GetList1("MemberId", "gtype=" + gtype + " and TType=1 And seef=1 And AgenLevel=5 And Agenprovince='" + province + "'"); - if (dds.Tables[0].Rows.Count > 0) - { - foreach (System.Data.DataRow drv in dds.Tables[0].Rows) - { - int dID = Convert.ToInt32(drv["MemberId"].ToString()); - - Double bfb = Convert.ToDouble(Convert.ToDouble(config.webMoney58).ToString("f2")); - Double umoney4 = Convert.ToDouble(((bfb / 100) * money).ToString("f2"));// - - if (umoney4 > 0.00) - { - daoUser.UpdateMoney("umoney4", umoney4, dID); - DAL.MemberStatistics.Statistics(dt, dID, 0, jlmodel.Id, 1, 0, 1, "来源" + umodel.RealName + "省代理奖励", gtype); - } - } - } - dds.Clear(); - } - } - } - 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 + ReModel.Totalmoney); - mjl2.addtime = dt; - mjl2.BZContent = "微信支付购买VIP套餐,余额充值成功"; - mjl2.PayID = ""; - mjl2.OrdersIDs = ""; - mjl2.OrdersID = 0; - mjl2.utype = 2; - 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 = "微信支付购买VIP套餐,余额扣款成功"; - mjl2.PayID = ""; - mjl2.OrdersIDs = ""; - mjl2.OrdersID = 0; - mjl2.utype = 2; - 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 = -1, 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; - 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 yyq = 0;// Convert.ToInt32(config.webMoney4); - int OrderId = 0, PId = 0; - 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) - { - - } - else if (utype == 2) - { - if (umodel.uLevel14 == 1) - { - 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); - } - - - daoorder.UpdateqyState(0, "1", dt, OrderModel.Id); - if (peitype == 1) - { - string orderhxm = dt.ToString("yyMMddHHmmss", DateTimeFormatInfo.InvariantInfo) + OrderModel.Id; - daoorder.Updateorderhxm(orderhxm, OrderModel.Id); - //daoorder.UpdateqyState(0, "2", dt, OrderModel.Id); - //daoorder.Updateyundanhao("", "auto", "", OrderModel.Id); - } - - daoorder.Updatetranid(transaction_id, out_trade_no, OrderModel.Id); - /*bool ifb = true; - DateTime dt1 = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); - if (config.webXaccess_token != "" && config.webXaccess_token_time != "") - { - - DateTime dt2 = Convert.ToDateTime(Convert.ToDateTime(config.webXaccess_token_time).AddMinutes(100).ToString("yyyy-MM-dd HH:mm:ss")); - if (dt1 > dt2) - { - ifb = false; - } - } - else - { - ifb = false; - } - if (!ifb) - { - Mtxfw.Utility.WXaccess_token ac = Mtxfw.Utility.Common.getxaccess_token(config.webXAppID, config.webXAppSecret); - config.webXaccess_token = ac.access_token; - config.webXaccess_token_time = dt1.ToString("yyyy-MM-dd HH:mm:ss"); - config.Save(); - } - string strResult0 = Mtxfw.Utility.Common.getPage2("https://api.weixin.qq.com/wxa/sec/order/update_order_detail_path?access_token=" + config.webXaccess_token, "", "utf-8", true, true, "path=pages/index/index?id=${" + out_trade_no + "}"); - Model.User_Errlog mo = new Model.User_Errlog(); - - mo.DLID = 0; - mo.ErrType = "任E森命微信支付配置订单详情路径"; - mo.addtime = DateTime.Now; - mo.ErrBody = strResult0; - mo.ErrBody2 = out_trade_no; - new DAL.User_Errlog().Add(mo);*/ - - } - } - } - - } - - 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); - } - - - - } - } - - } + FinishWork(out_trade_no, transaction_id); } + //if (ifjs) + //{ + // Application["LogLock" + out_trade_no] = "lock"; + // Mtxfw.Model.user_Results ReModel = daoResults.GetModel2(2, out_trade_no); + // 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) + // { + // 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] != "") + // { + // Model.user_Results_jl2 jlmodel = daojl2.GetModel(Convert.ToInt64(aResultIdS[i])); + // if (jlmodel != null) + // { + // daojl2.UpdateSeef("seef", 1, "seeftime", dt, jlmodel.Id); + // Double money = Convert.ToDouble(jlmodel.Addmoney.ToString("f2"));//流量积分 + // string[] area = jlmodel.OrdersIDs.Split('|'); + // string province = area[0]; + // string city = (area.Length > 1 ? area[1] : ""); + // string county = (area.Length > 2 ? area[2] : ""); + // string address = jlmodel.BZContent; + // if (jlmodel.utype2 == 4) + // { + // daoUser.UpdateuLevel("uLevel28", Convert.ToInt32(jlmodel.Totalmoney.ToString().Split('.')[0]), umodel.Id); + // if (money > 0.00) + // { + // mjl2 = new Model.user_Results_jl2(); + // mjl2.MemberId = umodel.Id; + // mjl2.MemberId2 = 0; + // mjl2.Addmoney = money; + // mjl2.Cutmoney = 0; + // mjl2.Totalmoney = (umodel.umoney38 + money); + // mjl2.addtime = dt; + // mjl2.BZContent = "申请品牌展示"; + // mjl2.PayID = ""; + // mjl2.OrdersIDs = ""; + // mjl2.OrdersID = 0; + // mjl2.utype = 13; + // mjl2.utype2 = 0; + // mjl2.Seef = -1; + // mjl2.seeftime = dt; + // mjl2.gtype = gtype; + // daojl2.Add(mjl2); + // //减少买家余额 + // daoUser.UpdateMoney("umoney38", money, umodel.Id); + // umodel.umoney38 += money; + // } + // } + // Double money0 = Convert.ToDouble(jlmodel.Cutmoney.ToString("f2"));//贡献值 + // if (money0 > 0.00) + // { + // mjl2 = new Model.user_Results_jl2(); + // mjl2.MemberId = umodel.Id; + // mjl2.MemberId2 = 0; + // mjl2.Addmoney = money0; + // mjl2.Cutmoney = 0; + // mjl2.Totalmoney = (umodel.umoney31 + money0); + // mjl2.addtime = dt; + // mjl2.BZContent = "申请企业品牌展示赠送"; + // mjl2.PayID = ""; + // mjl2.OrdersIDs = ""; + // mjl2.OrdersID = 0; + // mjl2.utype = 3; + // mjl2.utype2 = 0; + // mjl2.Seef = -1; + // mjl2.seeftime = dt; + // mjl2.gtype = gtype; + // daojl2.Add(mjl2); + // mjl2 = new Model.user_Results_jl2(); + // daoUser.UpdateMoney("umoney31", money0, umodel.Id); + // } + // if (jlmodel.MinNumber == 1) + // { + // if (umodel.uLevel26 == 0) + // { + // daoUser.UpdateuLevel("uLevel26", 1, umodel.Id); + // } + // } + // string[] ASuperiorsIDS = (umodel.ContactIDS).Split(','); + // int uds = 1, uds0 = 1; + // for (int ak = ASuperiorsIDS.Length - 2; ak > 0; ak--) + // { + // if (ASuperiorsIDS[ak] != "") + // { + // // + // DataSet ds = daoUser.GetList1("ID,uLevel26", "gtype=" + gtype + " and UserState='正常' And IFStores=0 And uLevel17=0 And id=" + ASuperiorsIDS[ak]); + // if (ds.Tables[0].Rows.Count > 0) + // { + // int dID = Convert.ToInt32(ds.Tables[0].Rows[0]["ID"].ToString()); + // int YuLevel26 = Convert.ToInt32(ds.Tables[0].Rows[0]["uLevel26"].ToString()); + // if (uds == 1) + // { + // Double bfb = Convert.ToDouble(config.webMoney48); + // if (YuLevel26 == 1) + // { + // bfb = bfb = Convert.ToDouble(config.webMoney49); + // uds0 += 1; + // } + // Double umoney4 = Convert.ToDouble(Convert.ToDouble((money * bfb / 100).ToString("0.##")).ToString("f2")); + // if (umoney4 > 0.0000) + // { + // daoUser.UpdateMoney("umoney4", umoney4, dID); + // DAL.MemberStatistics.Statistics(dt, dID, 0, jlmodel.Id, 1, 0, 1, "来源" + umodel.RealName + "分享奖励", gtype); + // } + // } + // if (YuLevel26 == 1) + // { + // if (uds0 == 1) + // { + // Double bfb = (Convert.ToDouble(config.webMoney49) - Convert.ToDouble(config.webMoney48)); + // Double umoney4 = Convert.ToDouble(Convert.ToDouble((money * bfb / 100).ToString("0.##")).ToString("f2")); + // if (umoney4 > 0.0000) + // { + // daoUser.UpdateMoney("umoney4", umoney4, dID); + // DAL.MemberStatistics.Statistics(dt, dID, 0, jlmodel.Id, 1, 0, 1, "来源" + umodel.RealName + "VIP奖励", gtype); + // } + // } + // uds0 += 1; + // } + // uds += 1; + // } + // ds.Clear(); + // } + // } + + // DataSet dds = daoproxy.GetList1("MemberId", "gtype=" + gtype + " and TType=1 And seef=1 And AgenLevel=2 And Agenprovince='" + province + "' And Agencity='" + city + "' And AgenCounty='" + county + "' And CHARINDEX(AAddress,'" + address + "')>0"); + // if (dds.Tables[0].Rows.Count > 0) + // { + // foreach (System.Data.DataRow drv in dds.Tables[0].Rows) + // { + // int dID = Convert.ToInt32(drv["MemberId"].ToString()); + + // Double bfb = Convert.ToDouble(Convert.ToDouble(config.webMoney62).ToString("f2")); + // Double umoney4 = Convert.ToDouble(((bfb / 100) * money).ToString("f2")); + // if (umoney4 > 0.00) + // { + // daoUser.UpdateMoney("umoney4", umoney4, dID); + // DAL.MemberStatistics.Statistics(dt, dID, 0, jlmodel.Id, 1, 0, 1, "来源" + umodel.RealName + "乡镇代理奖励", gtype); + // } + // } + // } + // dds.Clear(); + // dds = daoproxy.GetList1("MemberId", "gtype=" + gtype + " and TType=1 And seef=1 And AgenLevel=3 And Agenprovince='" + province + "' And Agencity='" + city + "' And AgenCounty='" + county + "'"); + // if (dds.Tables[0].Rows.Count > 0) + // { + // foreach (System.Data.DataRow drv in dds.Tables[0].Rows) + // { + // int dID = Convert.ToInt32(drv["MemberId"].ToString()); + + // Double bfb = Convert.ToDouble(Convert.ToDouble(config.webMoney61).ToString("f2")); + // Double umoney4 = Convert.ToDouble(((bfb / 100) * money).ToString("f2")); + // if (umoney4 > 0.00) + // { + // daoUser.UpdateMoney("umoney4", umoney4, dID); + // DAL.MemberStatistics.Statistics(dt, dID, 0, jlmodel.Id, 1, 0, 1, "来源" + umodel.RealName + "县代理奖励", gtype); + // } + // } + // } + // dds.Clear(); + // dds = daoproxy.GetList1("MemberId", "gtype=" + gtype + " and TType=1 And seef=1 And AgenLevel=4 And Agenprovince='" + province + "' And Agencity='" + city + "'"); + // if (dds.Tables[0].Rows.Count > 0) + // { + // foreach (System.Data.DataRow drv in dds.Tables[0].Rows) + // { + // int dID = Convert.ToInt32(drv["MemberId"].ToString()); + + // Double bfb = Convert.ToDouble(Convert.ToDouble(config.webMoney60).ToString("f2")); + // Double umoney4 = Convert.ToDouble(((bfb / 100) * money).ToString("f2")); + // if (umoney4 > 0.00) + // { + // daoUser.UpdateMoney("umoney4", umoney4, dID); + // DAL.MemberStatistics.Statistics(dt, dID, 0, jlmodel.Id, 1, 0, 1, "来源" + umodel.RealName + "市代理奖励", gtype); + // } + // } + // } + // dds.Clear(); + // dds = daoproxy.GetList1("MemberId", "gtype=" + gtype + " and TType=1 And seef=1 And AgenLevel=5 And Agenprovince='" + province + "'"); + // if (dds.Tables[0].Rows.Count > 0) + // { + // foreach (System.Data.DataRow drv in dds.Tables[0].Rows) + // { + // int dID = Convert.ToInt32(drv["MemberId"].ToString()); + + // Double bfb = Convert.ToDouble(Convert.ToDouble(config.webMoney58).ToString("f2")); + // Double umoney4 = Convert.ToDouble(((bfb / 100) * money).ToString("f2"));// + + // if (umoney4 > 0.00) + // { + // daoUser.UpdateMoney("umoney4", umoney4, dID); + // DAL.MemberStatistics.Statistics(dt, dID, 0, jlmodel.Id, 1, 0, 1, "来源" + umodel.RealName + "省代理奖励", gtype); + // } + // } + // } + // dds.Clear(); + // } + // } + // } + // 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 + ReModel.Totalmoney); + // mjl2.addtime = dt; + // mjl2.BZContent = "微信支付购买VIP套餐,余额充值成功"; + // mjl2.PayID = ""; + // mjl2.OrdersIDs = ""; + // mjl2.OrdersID = 0; + // mjl2.utype = 2; + // 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 = "微信支付购买VIP套餐,余额扣款成功"; + // mjl2.PayID = ""; + // mjl2.OrdersIDs = ""; + // mjl2.OrdersID = 0; + // mjl2.utype = 2; + // 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 = -1, 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; + // 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 yyq = 0;// Convert.ToInt32(config.webMoney4); + // int OrderId = 0, PId = 0; + // 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) + // { + + // } + // else if (utype == 2) + // { + // if (umodel.uLevel14 == 1) + // { + // 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); + // } + + + // daoorder.UpdateqyState(0, "1", dt, OrderModel.Id); + // if (peitype == 1) + // { + // string orderhxm = dt.ToString("yyMMddHHmmss", DateTimeFormatInfo.InvariantInfo) + OrderModel.Id; + // daoorder.Updateorderhxm(orderhxm, OrderModel.Id); + // //daoorder.UpdateqyState(0, "2", dt, OrderModel.Id); + // //daoorder.Updateyundanhao("", "auto", "", OrderModel.Id); + // } + + // daoorder.Updatetranid(transaction_id, out_trade_no, OrderModel.Id); + // /*bool ifb = true; + // DateTime dt1 = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); + // if (config.webXaccess_token != "" && config.webXaccess_token_time != "") + // { + + // DateTime dt2 = Convert.ToDateTime(Convert.ToDateTime(config.webXaccess_token_time).AddMinutes(100).ToString("yyyy-MM-dd HH:mm:ss")); + // if (dt1 > dt2) + // { + // ifb = false; + // } + // } + // else + // { + // ifb = false; + // } + // if (!ifb) + // { + // Mtxfw.Utility.WXaccess_token ac = Mtxfw.Utility.Common.getxaccess_token(config.webXAppID, config.webXAppSecret); + // config.webXaccess_token = ac.access_token; + // config.webXaccess_token_time = dt1.ToString("yyyy-MM-dd HH:mm:ss"); + // config.Save(); + // } + // string strResult0 = Mtxfw.Utility.Common.getPage2("https://api.weixin.qq.com/wxa/sec/order/update_order_detail_path?access_token=" + config.webXaccess_token, "", "utf-8", true, true, "path=pages/index/index?id=${" + out_trade_no + "}"); + // Model.User_Errlog mo = new Model.User_Errlog(); + + // mo.DLID = 0; + // mo.ErrType = "任E森命微信支付配置订单详情路径"; + // mo.addtime = DateTime.Now; + // mo.ErrBody = strResult0; + // mo.ErrBody2 = out_trade_no; + // new DAL.User_Errlog().Add(mo);*/ + + // } + // } + // } + + // } + + // 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); + // } + + + + // } + // } + + // } + //} } } } @@ -721,6 +760,540 @@ namespace Mtxfw.shop } } } + + protected void FinishWork(string out_trade_no,string transaction_id) + { + + + Application["LogLock" + out_trade_no] = "lock"; + Mtxfw.Model.user_Results ReModel = daoResults.GetModel2(2, out_trade_no); + 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) + { + 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] != "") + { + Model.user_Results_jl2 jlmodel = daojl2.GetModel(Convert.ToInt64(aResultIdS[i])); + if (jlmodel != null) + { + daojl2.UpdateSeef("seef", 1, "seeftime", dt, jlmodel.Id); + Double money = Convert.ToDouble(jlmodel.Addmoney.ToString("f2"));//流量积分 + string[] area = jlmodel.OrdersIDs.Split('|'); + string province = area[0]; + string city = (area.Length > 1 ? area[1] : ""); + string county = (area.Length > 2 ? area[2] : ""); + string address = jlmodel.BZContent; + if (jlmodel.utype2 == 4) + { + daoUser.UpdateuLevel("uLevel28", Convert.ToInt32(jlmodel.Totalmoney.ToString().Split('.')[0]), umodel.Id); + if (money > 0.00) + { + mjl2 = new Model.user_Results_jl2(); + mjl2.MemberId = umodel.Id; + mjl2.MemberId2 = 0; + mjl2.Addmoney = money; + mjl2.Cutmoney = 0; + mjl2.Totalmoney = (umodel.umoney38 + money); + mjl2.addtime = dt; + mjl2.BZContent = "申请品牌展示"; + mjl2.PayID = ""; + mjl2.OrdersIDs = ""; + mjl2.OrdersID = 0; + mjl2.utype = 13; + mjl2.utype2 = 0; + mjl2.Seef = -1; + mjl2.seeftime = dt; + mjl2.gtype = gtype; + daojl2.Add(mjl2); + //减少买家余额 + daoUser.UpdateMoney("umoney38", money, umodel.Id); + umodel.umoney38 += money; + } + } + Double money0 = Convert.ToDouble(jlmodel.Cutmoney.ToString("f2"));//贡献值 + if (money0 > 0.00) + { + mjl2 = new Model.user_Results_jl2(); + mjl2.MemberId = umodel.Id; + mjl2.MemberId2 = 0; + mjl2.Addmoney = money0; + mjl2.Cutmoney = 0; + mjl2.Totalmoney = (umodel.umoney31 + money0); + mjl2.addtime = dt; + mjl2.BZContent = "申请企业品牌展示赠送"; + mjl2.PayID = ""; + mjl2.OrdersIDs = ""; + mjl2.OrdersID = 0; + mjl2.utype = 3; + mjl2.utype2 = 0; + mjl2.Seef = -1; + mjl2.seeftime = dt; + mjl2.gtype = gtype; + daojl2.Add(mjl2); + mjl2 = new Model.user_Results_jl2(); + daoUser.UpdateMoney("umoney31", money0, umodel.Id); + } + if (jlmodel.MinNumber == 1) + { + if (umodel.uLevel26 == 0) + { + daoUser.UpdateuLevel("uLevel26", 1, umodel.Id); + } + } + string[] ASuperiorsIDS = (umodel.ContactIDS).Split(','); + int uds = 1, uds0 = 1; + for (int ak = ASuperiorsIDS.Length - 2; ak > 0; ak--) + { + if (ASuperiorsIDS[ak] != "") + { + // + DataSet ds = daoUser.GetList1("ID,uLevel26", "gtype=" + gtype + " and UserState='正常' And IFStores=0 And uLevel17=0 And id=" + ASuperiorsIDS[ak]); + if (ds.Tables[0].Rows.Count > 0) + { + int dID = Convert.ToInt32(ds.Tables[0].Rows[0]["ID"].ToString()); + int YuLevel26 = Convert.ToInt32(ds.Tables[0].Rows[0]["uLevel26"].ToString()); + if (uds == 1) + { + Double bfb = Convert.ToDouble(config.webMoney48); + if (YuLevel26 == 1) + { + bfb = bfb = Convert.ToDouble(config.webMoney49); + uds0 += 1; + } + Double umoney4 = Convert.ToDouble(Convert.ToDouble((money * bfb / 100).ToString("0.##")).ToString("f2")); + if (umoney4 > 0.0000) + { + daoUser.UpdateMoney("umoney4", umoney4, dID); + DAL.MemberStatistics.Statistics(dt, dID, 0, jlmodel.Id, 1, 0, 1, "来源" + umodel.RealName + "分享奖励", gtype); + } + } + if (YuLevel26 == 1) + { + if (uds0 == 1) + { + Double bfb = (Convert.ToDouble(config.webMoney49) - Convert.ToDouble(config.webMoney48)); + Double umoney4 = Convert.ToDouble(Convert.ToDouble((money * bfb / 100).ToString("0.##")).ToString("f2")); + if (umoney4 > 0.0000) + { + daoUser.UpdateMoney("umoney4", umoney4, dID); + DAL.MemberStatistics.Statistics(dt, dID, 0, jlmodel.Id, 1, 0, 1, "来源" + umodel.RealName + "VIP奖励", gtype); + } + } + uds0 += 1; + } + uds += 1; + } + ds.Clear(); + } + } + + DataSet dds = daoproxy.GetList1("MemberId", "gtype=" + gtype + " and TType=1 And seef=1 And AgenLevel=2 And Agenprovince='" + province + "' And Agencity='" + city + "' And AgenCounty='" + county + "' And CHARINDEX(AAddress,'" + address + "')>0"); + if (dds.Tables[0].Rows.Count > 0) + { + foreach (System.Data.DataRow drv in dds.Tables[0].Rows) + { + int dID = Convert.ToInt32(drv["MemberId"].ToString()); + + Double bfb = Convert.ToDouble(Convert.ToDouble(config.webMoney62).ToString("f2")); + Double umoney4 = Convert.ToDouble(((bfb / 100) * money).ToString("f2")); + if (umoney4 > 0.00) + { + daoUser.UpdateMoney("umoney4", umoney4, dID); + DAL.MemberStatistics.Statistics(dt, dID, 0, jlmodel.Id, 1, 0, 1, "来源" + umodel.RealName + "乡镇代理奖励", gtype); + } + } + } + dds.Clear(); + dds = daoproxy.GetList1("MemberId", "gtype=" + gtype + " and TType=1 And seef=1 And AgenLevel=3 And Agenprovince='" + province + "' And Agencity='" + city + "' And AgenCounty='" + county + "'"); + if (dds.Tables[0].Rows.Count > 0) + { + foreach (System.Data.DataRow drv in dds.Tables[0].Rows) + { + int dID = Convert.ToInt32(drv["MemberId"].ToString()); + + Double bfb = Convert.ToDouble(Convert.ToDouble(config.webMoney61).ToString("f2")); + Double umoney4 = Convert.ToDouble(((bfb / 100) * money).ToString("f2")); + if (umoney4 > 0.00) + { + daoUser.UpdateMoney("umoney4", umoney4, dID); + DAL.MemberStatistics.Statistics(dt, dID, 0, jlmodel.Id, 1, 0, 1, "来源" + umodel.RealName + "县代理奖励", gtype); + } + } + } + dds.Clear(); + dds = daoproxy.GetList1("MemberId", "gtype=" + gtype + " and TType=1 And seef=1 And AgenLevel=4 And Agenprovince='" + province + "' And Agencity='" + city + "'"); + if (dds.Tables[0].Rows.Count > 0) + { + foreach (System.Data.DataRow drv in dds.Tables[0].Rows) + { + int dID = Convert.ToInt32(drv["MemberId"].ToString()); + + Double bfb = Convert.ToDouble(Convert.ToDouble(config.webMoney60).ToString("f2")); + Double umoney4 = Convert.ToDouble(((bfb / 100) * money).ToString("f2")); + if (umoney4 > 0.00) + { + daoUser.UpdateMoney("umoney4", umoney4, dID); + DAL.MemberStatistics.Statistics(dt, dID, 0, jlmodel.Id, 1, 0, 1, "来源" + umodel.RealName + "市代理奖励", gtype); + } + } + } + dds.Clear(); + dds = daoproxy.GetList1("MemberId", "gtype=" + gtype + " and TType=1 And seef=1 And AgenLevel=5 And Agenprovince='" + province + "'"); + if (dds.Tables[0].Rows.Count > 0) + { + foreach (System.Data.DataRow drv in dds.Tables[0].Rows) + { + int dID = Convert.ToInt32(drv["MemberId"].ToString()); + + Double bfb = Convert.ToDouble(Convert.ToDouble(config.webMoney58).ToString("f2")); + Double umoney4 = Convert.ToDouble(((bfb / 100) * money).ToString("f2"));// + + if (umoney4 > 0.00) + { + daoUser.UpdateMoney("umoney4", umoney4, dID); + DAL.MemberStatistics.Statistics(dt, dID, 0, jlmodel.Id, 1, 0, 1, "来源" + umodel.RealName + "省代理奖励", gtype); + } + } + } + dds.Clear(); + } + } + } + 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 + ReModel.Totalmoney); + mjl2.addtime = dt; + mjl2.BZContent = "微信支付购买VIP套餐,余额充值成功"; + mjl2.PayID = ""; + mjl2.OrdersIDs = ""; + mjl2.OrdersID = 0; + mjl2.utype = 2; + 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 = "微信支付购买VIP套餐,余额扣款成功"; + mjl2.PayID = ""; + mjl2.OrdersIDs = ""; + mjl2.OrdersID = 0; + mjl2.utype = 2; + 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 = -1, 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; + 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 yyq = 0;// Convert.ToInt32(config.webMoney4); + int OrderId = 0, PId = 0; + 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) + { + + } + else if (utype == 2) + { + if (umodel.uLevel14 == 1) + { + 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); + } + ///lym修改 + Mtxfw.Model.P_Guige ggmodel = new DAL.P_Guige().GetModelByProductId(Convert.ToInt32(OrderModel.pid)); + var xfz = ggmodel.G_JG4; + DAL.MemberStatistics_huiyuan.UpdteYJ(config, umodel, money, xfz, gtype, dt, OrderModel.ttype, OrderModel.ptype, peitype, OrderModel.orderid, OrderModel.Id, OrderModel.Province, OrderModel.City, OrderModel.County, OrderModel.Tradingarea); + + + daoorder.UpdateqyState(0, "1", dt, OrderModel.Id); + if (peitype == 1) + { + string orderhxm = dt.ToString("yyMMddHHmmss", DateTimeFormatInfo.InvariantInfo) + OrderModel.Id; + daoorder.Updateorderhxm(orderhxm, OrderModel.Id); + //daoorder.UpdateqyState(0, "2", dt, OrderModel.Id); + //daoorder.Updateyundanhao("", "auto", "", OrderModel.Id); + } + + daoorder.Updatetranid(transaction_id, out_trade_no, 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); + } + + + + } + } + + } + + } } diff --git a/Mtxfw.VipSite/weixin/ex.txt b/Mtxfw.VipSite/weixin/ex.txt index c31bdb4..c4e9fd7 100644 --- a/Mtxfw.VipSite/weixin/ex.txt +++ b/Mtxfw.VipSite/weixin/ex.txt @@ -1,9 +1,4 @@ System.Data.SqlClient.SqlException (0x80131904): 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: TCP Provider, error: 0 - 等待的操作过时。) ---> System.ComponentModel.Win32Exception (0x80004005): 等待的操作过时。 - 在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling, SqlAuthenticationProviderManager sqlAuthProviderManager) - 在 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) - 在 System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) - 在 System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) - 在 System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) 在 System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) 在 System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) 在 System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) diff --git a/Mtxfw.VipSite/xapiajax.ashx.cs b/Mtxfw.VipSite/xapiajax.ashx.cs index c6d1194..b2ef888 100644 --- a/Mtxfw.VipSite/xapiajax.ashx.cs +++ b/Mtxfw.VipSite/xapiajax.ashx.cs @@ -1,3 +1,4 @@ +using Aop.Api.Domain; using Mtxfw.Utility; using Mtxfw.VipSite.api; using Newtonsoft.Json; @@ -11,6 +12,7 @@ using System.Data.SqlClient; using System.Drawing; using System.Globalization; using System.IO; +using System.Linq; using System.Net; using System.Security.Cryptography; using System.Text; @@ -275,6 +277,8 @@ namespace Mtxfw.VipSite case "getqiandao": data = getqiandao(context); break; case "qiandao": data = qiandao(context); break; case "getmytgm": data = getmytgm2(context); break; + case "getmyhxm": data = getmyhxm(context); break; + case "orderhx": data = orderhx(context); break; case "appdeclaration": data = appdeclaration(context); break; case "kttgy": data = kttgy(context); break; case "getkttgylist": data = getkttgylist(context); break; @@ -2779,10 +2783,10 @@ namespace Mtxfw.VipSite /// /// 要转换的字节流 /// 转换得到的Image对象 - public static Image BytToImg(byte[] byt) + public static System.Drawing.Image BytToImg(byte[] byt) { MemoryStream ms = new MemoryStream(byt); - Image img = Image.FromStream(ms); + System.Drawing.Image img = System.Drawing.Image.FromStream(ms); return img; } public byte[] StreamToBytes(Stream stream) @@ -8727,6 +8731,9 @@ namespace Mtxfw.VipSite Int32 Recount = 0;// //System.Data.DataSet Ds_ = daobusiness.GetDataSet(groupby, strOrder, "id,UserId,CompanyName,picture,Companyaddress,ycoo,xcoo,dbo.GetDistance(" + latitude + "," + longitude + ",xcoo,ycoo) as distance", "", "utype='0' and (seef=1 or seef0=1) and showpic=0" + strsql + "", Start, Limit, out Recount); System.Data.DataSet Ds_ = daobusiness.GetDataSet(groupby, strOrder, "id,UserId,CompanyName,picture,Companyaddress,ycoo,xcoo,ContactPhone,dbo.GetDistance(" + latitude + "," + longitude + ",xcoo,ycoo) as distance", "", "utype='2' and (seef=1 or seef0=1) and showpic=0" + strsql + "", Start, Limit, out Recount); + //打印上一行执行的sql语句 + + if (Ds_.Tables[1].Rows.Count > 0) { int j = 0; @@ -10962,6 +10969,184 @@ namespace Mtxfw.VipSite #endregion + + #region //获取我的核销码----------------------------------------------------------------------------------------- + /// + /// 获取我的核销码 + /// + protected string getmyhxm(HttpContext context) + { + string data = "{\"status\":0}"; + int userId = 0; + if (!String.IsNullOrEmpty(context.Request["userId"]) && !String.IsNullOrEmpty(context.Request["LoginId"]) && !String.IsNullOrEmpty(context.Request["orderid"]) && !String.IsNullOrEmpty(context.Request["hxm"])) + { + userId = Convert.ToInt32(context.Request["userId"].ToString()); + if (userId == 0) + { + data = "{\"status\":0,\"msg\":\"参数错误\"}"; + return data; + } + string LoginId = HttpUtility.UrlDecode(context.Request["LoginId"].ToString()); + string hxm = HttpUtility.UrlDecode(context.Request["hxm"].ToString()); + string orderid = HttpUtility.UrlDecode(context.Request["orderid"].ToString()); + Mtxfw.Model.user_info umodel = daoUser.GetModel(userId); + if (umodel != null) + { + + if (umodel.LoginId2 == LoginId) + { + bool ifb = true; + DateTime dt1 = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); + if (config.webXaccess_token != "" && config.webXaccess_token_time != "") + { + + DateTime dt2 = Convert.ToDateTime(Convert.ToDateTime(config.webXaccess_token_time).AddMinutes(10).ToString("yyyy-MM-dd HH:mm:ss")); + if (dt1 > dt2) + { + ifb = false; + } + } + else + { + ifb = false; + } + if (!ifb) + { + + Mtxfw.Utility.WXaccess_token ac = Mtxfw.Utility.Common.getxaccess_token(config.webXAppID, config.webXAppSecret); + config.webXaccess_token = ac.access_token; + config.webXaccess_token_time = dt1.ToString("yyyy-MM-dd HH:mm:ss"); + config.Save(); + } + //string URL = "https://api.weixin.qq.com/wxa/getwxacode?access_token=" + config.webXaccess_token; + //string json = "{\"path\":\"pages/index/index?tguid=" + Mtxfw.Utility.Security.encrypt(umodel.Id) + "\"}"; + string URL = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + config.webXaccess_token; + var requestData = new + { + scene = $"orderid={orderid}&hxm={hxm}", // 启动参数,最大32字符 + page = "pages/index/index", + Check_path = false // 开发阶段设为false,避免页面未发布报错 + }; + string json = Newtonsoft.Json.JsonConvert.SerializeObject(requestData); + json = "{\"scene\":\"" + $"orderid={orderid}&hxm={hxm}" + "\",\"page\":\"pages/hxorderinfo/index\"}"; + //json = "{\"scene\":\"" + $"orderid={orderid}&hxm={hxm}" + "\",\"page\":\"pages/index/index\"}"; + //json = "{\"scene\":\"" + Mtxfw.Utility.Security.encrypt(111) + "\",\"page\":\"pages/index/index\"}"; + //json = "{\"scene\":\"" + "111" + "\",\"page\":\"pages/index/index\"}"; + byte[] bytes = Mtxfw.Utility.Common.GetResponsebyte(json, URL); + string str = System.Text.Encoding.Default.GetString(bytes); + //Mtxfw.Utility.Common.WriteHtml("/weixin/errcode.txt", str); + if (str.IndexOf("errcode") != -1) + { + Mtxfw.Utility.WXaccess_token ac = Mtxfw.Utility.Common.getxaccess_token(config.webXAppID, config.webXAppSecret); + config.webXaccess_token = ac.access_token; + config.webXaccess_token_time = dt1.ToString("yyyy-MM-dd HH:mm:ss"); + config.Save(); + URL = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + ac.access_token; + bytes = Mtxfw.Utility.Common.GetResponsebyte(json, URL); + str = BitConverter.ToString(bytes); + string ewmpic = "data:image/png;base64," + Convert.ToBase64String(bytes); + // new Mtxfw.DAL.user_info().UpdatePassword("EWMPic2", ewmpic, umodel.Id); + + Mtxfw.Utility.Common.WriteHtml("/weixin/EWMPic.txt", ewmpic); + data = "{\"status\":1,\"QRcode\":\"" + ewmpic + "\",\"minQRcode\":\"" + ewmpic + "\",\"hxm\":\"" + hxm + "\"}"; + } + else + { + data = "{\"status\":0,\"msg\":\"生成二维码失败\"}"; + } + + + + } + else + { + data = "{\"status\":0,\"msg\":\"您未登录\"}"; + } + } + else + { + data = "{\"status\":0,\"msg\":\"参数错误\"}"; + return data; + } + } + else + { + data = "{\"status\":0,\"msg\":\"参数为空\"}"; + return data; + } + return data; + } + + #endregion + + #region //核销订单----------------------------------------------------------------------------------------- + /// + /// 核销订单 + /// + protected string orderhx(HttpContext context) + { + string data = "{\"status\":0}"; + int userId = 0; + if (!String.IsNullOrEmpty(context.Request["userId"]) && !String.IsNullOrEmpty(context.Request["LoginId"]) && !String.IsNullOrEmpty(context.Request["id"]) && !String.IsNullOrEmpty(context.Request["hxm"])) + { + userId = Convert.ToInt32(context.Request["userId"].ToString()); + if (userId == 0) + { + data = "{\"status\":0,\"msg\":\"参数错误\"}"; + return data; + } + string LoginId = HttpUtility.UrlDecode(context.Request["LoginId"].ToString()); + string hxm = HttpUtility.UrlDecode(context.Request["hxm"].ToString()); + string id = HttpUtility.UrlDecode(context.Request["id"].ToString()); + //string orderid = HttpUtility.UrlDecode(context.Request["orderid"].ToString()); + Mtxfw.Model.user_info umodel = daoUser.GetModel(userId); + if (umodel != null) + { + + if (umodel.LoginId2 == LoginId) + { + try + { + DateTime dt = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); + var execount = new Mtxfw.DAL.order_info().UpdateHxState(dt, id, hxm); + if (execount>0) + { + var msg = "核销成功"; + data = "{\"status\":1,\"msg\":\"" + msg + "\"}"; + } + else + { + data = "{\"status\":0,\"msg\":\"核销订单失败\"}"; + } + } + catch (Exception ex ) + { + data = "{\"status\":0,\"msg\":\""+ ex .Message+ "\"}"; + } + + + } + else + { + data = "{\"status\":0,\"msg\":\"您未登录\"}"; + } + } + else + { + data = "{\"status\":0,\"msg\":\"参数错误\"}"; + return data; + } + } + else + { + data = "{\"status\":0,\"msg\":\"参数为空\"}"; + return data; + } + return data; + } + + #endregion + #region //申请代理----------------------------------------------------------------------------------------- /// /// 申请代理 @@ -14951,6 +15136,8 @@ namespace Mtxfw.VipSite } int poid = 0; int agentid = 0, agenttype = 0, ZTUserID = 0; + //自提订单核销码 + string orderhxm = ""; string contact = ""; string tel = ""; string province = ""; @@ -15106,6 +15293,7 @@ namespace Mtxfw.VipSite if (!String.IsNullOrEmpty(context.Request["agentid"])) { agentid = Convert.ToInt32(context.Request["agentid"].ToString()); + orderhxm = orderhxm = GenerateRandomString(6); if (!String.IsNullOrEmpty(context.Request["agenttype"])) { agenttype = Convert.ToInt32(context.Request["agenttype"].ToString()); @@ -16207,6 +16395,7 @@ namespace Mtxfw.VipSite Modelorder.ifxhpt = 1;//0任E森命订单1任E森命订单 Modelorder.peitype = peitype; Modelorder.gtype = gtype; + Modelorder.orderhxm = orderhxm; int OrderID = daoorder.Add(Modelorder); daoorder.Updateopenid(openid, OrderID); string Address0 = province0 + "|" + city0 + "|" + county0 + "|" + IFFill0 + "|" + Tradingarea0; @@ -16667,36 +16856,60 @@ namespace Mtxfw.VipSite Mtxfw.Utility.Common.WriteHtml("/weixin/xapiajaxstrstart3.txt", data); } } - else + else { // ======================================== - // 微信小程序支付 - 创建JSAPI支付订单 - // 功能: 调用微信统一下单接口,获取小程序调起支付所需的参数 + // 微信小程序支付 - 创建JSAPI支付订单(V3版) + // 功能: 调用微信V3统一下单接口,获取小程序调起支付所需的参数 // ======================================== try { - // 步骤1: 创建微信小程序支付类实例 - // config参数包含: appid、商户号、密钥等配置信息 - Mtxfw.Utility.MiniProgramPay miniPay = new Mtxfw.Utility.MiniProgramPay(config); + // 步骤1: 初始化V3配置 + // 从配置中心读取V3支付所需参数 + Mtxfw.Utility.WxPayV3Config.ApiV3Key = config.webXApiV3Key; // APIv3密钥 + Mtxfw.Utility.WxPayV3Config.MchSerialNo = config.webXMchSerialNo; // 商户证书序列号 - // 步骤2: 金额转换 + // 从文件读取商户私钥(PEM格式) + string privateKeyPath = config.webXPrivateKeyPath; // 从配置中读取私钥文件路径 + if (string.IsNullOrEmpty(privateKeyPath)) + { + // 默认路径 + privateKeyPath = context.Server.MapPath("~/App_Data/apiclient_key.pem"); + } + + if (File.Exists(privateKeyPath)) + { + Mtxfw.Utility.WxPayV3Config.PrivateKey = File.ReadAllText(privateKeyPath); + } + else + { + // 如果文件不存在,使用配置中的私钥作为备用 + Mtxfw.Utility.WxPayV3Config.PrivateKey = config.webXPrivateKey; + } + + // 步骤2: 创建V3支付服务实例 + var v3PayService = new Mtxfw.Utility.WxPayV3Service( + config, + Mtxfw.Utility.WxPayV3Config.ApiV3Key, + Mtxfw.Utility.WxPayV3Config.MchSerialNo, + Mtxfw.Utility.WxPayV3Config.PrivateKey); + + // 步骤3: 金额转换 // PayZSubTotal单位为元,需转换为分(乘以100) - // 微信支付接口要求金额单位为分 int totalFee = (int)(PayZSubTotal * 100); - - // 步骤3: 设置支付回调通知地址 - // 支付成功后微信会向此地址发送异步通知 - string notifyUrl = config.webUrl + "/pay/wxpaynotify_url.aspx"; - - // 步骤4: 调用创建JSAPI支付订单接口 - // openid: 用户在小程序中的唯一标识 - // PayID: 商户订单号,需保证唯一性 - // totalFee: 订单金额,单位: 分 - // body: 商品描述 - // notifyUrl: 支付结果通知回调地址 - Mtxfw.Utility.MiniProgramPayResult payResult = miniPay.CreateJsApiOrder(openid, PayID, totalFee, body, "", notifyUrl); - - // 步骤5: 处理支付订单创建结果 + + // 步骤4: 设置支付回调通知地址 + string notifyUrl = config.webUrl + "/pay/weixinnotify_url.aspx"; + + // 步骤5: 调用V3版创建JSAPI支付订单接口 + var payResult = v3PayService.CreateJsApiOrderV3( + openId: openid, + outTradeNo: PayID, + totalFee: totalFee, + description: body, + notifyUrl: notifyUrl); + + // 步骤6: 处理支付订单创建结果 if (payResult.Success) { // 创建成功,设置小程序调起支付所需的参数 @@ -16704,24 +16917,26 @@ namespace Mtxfw.VipSite // nonceStr: 随机字符串,用于签名计算 // package: 订单详情,格式为prepay_id=xxx // paySign: 签名,用于安全校验 - // signType: 签名类型,固定为MD5 + // signType: 签名类型,V3版使用RSA timestamp = payResult.TimeStamp; nonceStr = payResult.NonceStr; package = payResult.Package; paySign = payResult.PaySign; signType = payResult.SignType; - + // 记录成功日志,便于问题排查 - Mtxfw.Utility.Common.WriteHtml("/weixin/miniProgramPaySuccess.txt", miniPay.GetPayResultJson(payResult)); + Mtxfw.Utility.Common.WriteHtml("/weixin/miniProgramPayV3Success.txt", + $"PayID:{PayID}, PrepayId:{payResult.PrepayId}, TimeStamp:{timestamp}, NonceStr:{nonceStr}"); } else { // 创建失败,返回错误信息给前端 b = false; data = "{\"status\":0,\"msg\":\"" + payResult.Message + "\"}"; - + // 记录失败日志,包含错误码和错误描述 - Mtxfw.Utility.Common.WriteHtml("/weixin/miniProgramPayError.txt", miniPay.GetPayResultJson(payResult)); + Mtxfw.Utility.Common.WriteHtml("/weixin/miniProgramPayV3Error.txt", + $"PayID:{PayID}, Error:{payResult.Message}"); } } catch (Exception exPay) @@ -16731,12 +16946,12 @@ namespace Mtxfw.VipSite data = "{\"status\":0,\"msg\":\"支付创建失败\"}"; // 记录异常详情到日志文件 - Mtxfw.Utility.Common.WriteHtml("/weixin/miniProgramPayException.txt", exPay.ToString()); - + Mtxfw.Utility.Common.WriteHtml("/weixin/miniProgramPayV3Exception.txt", exPay.ToString()); + // 记录错误日志到数据库,便于后续排查 Model.User_Errlog errLog = new Model.User_Errlog(); errLog.DLID = 0; - errLog.ErrType = "微信小程序支付异常"; + errLog.ErrType = "微信小程序支付V3异常"; errLog.addtime = DateTime.Now; errLog.ErrBody = openid + "|" + PayID + "|" + PayZSubTotal; // 记录关键参数 errLog.ErrBody2 = exPay.ToString(); // 记录异常详情 @@ -20806,7 +21021,7 @@ namespace Mtxfw.VipSite Start = Convert.ToInt32(HttpUtility.UrlDecode(context.Request["Start"].ToString())); } Int32 Recount = 0; - DataSet ds = new DAL.order_info().GetDataSet(groupby, strOrder, "ttype,ptype,peitype,id,pid,poid,orderid,Totalnum,pcount,ypcount,ypznum,ifxhpt,ifpd,ifbhzshy,Totalprice,O_Payed,O_Payed_Date,O_Shipped,O_Shipped_Date,O_received,O_received_Date,O_SubmitDate,Contactname,Contacttel,Province,City,County,Address,kdcompay,yundanhao,Guests,wlremarks, refundstatus, refund_channel, user_received_account, success_time,O_Seef, O_ReturnReason" + strfill, "", "ttype IN(0,1) and IFDelete=0" + strsql + "", Start, Limit, out Recount); + DataSet ds = new DAL.order_info().GetDataSet(groupby, strOrder, "orderhxm,ttype,ptype,peitype,id,pid,poid,orderid,Totalnum,pcount,ypcount,ypznum,ifxhpt,ifpd,ifbhzshy,Totalprice,O_Payed,O_Payed_Date,O_Shipped,O_Shipped_Date,O_received,O_received_Date,O_SubmitDate,Contactname,Contacttel,Province,City,County,Address,kdcompay,yundanhao,Guests,wlremarks, refundstatus, refund_channel, user_received_account, success_time,O_Seef, O_ReturnReason" + strfill, "", "ttype IN(0,1) and IFDelete=0" + strsql + "", Start, Limit, out Recount); int dtcount = Recount; if (ds.Tables[1].Rows.Count > 0) @@ -20848,9 +21063,10 @@ namespace Mtxfw.VipSite string wlremarks = Mtxfw.Utility.Common.ReplaceString(Dr["wlremarks"].ToString()); int O_Seef = Convert.ToInt32(Dr["O_Seef"].ToString()); string O_ReturnReason = Dr["O_ReturnReason"].ToString(); + string orderhxm = Dr["orderhxm"].ToString(); string[] strStatus = Mtxfw.Utility.Common.GetOrderStatus(utype, O_Id, orderid, ptype, peitype, O_SubmitDate, O_Payed, O_Payed_Date, O_Shipped, O_Shipped_Date, O_received, O_received_Date, kdcompay, yundanhao, Contacttel, wlremarks, refundstatus, refund_channel, user_received_account, success_time, O_Seef, Totalprice, O_ReturnReason, 0); - strdata += "{\"O_Id\":\"" + O_Id + "\",\"Payed\":\"" + O_Payed + "\",\"orderid\":\"" + orderid + "\",\"Totalnum\":\"" + Totalnum + "\",\"Totalprice\":\"" + Totalprice + "\",\"SubmitDate\":\"" + O_SubmitDate + "\",\"Contactname\":\"" + Contactname + "\",\"Contacttel\":\"" + Contacttel + "\",\"Province\":\"" + Province + "\",\"City\":\"" + City + "\",\"County\":\"" + County + "\",\"Address\":\"" + Address + "\",\"kdgs\":\"" + kdcompay + "\",\"kdgsmc\":\"" + Mtxfw.Utility.Common.Getkdcompay(kdcompay) + "\",\"ydh\":\"" + yundanhao + "\",\"status0\":\"" + strStatus[0] + "\",\"status1\":\"" + strStatus[1] + "\",\"Guests\":\"" + Mtxfw.Utility.Common.ReplaceString(Guests) + "\",\"pics\":["; + strdata += "{\"O_Id\":\"" + O_Id + "\",\"Payed\":\"" + O_Payed + "\",\"orderhxm\":\"" + orderhxm + "\",\"orderid\":\"" + orderid + "\",\"Totalnum\":\"" + Totalnum + "\",\"Totalprice\":\"" + Totalprice + "\",\"SubmitDate\":\"" + O_SubmitDate + "\",\"Contactname\":\"" + Contactname + "\",\"Contacttel\":\"" + Contacttel + "\",\"Province\":\"" + Province + "\",\"City\":\"" + City + "\",\"County\":\"" + County + "\",\"Address\":\"" + Address + "\",\"kdgs\":\"" + kdcompay + "\",\"kdgsmc\":\"" + Mtxfw.Utility.Common.Getkdcompay(kdcompay) + "\",\"ydh\":\"" + yundanhao + "\",\"status0\":\"" + strStatus[0] + "\",\"status1\":\"" + strStatus[1] + "\",\"Guests\":\"" + Mtxfw.Utility.Common.ReplaceString(Guests) + "\",\"pics\":["; System.Data.DataSet Ds_op = new DAL.order_product_info().GetList("(Select utype from P_Product b where b.P_ID=a.pid) as cutype,(Select P_NAME from P_Product b where b.P_ID=a.pid) as prodName,(Select P_bianhao from P_Product b where b.P_ID=a.pid) as bianhao,(Select P_images from P_Product b where b.P_ID=a.pid) as prodimg,(Select selcolor from P_Product b where b.P_ID=a.pid) as cselcolor,", "orderid=" + O_Id + " And UserID=" + model.Id + " And IFDelete=0 Order By SubmitTime asc"); if (Ds_op.Tables[0].Rows.Count > 0) { @@ -20971,10 +21187,10 @@ namespace Mtxfw.VipSite string strdata = ""; string strsql = ""; - strsql = (strid != "" ? "out_trade_no='" + strid + "'" : " And Id=" + orderId); - - string utype = ""; - DataSet ds = new DAL.order_info().GetList1("ttype,ptype,peitype,id,pid,poid,orderid,Totalnum,pcount,ypcount,ypznum,ifxhpt,ifpd,ifbhzshy,Totalprice,O_Payed,O_Payed_Date,O_Shipped,O_Shipped_Date,O_received,O_received_Date,O_SubmitDate,Contactname,Contacttel,Address,Address0,Zipcode,kdcompay,yundanhao,guests,wlremarks,Province,City,County, refundstatus, refund_channel, user_received_account, success_time,O_Seef, O_ReturnReason", "IFDelete=0" + strsql + " Order By addtime Desc"); + //strsql = (strid != "" ? "out_trade_no='" + strid + "'" : " And Id=" + orderId); + strsql = (strid != "" ? "And orderid='" + strid + "'" : " And Id=" + orderId); + string utype = ""; + DataSet ds = new DAL.order_info().GetList1("orderhxm,ttype,ptype,peitype,id,pid,poid,orderid,Totalnum,pcount,ypcount,ypznum,ifxhpt,ifpd,ifbhzshy,Totalprice,O_Payed,O_Payed_Date,O_Shipped,O_Shipped_Date,O_received,O_received_Date,O_SubmitDate,Contactname,Contacttel,Address,Address0,Zipcode,kdcompay,yundanhao,guests,wlremarks,Province,City,County, refundstatus, refund_channel, user_received_account, success_time,O_Seef, O_ReturnReason", "IFDelete=0" + strsql + " Order By addtime Desc"); if (ds.Tables[0].Rows.Count > 0) { int i = 0; @@ -23876,7 +24092,21 @@ namespace Mtxfw.VipSite } return strdata; } - public object FromProvincedataJson(string json) + + /// + /// 随机生成数字加小写字母 + /// + /// + /// + private string GenerateRandomString(int length) + { + const string chars = "abcdefghijklmnopqrstuvwxyz0123456789"; + var random = new Random(); + return new string(Enumerable.Repeat(chars, length) + .Select(s => s[random.Next(s.Length)]).ToArray()); + } + + public object FromProvincedataJson(string json) { JavaScriptSerializer js = new JavaScriptSerializer(); return js.Deserialize(json); @@ -24073,4 +24303,6 @@ namespace Mtxfw.VipSite public String signType { get; set; } public String paySign { get; set; } } + + } \ No newline at end of file diff --git a/Mtxfw.sln b/Mtxfw.sln index 026c750..523a430 100644 --- a/Mtxfw.sln +++ b/Mtxfw.sln @@ -17,40 +17,114 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TencentCloud", "TencentClou EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "COSXML", "COSXML\COSXML.csproj", "{FC694C68-F0E3-411F-8E6C-2E9F94826016}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mtxfw.Utility.Tests", "Mtxfw.Utility.Tests\Mtxfw.Utility.Tests.csproj", "{D6F2400A-6576-4028-8136-212C4176546D}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Debug|x64.ActiveCfg = Debug|Any CPU + {61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Debug|x64.Build.0 = Debug|Any CPU + {61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Debug|x86.ActiveCfg = Debug|Any CPU + {61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Debug|x86.Build.0 = Debug|Any CPU {61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Release|Any CPU.ActiveCfg = Release|Any CPU {61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Release|Any CPU.Build.0 = Release|Any CPU + {61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Release|x64.ActiveCfg = Release|Any CPU + {61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Release|x64.Build.0 = Release|Any CPU + {61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Release|x86.ActiveCfg = Release|Any CPU + {61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Release|x86.Build.0 = Release|Any CPU {1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Debug|x64.ActiveCfg = Debug|Any CPU + {1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Debug|x64.Build.0 = Debug|Any CPU + {1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Debug|x86.ActiveCfg = Debug|Any CPU + {1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Debug|x86.Build.0 = Debug|Any CPU {1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Release|Any CPU.ActiveCfg = Release|Any CPU {1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Release|Any CPU.Build.0 = Release|Any CPU + {1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Release|x64.ActiveCfg = Release|Any CPU + {1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Release|x64.Build.0 = Release|Any CPU + {1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Release|x86.ActiveCfg = Release|Any CPU + {1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Release|x86.Build.0 = Release|Any CPU {CCF81F42-9163-4046-8712-D9D31AE27E07}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CCF81F42-9163-4046-8712-D9D31AE27E07}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CCF81F42-9163-4046-8712-D9D31AE27E07}.Debug|x64.ActiveCfg = Debug|Any CPU + {CCF81F42-9163-4046-8712-D9D31AE27E07}.Debug|x64.Build.0 = Debug|Any CPU + {CCF81F42-9163-4046-8712-D9D31AE27E07}.Debug|x86.ActiveCfg = Debug|Any CPU + {CCF81F42-9163-4046-8712-D9D31AE27E07}.Debug|x86.Build.0 = Debug|Any CPU {CCF81F42-9163-4046-8712-D9D31AE27E07}.Release|Any CPU.ActiveCfg = Release|Any CPU {CCF81F42-9163-4046-8712-D9D31AE27E07}.Release|Any CPU.Build.0 = Release|Any CPU + {CCF81F42-9163-4046-8712-D9D31AE27E07}.Release|x64.ActiveCfg = Release|Any CPU + {CCF81F42-9163-4046-8712-D9D31AE27E07}.Release|x64.Build.0 = Release|Any CPU + {CCF81F42-9163-4046-8712-D9D31AE27E07}.Release|x86.ActiveCfg = Release|Any CPU + {CCF81F42-9163-4046-8712-D9D31AE27E07}.Release|x86.Build.0 = Release|Any CPU {30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Debug|Any CPU.Build.0 = Debug|Any CPU + {30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Debug|x64.ActiveCfg = Debug|Any CPU + {30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Debug|x64.Build.0 = Debug|Any CPU + {30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Debug|x86.ActiveCfg = Debug|Any CPU + {30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Debug|x86.Build.0 = Debug|Any CPU {30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Release|Any CPU.ActiveCfg = Release|Any CPU {30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Release|Any CPU.Build.0 = Release|Any CPU + {30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Release|x64.ActiveCfg = Release|Any CPU + {30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Release|x64.Build.0 = Release|Any CPU + {30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Release|x86.ActiveCfg = Release|Any CPU + {30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Release|x86.Build.0 = Release|Any CPU {D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Debug|x64.ActiveCfg = Debug|Any CPU + {D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Debug|x64.Build.0 = Debug|Any CPU + {D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Debug|x86.ActiveCfg = Debug|Any CPU + {D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Debug|x86.Build.0 = Debug|Any CPU {D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Release|Any CPU.ActiveCfg = Release|Any CPU {D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Release|Any CPU.Build.0 = Release|Any CPU + {D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Release|x64.ActiveCfg = Release|Any CPU + {D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Release|x64.Build.0 = Release|Any CPU + {D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Release|x86.ActiveCfg = Release|Any CPU + {D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Release|x86.Build.0 = Release|Any CPU {ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Debug|x64.ActiveCfg = Debug|Any CPU + {ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Debug|x64.Build.0 = Debug|Any CPU + {ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Debug|x86.ActiveCfg = Debug|Any CPU + {ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Debug|x86.Build.0 = Debug|Any CPU {ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Release|Any CPU.ActiveCfg = Release|Any CPU {ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Release|Any CPU.Build.0 = Release|Any CPU + {ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Release|x64.ActiveCfg = Release|Any CPU + {ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Release|x64.Build.0 = Release|Any CPU + {ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Release|x86.ActiveCfg = Release|Any CPU + {ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Release|x86.Build.0 = Release|Any CPU {FC694C68-F0E3-411F-8E6C-2E9F94826016}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FC694C68-F0E3-411F-8E6C-2E9F94826016}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC694C68-F0E3-411F-8E6C-2E9F94826016}.Debug|x64.ActiveCfg = Debug|Any CPU + {FC694C68-F0E3-411F-8E6C-2E9F94826016}.Debug|x64.Build.0 = Debug|Any CPU + {FC694C68-F0E3-411F-8E6C-2E9F94826016}.Debug|x86.ActiveCfg = Debug|Any CPU + {FC694C68-F0E3-411F-8E6C-2E9F94826016}.Debug|x86.Build.0 = Debug|Any CPU {FC694C68-F0E3-411F-8E6C-2E9F94826016}.Release|Any CPU.ActiveCfg = Release|Any CPU {FC694C68-F0E3-411F-8E6C-2E9F94826016}.Release|Any CPU.Build.0 = Release|Any CPU + {FC694C68-F0E3-411F-8E6C-2E9F94826016}.Release|x64.ActiveCfg = Release|Any CPU + {FC694C68-F0E3-411F-8E6C-2E9F94826016}.Release|x64.Build.0 = Release|Any CPU + {FC694C68-F0E3-411F-8E6C-2E9F94826016}.Release|x86.ActiveCfg = Release|Any CPU + {FC694C68-F0E3-411F-8E6C-2E9F94826016}.Release|x86.Build.0 = Release|Any CPU + {D6F2400A-6576-4028-8136-212C4176546D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D6F2400A-6576-4028-8136-212C4176546D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D6F2400A-6576-4028-8136-212C4176546D}.Debug|x64.ActiveCfg = Debug|Any CPU + {D6F2400A-6576-4028-8136-212C4176546D}.Debug|x64.Build.0 = Debug|Any CPU + {D6F2400A-6576-4028-8136-212C4176546D}.Debug|x86.ActiveCfg = Debug|Any CPU + {D6F2400A-6576-4028-8136-212C4176546D}.Debug|x86.Build.0 = Debug|Any CPU + {D6F2400A-6576-4028-8136-212C4176546D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D6F2400A-6576-4028-8136-212C4176546D}.Release|Any CPU.Build.0 = Release|Any CPU + {D6F2400A-6576-4028-8136-212C4176546D}.Release|x64.ActiveCfg = Release|Any CPU + {D6F2400A-6576-4028-8136-212C4176546D}.Release|x64.Build.0 = Release|Any CPU + {D6F2400A-6576-4028-8136-212C4176546D}.Release|x86.ActiveCfg = Release|Any CPU + {D6F2400A-6576-4028-8136-212C4176546D}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE