Files
g.hnyhua.cn/Mtxfw.VipSite/pay/kjpay_notify.aspx.cs

441 lines
27 KiB
C#
Raw Normal View History

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