Esempio n. 1
0
        private void ShowInfo()
        {
            Model.wx_userweixin weixin = GetWeiXinCode();
            if (weixin.wxType != 4)
            {
                //必须是认证过的服务号才可以开通该功能
                JscriptMsg("必须是认证过的服务号(并且开通微信支付)才可以开通该功能!", "back", "Error");
                return;
            }
            BLL.wx_xjhongbao_base   xjBll = new wx_xjhongbao_base();
            Model.wx_xjhongbao_base model = xjBll.GetModelByWid(weixin.id);
            if (model == null || model.id == 0)
            {
                //新增记录
            }
            else
            {
                //修改
                hidId.Value = model.id.ToString();
                this.txtaccountBalance.Text = (model.accountBalance / 100.00).ToString();
                this.lbltotalLQMoney.Text   = (model.totalLQMoney / 100.00).ToString();
                this.txtremark.Value        = model.remark;

                if (MyCommFun.ObjToStr(model.warningInfo, "") != "")
                {
                    litWarning.Text = model.warningInfo;
                    mytips.Style.Add("display", "");
                }
                else
                {
                    mytips.Style.Add("display", "none");
                }
            }
        }
Esempio n. 2
0
        //保存
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            decimal accb = MyCommFun.Obj2Decimal(txtaccountBalance.Text.Trim(), -1);

            if (accb == -1)
            {
                JscriptMsg("余额输入有错误!", "", "Error");
                return;
            }
            BLL.wx_xjhongbao_base wxpayBll = new wx_xjhongbao_base();
            int id = MyCommFun.Obj2Int(hidId.Value, 0);

            Model.wx_xjhongbao_base baseModel = new Model.wx_xjhongbao_base();
            if (id == 0)
            {
                //新增
                Model.wx_userweixin weixin = GetWeiXinCode();

                baseModel.wid          = weixin.id;
                baseModel.createDate   = DateTime.Now;
                baseModel.totalLQMoney = 0;
            }
            else
            {
                //修改
                baseModel = wxpayBll.GetModel(id);
            }

            baseModel.accountBalance = (int)(accb * 100);
            baseModel.remark         = txtremark.Value.Trim();

            bool ret = false;

            if (id == 0)
            {
                int retNum = wxpayBll.Add(baseModel);
                if (retNum > 0)
                {
                    ret = true;
                }
            }
            else
            {
                ret = wxpayBll.Update(baseModel);
            }

            if (ret)
            {
                JscriptMsg("修改信息成功!", "basesetting.aspx", "Success");
            }
            else
            {
                JscriptMsg("保存过程中发生错误!", "", "Error");
                return;
            }
        }
Esempio n. 3
0
 private void AddBaseInfo(int wid)
 {
     BLL.wx_xjhongbao_base   xjBll     = new wx_xjhongbao_base();
     Model.wx_xjhongbao_base baseModel = xjBll.GetModelByWid(wid);
     if (baseModel == null || baseModel.id == 0)
     {
         baseModel                = new Model.wx_xjhongbao_base();
         baseModel.wid            = wid;
         baseModel.createDate     = DateTime.Now;
         baseModel.totalLQMoney   = 0;
         baseModel.accountBalance = 0;
         baseModel.remark         = "";
         baseModel.warningInfo    = "";
         int retNum = xjBll.Add(baseModel);
     }
 }
Esempio n. 4
0
        /// <summary>
        /// 处理发关注红包的逻辑
        /// </summary>
        /// <param name="openid"></param>
        /// <param name="wid"></param>
        /// <param name="actModel"></param>
        public int  proecssSendHB(string openid, int wid, Model.wx_xjhongbao_action actModel)
        {
            BLL.wx_xjhongbao_action actBll    = new BLL.wx_xjhongbao_action();
            BLL.wx_xjhongbao_base   baseBll   = new BLL.wx_xjhongbao_base();
            Model.wx_xjhongbao_base baseModel = baseBll.GetModelByWid(wid);

            BLL.wx_payment_wxpay   weixinPayBLL   = new BLL.wx_payment_wxpay();
            Model.wx_payment_wxpay weixinPayModel = weixinPayBLL.GetModelByWid(wid);

            if (baseModel == null || weixinPayModel == null || actModel == null)
            {
                return(0);
            }

            #region 取用户昵称--注释掉了
            //string error = "";
            //string accessToken=WeiXinCRMComm.getAccessToken(wid, out error);
            //if (error.Trim().Length > 0)
            //{
            //    WXLogs.AddErrLog(wid, "微信红包", actModel.act_name, "accessToken取值有错误error:"+error);
            //    return;
            //}
            //string nick = UserApi.Info(accessToken, openid).nickname;
            #endregion

            //用户此次获得的红包(单位分)
            int hongbaoFen = 0;
            if (actModel.totalLqMoney >= actModel.totalMoney)
            {
                //1 红包金额已经领取完了,记录到日志
                InsertToLQinfo(wid, actModel.id, openid, 0, DateTime.Parse("1970-1-1"), "", "", "", "", "红包余额不足,需要调整活动的金额");
                return(0);
            }
            //2 判断该用户是否已经领取了
            bool hasLQ = lqBll.ExistsOpenid(actModel.id, openid, actModel.lqType == 0 ? true : false);
            if (hasLQ)
            { //已经领取了
                return(0);
            }
            int leftMoney = actModel.totalMoney.Value - actModel.totalLqMoney.Value;//剩余金额
            //3 计算本次的红包
            if (actModel.moneyType == 0)
            { //定额
                hongbaoFen = actModel.min_value.Value;
            }
            else
            {  //随机
                Random rd = new Random();
                hongbaoFen = rd.Next(actModel.min_value.Value, actModel.max_value.Value);
            }

            if (hongbaoFen >= leftMoney)
            {
                hongbaoFen = leftMoney;
            }

            //4 给用户发红包
            string mchbillno = weixinPayModel.mch_id + DateTime.Now.ToString("yyyymmddHHmmss") + TenPayV3Util.BuildRandomStr(4);


            Model.wx_xjhongbao_lqinfo lqinfoEntity = new Model.wx_xjhongbao_lqinfo();
            lqinfoEntity.wid          = wid;
            lqinfoEntity.actionId     = actModel.id;
            lqinfoEntity.openid       = openid;
            lqinfoEntity.total_amount = hongbaoFen;
            lqinfoEntity.createDate   = DateTime.Now;

            XmlDocument doc = new XmlDocument();
            if (!SendHBBase(weixinPayModel, actModel, wid, openid, hongbaoFen, mchbillno, doc))
            {
                //发红包的方法出现问题
                WXLogs.AddErrLog(wid, "微信红包", actModel.act_name, "发现金红包底层方法报错。");

                lqinfoEntity.Send_time  = DateTime.Now;
                lqinfoEntity.mch_billno = mchbillno;
                lqinfoEntity.mch_id     = weixinPayModel.mch_id;
                lqinfoEntity.hbstatus   = "FAILED";
                lqinfoEntity.send_type  = "API";
                lqinfoEntity.hb_type    = "NORMAL";
                lqinfoEntity.reason     = "result_code:" + doc.InnerXml.ToString();

                lqBll.Add(lqinfoEntity);  //记录领取日志
                WXLogs.AddLog(wid, "微信红包", actModel.act_name, "现金红包领取失败:" + doc.InnerXml.ToString());
                return(0);
            }
            //5修改现金:1活动的领取金额增加;2用户的中奖记录增加
            actModel = actBll.GetModel(actModel.id);
            actModel.totalLqMoney += hongbaoFen;
            actBll.Update(actModel);
            //6修改配置文件的领取金额;
            baseModel.totalLQMoney += hongbaoFen;
            baseBll.Update(baseModel);

            WXLogs.AddLog(wid, "微信红包", actModel.act_name, "现金红包领取成功2:" + doc.InnerXml.ToString());

            lqinfoEntity.Send_time  = MyCommFun.Obj2DateTime(MyCommFun.GetXmlNode("send_time", doc), DateTime.Now);
            lqinfoEntity.mch_billno = mchbillno;
            lqinfoEntity.mch_id     = weixinPayModel.mch_id;
            lqinfoEntity.detail_id  = MyCommFun.GetXmlNode("send_listid", doc);
            lqinfoEntity.hbstatus   = "SUCCESS";
            lqinfoEntity.send_type  = "API";
            lqinfoEntity.hb_type    = "NORMAL";
            lqinfoEntity.reason     = "";
            lqinfoEntity.remark     = doc.InnerXml.ToString();
            lqBll.Add(lqinfoEntity);

            WXLogs.AddLog(wid, "微信红包", actModel.act_name, "现金红包成功领取3:" + doc.InnerXml.ToString());
            return(hongbaoFen);
        }