Esempio n. 1
0
 protected void Page_Load(object sender, EventArgs e)
 {
     try
     {
         BLLJIMP.BLLMall             bllMall = new BLLJIMP.BLLMall();
         BLLJIMP.BllPay              bllPay  = new BLLJIMP.BllPay();
         Dictionary <string, string> dicAll  = bllPay.GetRequestParameter();
         //商户订单号
         //string out_trade_no = Request.QueryString["out_trade_no"];
         //支付宝交易号
         // string trade_no = Request.QueryString["trade_no"];
         //交易状态
         // string result = Request.QueryString["result"];
         var order = bllMall.GetOrderInfo(dicAll["out_trade_no"]);
         WXMallPaymentType paymentType = bllMall.GetPaymentType(int.Parse(order.PaymentTypeAutoId));
         if (dicAll.Count > 0)//判断是否有带返回参数
         {
             //Notify aliNotify = new Notify();
             //bool verifyResult = aliNotify.VerifyReturnMall(DicAll, Request.QueryString["sign"], PaymentType.AlipayPartnerKey);
             if (bllPay.VerifySignatureAlipay(dicAll, paymentType.AlipayPartner, paymentType.AlipayPartnerKey))//验证成功
             {
                 if (order.PaymentStatus.Equals(1))
                 {
                     payresult = "true";
                 }
                 else
                 {
                     order.PaymentStatus = 1;
                     order.Status        = "待发货";
                     if (bllMall.GetWebsiteInfoModelFromDataBase().IsDistributionMall.Equals(1))
                     {
                         order.DistributionStatus = 1;
                     }
                     if (bllMall.Update(order))
                     {
                         payresult = "true";
                     }
                     else
                     {
                         msg.InnerHtml = "更新支付状态失败!</br>等待异步通知更新..";
                     }
                 }
             }
             else//验证失败
             {
                 msg.InnerHtml = "验证失败";
             }
         }
         else
         {
             msg.InnerHtml = "无返回参数";
         }
     }
     catch (Exception ex)
     {
         msg.InnerHtml = ex.Message;
     }
 }
Esempio n. 2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                BLLJIMP.BLLMall             bllMall = new BLLJIMP.BLLMall();
                Dictionary <string, string> sPara   = GetRequestPost();
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(sPara["notify_data"]);
                xmlDoc.Save(string.Format("C:\\Alipay\\mallnotify{0}.xml", DateTime.Now.ToString("yyyyMMddHHmmssfff")));
                //商户订单号
                string outTradeNo = xmlDoc.SelectSingleNode("/notify/out_trade_no").InnerText;
                //支付宝交易号
                string trade_no = xmlDoc.SelectSingleNode("/notify/trade_no").InnerText;
                //交易状态
                string            tradeStatus = xmlDoc.SelectSingleNode("/notify/trade_status").InnerText;
                var               order       = bllMall.GetOrderInfo(outTradeNo);
                WXMallPaymentType paymentType = bllMall.GetPaymentType(int.Parse(order.PaymentTypeAutoId));
                if (sPara.Count > 0)//判断是否有带返回参数
                {
                    Notify aliNotify    = new Notify();
                    bool   verifyResult = aliNotify.VerifyNotifyMall(sPara, Request.Form["sign"], paymentType.AlipayPartner, paymentType.AlipayPartnerKey);
                    if (verifyResult)//验证成功
                    {
                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        //请在这里加上商户的业务逻辑程序代码

                        //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
                        //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表

                        //解密(如果是RSA签名需要解密,如果是MD5签名则下面一行清注释掉)
                        //sPara = aliNotify.Decrypt(sPara);

                        //XML解析notify_data数据
                        if (tradeStatus == "TRADE_FINISHED")
                        {
                            //判断该笔订单是否在商户网站中已经做过处理
                            //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                            //如果有做过处理,不执行商户的业务程序

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

                            if (order.PaymentStatus.Equals(0))//只有未付款状态
                            {
                                order.PaymentStatus = 1;
                                order.Status        = "待发货";
                                if (bllMall.GetWebsiteInfoModelFromDataBase().IsDistributionMall.Equals(1))
                                {
                                    order.DistributionStatus = 1;
                                }
                                if (bllMall.Update(order))
                                {
                                    Response.Write("success");
                                }
                                else
                                {
                                    Response.Write("fail");
                                }
                            }
                            else
                            {
                                Response.Write("success");  //请不要修改或删除
                            }
                        }
                        else if (tradeStatus == "TRADE_SUCCESS")
                        {
                            //判断该笔订单是否在商户网站中已经做过处理
                            //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                            //如果有做过处理,不执行商户的业务程序

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


                            if (order.PaymentStatus.Equals(0))//只有未付款状态
                            {
                                order.PaymentStatus = 1;
                                order.Status        = "待发货";
                                if (bllMall.GetWebsiteInfoModelFromDataBase().IsDistributionMall.Equals(1))
                                {
                                    order.DistributionStatus = 1;
                                }
                                if (bllMall.Update(order))
                                {
                                    Response.Write("success");
                                }
                                else
                                {
                                    Response.Write("fail");
                                }
                            }
                            else
                            {
                                Response.Write("success");  //请不要修改或删除
                            }
                        }
                        else
                        {
                            Response.Write(tradeStatus);
                        }



                        //——请根据您的业务逻辑来编写程序(以上代码仅作参考)——

                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                    }
                    else//验证失败
                    {
                        Response.Write("fail");
                    }
                }
                else
                {
                    Response.Write("无通知参数");
                }
            }
            catch (Exception)
            {
                Response.Write("fail");
            }
        }
Esempio n. 3
0
        public void ProcessRequest(HttpContext context)
        {
            /// <summary>
            /// 卡券BLL
            /// </summary>
            BLLJIMP.BLLCardCoupon bllCardCoupon = new BLLJIMP.BLLCardCoupon();
            /// <summary>
            /// 商城BLL
            /// </summary>
            BLLJIMP.BLLMall bllMall = new BLLJIMP.BLLMall();
            /// <summary>
            /// 用户BLL
            /// </summary>
            BLLJIMP.BLLUser bllUser = new BLLJIMP.BLLUser();
            /// <summary>
            /// 微信BLL
            /// </summary>
            BLLJIMP.BLLWeixin bllWeixin = new BLLJIMP.BLLWeixin();
            /// <summary>
            ///
            /// </summary>
            BLLJIMP.BLLStoredValueCard bllStoredValue = new BLLJIMP.BLLStoredValueCard();
            /// <summary>
            ///
            /// </summary>
            BLLJIMP.BLLWeixinCard bllWeixinCard = new BLLJIMP.BLLWeixinCard();

            string cardCouponId   = context.Request["cardcoupon_id"];    //主卡券ID
            string myCardCouponId = context.Request["my_cardcoupon_id"]; //我的卡券ID

            if (string.IsNullOrEmpty(cardCouponId))
            {
                resp.status = false;
                resp.msg    = "cardcoupon_id 参数必传";
                context.Response.Write(JsonConvert.SerializeObject(resp));
                return;
            }
            CardCoupons cardCoupon = bllCardCoupon.GetCardCouponByWXCardId(cardCouponId);

            if (cardCoupon == null)
            {
                cardCoupon = bllCardCoupon.GetCardCoupon(int.Parse(cardCouponId));
                if (cardCoupon == null)
                {
                    resp.status = false;
                    resp.msg    = "cardcoupon_id 不存在";
                    context.Response.Write(JsonConvert.SerializeObject(resp));
                    return;
                }
            }
            cardCoupon = bllCardCoupon.ConvertExpireTime(cardCoupon);

            MainCardModel model = new MainCardModel();

            model.cardcoupon_id      = cardCoupon.CardId;
            model.cardcoupon_name    = cardCoupon.Name;
            model.cardcoupon_type    = ConvertCardCouponType(cardCoupon.CardCouponType);
            model.valid_from         = cardCoupon.ValidFrom.ToString();
            model.valid_to           = cardCoupon.ValidTo.ToString();
            model.img_url            = bllMall.GetImgUrl(cardCoupon.Logo);
            model.discount           = string.IsNullOrEmpty(cardCoupon.Ex1) ? 0 : double.Parse(cardCoupon.Ex1);
            model.product_id         = string.IsNullOrEmpty(cardCoupon.Ex2) ? 0 : double.Parse(cardCoupon.Ex2);
            model.deductible_amount  = string.IsNullOrEmpty(cardCoupon.Ex3) ? 0 : double.Parse(cardCoupon.Ex3);
            model.freefreight_amount = string.IsNullOrEmpty(cardCoupon.Ex4) ? 0 : double.Parse(cardCoupon.Ex4);
            model.buckle_amount      = string.IsNullOrEmpty(cardCoupon.Ex5) ? 0 : double.Parse(cardCoupon.Ex5);
            model.buckle_sub_amount  = string.IsNullOrEmpty(cardCoupon.Ex6) ? 0 : double.Parse(cardCoupon.Ex6);
            model.max_count          = cardCoupon.MaxCount;
            model.send_count         = cardCoupon.SendCount;
            model.un_send_count      = cardCoupon.UnSendCount;
            //model.is_recivece = bllCardCoupon.IsReciveCoupon(cardCoupon.CardId, CurrentUserInfo.UserID);
            model.valid_to_timestamp  = bllCardCoupon.GetTimeStamp((DateTime)cardCoupon.ValidTo);
            model.limit_type          = cardCoupon.Ex7;
            model.product_tags        = cardCoupon.Ex8;
            model.user_get_limit_type = cardCoupon.GetLimitType;
            model.is_can_use_shop     = cardCoupon.IsCanUseShop;
            model.is_can_use_groupbuy = cardCoupon.IsCanUseGroupbuy;
            model.expire_time_type    = cardCoupon.ExpireTimeType;
            model.expire_day          = cardCoupon.ExpireDay;
            model.weixin_card_id      = cardCoupon.WeixinCardId == null ? "" : cardCoupon.WeixinCardId;
            if (!string.IsNullOrEmpty(myCardCouponId))
            {
                MyCardCoupons myCardCoupon = bllCardCoupon.GetMyCardCoupon(int.Parse(myCardCouponId));
                if (myCardCoupon != null)
                {
                    UserInfo fromUserInfo = bllUser.GetUserInfo(myCardCoupon.UserId);

                    if (fromUserInfo != null)
                    {
                        model.from_user_info = new UserInfoModel();
                        model.from_user_info.head_img_url = bllUser.GetUserDispalyAvatar(fromUserInfo);
                        model.from_user_info.nick_name    = bllUser.GetUserDispalyName(fromUserInfo);
                    }

                    if (!string.IsNullOrEmpty(myCardCoupon.ToUserId))
                    {
                        model.is_donation = true;
                    }
                }
            }

            resp.status = true;
            resp.result = model;

            context.Response.Write(JsonConvert.SerializeObject(resp));
        }
Esempio n. 4
0
        public void ProcessRequest(HttpContext context)
        {
            /// <summary>
            /// 卡券BLL
            /// </summary>
            BLLJIMP.BLLCardCoupon bllCardCoupon = new BLLJIMP.BLLCardCoupon();
            /// <summary>
            /// 商城BLL
            /// </summary>
            BLLJIMP.BLLMall bllMall = new BLLJIMP.BLLMall();
            /// <summary>
            /// 用户BLL
            /// </summary>
            BLLJIMP.BLLUser bllUser = new BLLJIMP.BLLUser();
            /// <summary>
            /// 微信BLL
            /// </summary>
            BLLJIMP.BLLWeixin bllWeixin = new BLLJIMP.BLLWeixin();
            /// <summary>
            ///
            /// </summary>
            BLLJIMP.BLLStoredValueCard bllStoredValue = new BLLJIMP.BLLStoredValueCard();
            /// <summary>
            ///
            /// </summary>
            BLLJIMP.BLLWeixinCard bllWeixinCard = new BLLJIMP.BLLWeixinCard();


            int pageIndex = !string.IsNullOrEmpty(context.Request["pageindex"]) ? int.Parse(context.Request["pageindex"]) : 1;
            int pageSize  = !string.IsNullOrEmpty(context.Request["pagesize"]) ? int.Parse(context.Request["pagesize"]) : 20;

            pageSize = int.MaxValue;
            string cardcouponStatus    = context.Request["cardcoupon_status"];
            string isCanUse            = "0";                                      // context.Request["is_can_use"];//可以正常使用的标识
            string amount              = context.Request["amount"];                //订单金额
            string isNotShowStoreValue = context.Request["is_notshow_storevalue"]; //是否不显示储值卡

            string openId = context.Request["open_id"];

            bool   isSuccess  = false;
            string msg        = "";
            string couponName = "";
            int    totalCount = 0;

            var currUser = bllUser.GetUserInfoByOpenId(openId);

            if (currUser == null)
            {
                resp.status = false;
                resp.msg    = "openid找不到用户";
                context.Response.Write(JsonConvert.SerializeObject(resp));
                return;
            }

            List <MyCardModel> list = new List <MyCardModel>();

            #region 优惠券
            var sourceData = bllCardCoupon.GetMyCardCoupons(currUser.UserID, pageIndex, pageSize, out totalCount, cardcouponStatus);
            foreach (var item in sourceData)
            {
                BLLJIMP.Model.CardCoupons cardCoupon = bllCardCoupon.GetCardCoupon(item.CardId);
                cardCoupon = bllCardCoupon.ConvertExpireTime(cardCoupon, item);
                MyCardModel model = new MyCardModel();
                model.cardcoupon_id        = item.AutoId;
                model.main_cardcoupon_id   = item.CardId;
                model.cardcoupon_name      = cardCoupon.Name;
                model.cardcoupon_type      = ConvertCardCouponType(cardCoupon.CardCouponType);
                model.valid_from           = cardCoupon.ValidFrom.ToString();
                model.valid_to             = cardCoupon.ValidTo.ToString();
                model.img_url              = bllMall.GetImgUrl(cardCoupon.Logo);
                model.cardcoupon_status    = item.Status;
                model.cardcoupon_gettime   = bllCardCoupon.GetTimeStamp(item.InsertDate);
                model.product_id           = cardCoupon.Ex2;
                model.valid_from_timestamp = bllCardCoupon.GetTimeStamp((DateTime)cardCoupon.ValidFrom);
                model.valid_to_timestamp   = bllCardCoupon.GetTimeStamp((DateTime)cardCoupon.ValidTo);
                model.discount             = cardCoupon.Ex1;
                model.deductible_amount    = cardCoupon.Ex3;
                model.freefreight_amount   = cardCoupon.Ex4;
                model.buckle_amount        = cardCoupon.Ex5;
                model.buckle_sub_amount    = cardCoupon.Ex6;
                model.limit_type           = cardCoupon.Ex7;
                model.product_tags         = cardCoupon.Ex8;
                model.hexiao_channel       = item.HexiaoChannel;
                model.is_can_use_shop      = cardCoupon.IsCanUseShop;
                model.is_can_use_groupbuy  = cardCoupon.IsCanUseGroupbuy;
                model.weixin_card_id       = cardCoupon.WeixinCardId;

                if (model.cardcoupon_type == 4)//满减券直接转成现金券
                {
                    model.buckle_amount     = "";
                    model.buckle_sub_amount = "";
                    model.cardcoupon_type   = 1;
                    model.deductible_amount = cardCoupon.Ex6;
                }

                #region 转赠信息
                model.is_can_give = bllCardCoupon.IsCanGiveCoupon(item, out msg);
                if (!string.IsNullOrEmpty(item.FromUserId))//赠送人信息
                {
                    model.from_user_info = new UserInfoModel();
                    UserInfo fromUserInfo = bllUser.GetUserInfo(item.FromUserId);
                    if (fromUserInfo != null)
                    {
                        model.from_user_info.head_img_url = bllUser.GetUserDispalyAvatar(fromUserInfo);
                        model.from_user_info.nick_name    = bllUser.GetUserDispalyName(fromUserInfo);
                    }
                }
                if (!string.IsNullOrEmpty(item.ToUserId))//被赠送人信息
                {
                    model.to_user_info = new UserInfoModel();
                    UserInfo toUserInfo = bllUser.GetUserInfo(item.ToUserId);
                    if (toUserInfo != null)
                    {
                        model.to_user_info.head_img_url = bllUser.GetUserDispalyAvatar(toUserInfo);
                        model.to_user_info.nick_name    = bllUser.GetUserDispalyName(toUserInfo);
                    }
                }
                #endregion

                if (isCanUse == "1")//可以使用
                {
                    if (model.cardcoupon_status == 0)
                    {
                        if (cardCoupon.ValidFrom != null && cardCoupon.ValidTo != null)
                        {
                            DateTime dtNow = DateTime.Now;
                            if (dtNow >= (DateTime)(cardCoupon.ValidFrom) && (dtNow <= (DateTime)(cardCoupon.ValidTo)))
                            {
                                list.Add(model);
                                //if (!string.IsNullOrEmpty(amount))
                                //{
                                //    if (bllMall.CalcDiscountAmount(item.AutoId.ToString(), decimal.Parse(amount), currUser.UserID, out isSuccess, out msg, out couponName) > 0)
                                //    {
                                //        list.Add(model);
                                //    }
                                //}
                                //else
                                //{
                                //    list.Add(model);
                                //}
                            }
                        }
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(amount))
                    {
                        if (bllMall.CalcDiscountAmount(item.AutoId.ToString(), decimal.Parse(amount), currUser.UserID, out isSuccess, out msg, out couponName) > 0)
                        {
                            list.Add(model);
                        }
                    }
                    else
                    {
                        list.Add(model);
                    }
                }
            }
            #endregion

            #region 储值卡转换成现金券
            if (string.IsNullOrEmpty(isNotShowStoreValue))
            {
                var storeValueCardList = bllStoredValue.GetCanUseStoredValueCardList(currUser.UserID);
                foreach (var item in storeValueCardList)
                {
                    try
                    {
                        BLLJIMP.Model.StoredValueCard cardCoupon = bllStoredValue.Get <StoredValueCard>(string.Format(" AutoId={0}", item.CardId));
                        MyCardModel model = new MyCardModel();
                        model.cardcoupon_id      = item.AutoId;
                        model.main_cardcoupon_id = item.CardId;
                        model.cardcoupon_name    = string.Format("{0}(储值卡余额{1}元)", cardCoupon.Name, bllMall.GetStoreValueCardCanUseAmount(item.AutoId.ToString(), item.UserId));
                        model.valid_from         = DateTime.Now.ToString();
                        model.valid_to           = cardCoupon.ValidTo.ToString();
                        // model.img_url = bllMall.GetImgUrl(cardCoupon.Logo);
                        model.cardcoupon_status = 0;
                        //model.cardcoupon_gettime = bllCardCoupon.GetTimeStamp(item.InsertDate);
                        //model.product_id = cardCoupon.Ex2;
                        model.valid_from_timestamp = bllCardCoupon.GetTimeStamp(DateTime.Now);
                        model.valid_to_timestamp   = bllCardCoupon.GetTimeStamp((DateTime)cardCoupon.ValidTo);
                        model.discount             = "";
                        //model.deductible_amount = cardCoupon.Ex3;
                        model.freefreight_amount = "";
                        model.buckle_amount      = "";
                        model.buckle_sub_amount  = "";
                        model.limit_type         = "";
                        model.product_tags       = "";
                        //model.hexiao_channel = item.HexiaoChannel;
                        model.is_can_use_shop     = 1;
                        model.is_can_use_groupbuy = 1;
                        model.product_id          = "";
                        model.buckle_amount       = "";
                        model.buckle_sub_amount   = "";
                        model.cardcoupon_type     = 1;
                        model.deductible_amount   = (item.Amount - bllStoredValue.GetUseRecordList(item.AutoId, item.UserId).Sum(p => p.UseAmount)).ToString();
                        model.is_store_card       = 1;
                        list.Add(model);
                        totalCount++;
                    }
                    catch (Exception ex)
                    {
                        continue;
                    }
                }
                #endregion
            }

            resp.status = true;

            resp.result = new
            {
                totalcount = list.Count,
                list       = list
            };

            context.Response.Write(JsonConvert.SerializeObject(resp));
        }