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"); } } }
//保存 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; } }
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); } }
/// <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); }