Пример #1
0
        private void CouponComment()
        {
            int     cid    = GetInt("couponid");
            int     uid    = GetInt("uid");
            string  msg    = GetString("message");
            var     coupon = CouponHelper.GetItem(cid);
            Comment c      = new Comment();

            c.SellerId = coupon.SellerId;
            c.TypeId   = coupon.Id;
            c.UserId   = uid;
            c.Content  = msg;
            c.Type     = CommentType.Coupons;
            //冗余两个字段
            c.Img   = coupon.ImgUrl;
            c.Title = coupon.Title;

            try
            {
                CommentHelper.Create(c);
                coupon.Commentnum += 1;
                CouponHelper.Update(coupon);
            }
            catch
            {
                ReturnErrorMsg("fail");
                throw;
            }
            var          user = AccountHelper.GetUser(uid);
            ExtcreditLog log  = new ExtcreditLog();

            if (!ExtcreditLogHelper.JudgeExtcreditGet(ExtcreditSourceType.CommentCoupon, cid, uid))
            {
                //积分获得
                log.UserId   = uid;
                log.SellerId = user.SellerId;
                log.SourceId = cid;
                var setting = SystemHelper.GetMerchantExtend(user.SellerId);

                log.Extcredit  = setting != null ? setting.CommentIntegral : 0;
                log.Type       = ExtcreditSourceType.CommentCoupon;
                log.CreateTime = DateTime.Now;

                ExtcreditLogHelper.AddExtcreditLog(log);

                user.Integral += log.Extcredit;
                AccountHelper.SaveAccount(user);
            }

            //ReturnCorrectMsg("评论成功");
            JsonTransfer jt = new JsonTransfer();

            jt.Add("data", new IntegralData(log.Extcredit));
            jt.AddSuccessParam();
            Response.Write(DesEncrypt(jt).ToLower());
            Response.End();
        }
Пример #2
0
        private void ActiveComment(HttpContext context)
        {
            int     aid    = GetInt("newid");
            int     uid    = GetInt("uid");
            var     user   = AccountHelper.GetUser(uid);
            string  msg    = GetString("message");
            var     active = ActiveHelper.GetItem(aid);
            Comment c      = new Comment();

            c.SellerId = active.SellerId;
            c.TypeId   = active.Id;
            c.UserId   = uid;
            c.Content  = msg;
            c.Type     = CommentType.Avtive;
            //冗余两个字段
            c.Img   = active.CoverImgUrl;
            c.Title = active.Title;

            try
            {
                CommentHelper.Create(c);
                active.Commentnum += 1;
                ActiveHelper.Update(active);
            }
            catch
            {
                ReturnErrorMsg("fail");
                throw;
            }
            ExtcreditLog log            = new ExtcreditLog();
            var          merchantExtend = SystemHelper.GetMerchantExtend(user.SellerId);

            if (!ExtcreditLogHelper.JudgeExtcreditGet(ExtcreditSourceType.CommentActive, aid, uid))
            {
                //积分获得
                log.UserId     = uid;
                log.SellerId   = user.SellerId;
                log.SourceId   = aid;
                log.Extcredit  = merchantExtend != null ? merchantExtend.CommentIntegral : 0;
                log.Type       = ExtcreditSourceType.CommentActive;
                log.CreateTime = DateTime.Now;

                ExtcreditLogHelper.AddExtcreditLog(log);

                user.Integral += log.Extcredit;
                AccountHelper.SaveAccount(user);
            }

            //ReturnCorrectMsg("评论成功");
            JsonTransfer jt = new JsonTransfer();

            jt.Add("data", new IntegralData(log.Extcredit));
            jt.AddSuccessParam();
            Response.Write(DesEncrypt(jt).ToLower());
            Response.End();
        }
Пример #3
0
        /// <summary>
        /// 图片评论
        /// </summary>
        /// <returns></returns>
        public void ImgComment()
        {
            int            userId = GetInt("uid");
            int            imgId  = GetInt("pid");
            string         msg    = GetString("message");
            var            user   = AccountHelper.GetUser(userId);
            SourceMaterial sm     = SourceMaterialHelper.GetItem(imgId);
            Comment        c      = new Comment();

            c.SellerId = sm.SellerId;
            c.TypeId   = sm.Id;
            c.UserId   = userId;
            c.Content  = msg;
            c.Type     = CommentType.Img;
            //冗余两个字段
            c.Img   = sm.Url;
            c.Title = sm.Title;
            try
            {
                CommentHelper.Create(c);
                sm.Commentnum += 1;
                SourceMaterialHelper.Update(sm);
            }
            catch
            {
                ReturnErrorMsg("fail");
                throw;
            }
            ExtcreditLog log = new ExtcreditLog();

            if (!ExtcreditLogHelper.JudgeExtcreditGet(ExtcreditSourceType.CommentImg, imgId, userId))
            {
                //积分获得
                log.UserId   = userId;
                log.SellerId = user.SellerId;
                log.SourceId = imgId;
                var setting = SystemHelper.GetMerchantExtend(user.SellerId);
                log.Extcredit  = setting != null ? setting.CommentIntegral : 0;
                log.Type       = ExtcreditSourceType.CommentImg;
                log.CreateTime = DateTime.Now;

                ExtcreditLogHelper.AddExtcreditLog(log);

                user.Integral += log.Extcredit;
                AccountHelper.SaveAccount(user);
            }

            //ReturnCorrectMsg("评论成功");
            JsonTransfer jt = new JsonTransfer();

            jt.Add("data", new IntegralData(log.Extcredit));
            jt.AddSuccessParam();
            Response.Write(DesEncrypt(jt).ToLower());
            Response.End();
        }
Пример #4
0
    protected void Page_Load(object sender, EventArgs e)
    {
        logger.Info("支付宝充值回调开始notify_url");
        logger.Info("开始解析参数");
        Dictionary <string, string> sPara = GetRequestPost();

        if (sPara.Count > 0)//判断是否有带返回参数
        {
            //logger.Info("判断有带参数");
            Notify aliNotify = new Notify();
            var    sign      = Request.Form["sign"];
            logger.InfoFormat("验证签名:{0}", sign);
            bool verifyResult = aliNotify.VerifyNotify(sPara, sign);

            if (verifyResult)//验证成功
            {
                logger.Info("签名通过验证");
                /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                //请在这里加上商户的业务逻辑程序代码


                //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
                //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表
                //解密(如果是RSA签名需要解密,如果是MD5签名则下面一行清注释掉)
                //sPara = aliNotify.Decrypt(sPara);

                //XML解析notify_data数据
                try
                {
                    //XmlDocument xmlDoc = new XmlDocument();
                    //string notify_data = sPara["notify_data"];
                    ////logger.InfoFormat("notify_data:{0}", notify_data);
                    //xmlDoc.LoadXml(notify_data);
                    //商户订单号
                    string out_trade_no = sPara["out_trade_no"]; //xmlDoc.SelectSingleNode("/notify/out_trade_no").InnerText;
                    //支付宝交易号
                    string trade_no = sPara["trade_no"];         //xmlDoc.SelectSingleNode("/notify/trade_no").InnerText;
                    //交易状态
                    string trade_status = sPara["trade_status"]; //xmlDoc.SelectSingleNode("/notify/

                    logger.InfoFormat("out_trade_no:{0},trade_no:{1},trade_status:{2}", out_trade_no, trade_no, trade_status);
                    if (trade_status == "TRADE_FINISHED" || trade_status == "TRADE_SUCCESS")
                    {
                        //判断该笔订单是否在商户网站中已经做过处理
                        //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                        //如果有做过处理,不执行商户的业务程序

                        //注意:
                        //该种交易状态只在两种情况下出现
                        //1、开通了普通即时到账,买家付款成功后。
                        //2、开通了高级即时到账,从该笔交易成功时间算起,过了签约时的可退款时限(如:三个月以内可退款、一年以内可退款等)后。

                        if (Utility.IsNum(out_trade_no))
                        {
                            var id        = Convert.ToInt32(out_trade_no);
                            var chargeLog = ChargeLogHelper.GetChargeLog(id);
                            if (chargeLog != null && chargeLog.Status == 0)
                            {
                                //添加
                                var user = AccountHelper.GetUser(chargeLog.UserId);
                                if (user == null)
                                {
                                    logger.ErrorFormat("不存在用户Id={0}", chargeLog.UserId);
                                }
                                else
                                {
                                    //交易金额
                                    double total_fee = Convert.ToDouble(sPara["total_fee"]);
                                    var    setting   = SystemHelper.GetMerchantExtend(chargeLog.SellerId);

                                    ExtcreditLog log = new ExtcreditLog();
                                    log.UserId    = chargeLog.UserId;
                                    log.SellerId  = chargeLog.SellerId;
                                    log.SourceId  = DateTime.Now.GetUnixTime();
                                    log.Extcredit = (int)(chargeLog.Money * 1.0 * (setting != null ? setting.ChargeIntegral : 0));
                                    log.Type      = ExtcreditSourceType.Charge;

                                    ExtcreditLogHelper.AddExtcreditLog(log);


                                    logger.InfoFormat("充值之前;Integral={0},充值之后:Integral:{1}", user.Integral, user.Integral + log.Extcredit);
                                    user.Integral = user.Integral + log.Extcredit;
                                    var money = user.Money + chargeLog.Money;
                                    logger.InfoFormat("充值之前;Money={0},充值之后:Money:{1}", user.Money, money);
                                    user.Money          = money;
                                    user.TotalRecharge += chargeLog.Money;
                                    //保存用户信息
                                    AccountHelper.SaveAccount(user);

                                    var merchant = MerchantHelper.GetMerchant(chargeLog.SellerId);
                                    if (merchant != null)
                                    {
                                        merchant.Money = user.Money;
                                        MerchantHelper.SaveMerchant(merchant);
                                    }

                                    //更新充值记录
                                    //chargeLog.OrderId = trade_no;   //更新第三方订单id
                                    chargeLog.Status = RechargeStatus.Success;
                                    ChargeLogHelper.UpdateStatus(chargeLog, trade_no);
                                    logger.InfoFormat("充值成功;UserId={1},Money={0},ChargeLogId:{2},total_fee:{3}", chargeLog.Money, chargeLog.UserId, id, total_fee);
                                }
                            }
                            else if (chargeLog == null)
                            {
                                logger.ErrorFormat("不存在充值记录Id={0}", id);
                            }
                            else
                            {
                                logger.Error("该充值记录已处理过");
                            }
                        }
                        else
                        {
                            logger.Error("商户订单号不是int型");
                        }

                        Response.Write("success");  //请不要修改或删除
                    }
                    //else if (trade_status == "TRADE_SUCCESS")
                    //{
                    //    //判断该笔订单是否在商户网站中已经做过处理
                    //    //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                    //    //如果有做过处理,不执行商户的业务程序

                    //    //注意:
                    //    //该种交易状态只在一种情况下出现——开通了高级即时到账,买家付款成功后。


                    //    Response.Write("success");  //请不要修改或删除
                    //}
                    else
                    {
                        if (Utility.IsNum(out_trade_no))
                        {
                            var id = Convert.ToInt32(out_trade_no);

                            //更新充值记录
                            var chargeLog = ChargeLogHelper.GetChargeLog(id);
                            if (chargeLog != null)
                            {
                                logger.ErrorFormat("充值失败;UserId={1},Money={0}", chargeLog.Money, chargeLog.UserId);
                            }
                            else
                            {
                                logger.ErrorFormat("充值失败,充值记录未找到Id:{0}", id);
                            }
                            //关闭时才更改状态
                            if (trade_status == "TRADE_Close" && chargeLog != null)
                            {
                                chargeLog.Status = RechargeStatus.Fail;
                                ChargeLogHelper.UpdateStatus(chargeLog, trade_no);
                                trade_status = "success";//返回success
                            }
                        }
                        else
                        {
                            logger.ErrorFormat("充值失败,充值id不是int型;Id={0}", out_trade_no);
                        }
                        Response.Write(trade_status);
                    }
                }
                catch (Exception exc)
                {
                    logger.ErrorFormat("异常:{0})", exc.Message);
                    Response.Write(exc.ToString());
                }
                //——请根据您的业务逻辑来编写程序(以上代码仅作参考)——

                /////////////////////////////////////////////////////////////////////////////////////////////////////////////
            }
            else//验证失败
            {
                logger.Info("签名验证失败");
                Response.Write("fail");
            }
        }
        else
        {
            logger.Info("无通知参数");
            Response.Write("无通知参数");
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        logger.Info("支付宝充值回调开始wap_notify_ordersurl");
        logger.Info("开始解析参数");
        Dictionary <string, string> sPara = GetRequestPost();

        if (sPara.Count > 0)//判断是否有带返回参数
        {
            //logger.Info("判断有带参数");
            AlipayXmlNotify aliNotify = new AlipayXmlNotify();
            var             sign      = Request.Form["sign"];
            logger.InfoFormat("验证签名:{0}", sign);
            bool verifyResult = aliNotify.VerifyNotify(sPara, sign);

            if (verifyResult)//验证成功
            {
                logger.Info("签名通过验证");
                /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                //请在这里加上商户的业务逻辑程序代码


                //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
                //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表
                //解密(如果是RSA签名需要解密,如果是MD5签名则下面一行清注释掉)
                //sPara = aliNotify.Decrypt(sPara);

                //XML解析notify_data数据
                try
                {
                    XmlDocument xmlDoc      = new XmlDocument();
                    string      notify_data = sPara["notify_data"];
                    //logger.InfoFormat("notify_data:{0}", notify_data);
                    xmlDoc.LoadXml(notify_data);
                    //商户订单号
                    string out_trade_no = xmlDoc.SelectSingleNode("/notify/out_trade_no").InnerText;
                    //支付宝交易号
                    string trade_no = xmlDoc.SelectSingleNode("/notify/trade_no").InnerText;
                    //交易状态
                    string trade_status = xmlDoc.SelectSingleNode("/notify/trade_status").InnerText;

                    logger.InfoFormat("out_trade_no:{0},trade_no:{1},trade_status:{2}", out_trade_no, trade_no, trade_status);
                    if (trade_status == "TRADE_FINISHED" || trade_status == "TRADE_SUCCESS")
                    {
                        //判断该笔订单是否在商户网站中已经做过处理
                        //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                        //如果有做过处理,不执行商户的业务程序

                        //注意:
                        //该种交易状态只在两种情况下出现
                        //1、开通了普通即时到账,买家付款成功后。
                        //2、开通了高级即时到账,从该笔交易成功时间算起,过了签约时的可退款时限(如:三个月以内可退款、一年以内可退款等)后。

                        if (Utility.IsNum(out_trade_no))
                        {
                            var id     = Convert.ToInt32(out_trade_no);
                            var orders = OrdersHelper.GetOrders(id);
                            if (orders != null && orders.Status < OrderStatus.Pay)
                            {
                                //添加
                                var user = AccountHelper.GetUser(orders.UserId);
                                if (user == null)
                                {
                                    logger.ErrorFormat("不存在用户Id={0}", orders.UserId);
                                }
                                else
                                {
                                    var payMent = new Payment();
                                    if (orders.Pid > 0)
                                    {
                                        PaymentHelper.GetPayment(orders.Pid);
                                    }

                                    var chargeLog = new ChargeLog();
                                    chargeLog.UserId   = orders.UserId;
                                    chargeLog.Money    = -orders.TotalPrice;
                                    chargeLog.Pid      = orders.Pid;
                                    chargeLog.SellerId = orders.SellerId;
                                    chargeLog.OrderId  = orders.Id.ToString();
                                    chargeLog.PayName  = payMent.Id == 0 ? "账户余额" : payMent.Name;
                                    chargeLog.Status   = RechargeStatus.Success;
                                    chargeLog.GidList  = orders.GidList;
                                    chargeLog.NumList  = orders.NumList;
                                    chargeLog.Num      = orders.NumList.Sum(o => o);
                                    //记录消费记录
                                    ChargeLogHelper.AddChargeLog(chargeLog);
                                    var setting = SystemHelper.GetMerchantExtend(chargeLog.SellerId);
                                    //积分获得
                                    var log = new ExtcreditLog();
                                    log.UserId   = orders.UserId;
                                    log.SellerId = user.SellerId;

                                    log.SourceId   = orders.Id;
                                    log.Extcredit  = (int)(orders.TotalPrice * 1.0 / (setting != null ? setting.ConsumeIntegral : 0));
                                    log.Type       = ExtcreditSourceType.Consume;
                                    log.CreateTime = DateTime.Now;

                                    ExtcreditLogHelper.AddExtcreditLog(log);

                                    user.Integral += log.Extcredit;
                                    user.Concume(orders.TotalPrice, 1);

                                    //保存用户信息
                                    AccountHelper.SaveAccount(user);

                                    //更新订单中商品的销量
                                    GoodsHelper.UpdateGoodsSales(orders.GidList, orders.NumList);

                                    orders.Status = OrderStatus.Pay;
                                    OrdersHelper.SaveOrders(orders);

                                    logger.InfoFormat("订单付款成功;UserId={1},Money={0},OrdersId:{2},Status:{3}", orders.TotalPrice, orders.UserId, orders.Id, (int)orders.Status);
                                }
                            }
                            else if (orders == null)
                            {
                                logger.ErrorFormat("不存在订单记录Id={0}", id);
                            }
                            else
                            {
                                logger.Error("该订单已处理过");
                            }
                        }
                        else
                        {
                            logger.Error("商户订单号不是int型");
                        }

                        Response.Write("success");  //请不要修改或删除
                    }
                    //else if (trade_status == "TRADE_SUCCESS")
                    //{
                    //    //判断该笔订单是否在商户网站中已经做过处理
                    //    //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                    //    //如果有做过处理,不执行商户的业务程序

                    //    //注意:
                    //    //该种交易状态只在一种情况下出现——开通了高级即时到账,买家付款成功后。


                    //    Response.Write("success");  //请不要修改或删除
                    //}
                    else
                    {
                        if (Utility.IsNum(out_trade_no))
                        {
                            var id     = Convert.ToInt32(out_trade_no);
                            var orders = OrdersHelper.GetOrders(id);
                            if (orders != null)
                            {
                                logger.ErrorFormat("订单付款失败;UserId={1},Money={0}", orders.TotalPrice, orders.UserId);

                                orders.Status = OrderStatus.Update;
                                //关闭时才更改状态
                                if (trade_status == "TRADE_Close")
                                {
                                    orders.Status = OrderStatus.Cancel;
                                    trade_status  = "success";//返回success
                                }
                                OrdersHelper.SaveOrders(orders);
                            }
                            else
                            {
                                logger.ErrorFormat("订单付款失败,订单未找到Id:{0}", id);
                            }
                        }
                        else
                        {
                            logger.ErrorFormat("订单付款失败,订单付款id不是int型;Id={0}", out_trade_no);
                        }
                        Response.Write(trade_status);
                    }
                }
                catch (Exception exc)
                {
                    logger.ErrorFormat("异常:{0})", exc.Message);
                    Response.Write(exc.ToString());
                }
                //——请根据您的业务逻辑来编写程序(以上代码仅作参考)——

                /////////////////////////////////////////////////////////////////////////////////////////////////////////////
            }
            else//验证失败
            {
                logger.Info("签名验证失败");
                Response.Write("fail");
            }
        }
        else
        {
            logger.Info("无通知参数");
            Response.Write("无通知参数");
        }
    }