public async Task <IActionResult> Edit(string id, Menber menber) { if (id != menber.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(menber); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!MenberExists(menber.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(menber)); }
public async Task <IActionResult> Create(Menber menber) { if (ModelState.IsValid) { _context.Add(menber); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(menber)); }
public IActionResult PromoCode() { try { var openId = HttpContext.Session.GetString("OpenId"); Menber menber = _context.Menbers.FirstOrDefault(x => x.WeChatOpenId == openId); var result = Senparc.Weixin.MP.AdvancedAPIs.QrCodeApi.Create(WeiXinConfig.appId, 2592000, 1222, Senparc.Weixin.MP.QrCode_ActionName.QR_STR_SCENE, menber.Id); ViewBag.urlstr = result.url; } catch (Exception ex) { RCLog.Error(this, ex.ToString()); } return(View()); }
public async Task <IActionResult> Me() { MeVM vm = new MeVM(); Menber menber = null; ViewBag.headerUrl = HttpContext.Session.GetString("headimgurl"); try { var weChatOpenId = HttpContext.Session.GetString("OpenId"); menber = await _context.Menbers.FirstOrDefaultAsync(x => x.WeChatOpenId == weChatOpenId); if (menber == null) { menber = new Menber(); menber.Username = HttpContext.Session.GetString("nickname"); menber.WeChatOpenId = weChatOpenId; _context.Add(menber); _context.SaveChanges(); ViewBag.headerUrl = HttpContext.Session.GetString("headimgurl"); return(RedirectToAction("ModifPhoneNumber", "wechat")); } else { menber.Username = HttpContext.Session.GetString("nickname"); _context.Update(menber); _context.SaveChanges(); } vm.Balance = (decimal)(menber.AccountSum * 0.01);//转化为元 vm.IntegralSum = menber.IntegralSum; vm.Username = menber.Username; vm.PhoneNo = string.IsNullOrEmpty(menber.PhoneNumber) ? "无" : menber.PhoneNumber; vm.OrderSum = await _context.Orders.Where(x => x.OwnerId == menber.Id).CountAsync(); } catch (Exception ex) { RCLog.Error(this, ex.ToString()); } return(View(vm)); }
public override IResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage) { switch (requestMessage.Event) { case Event.ENTER: break; case Event.LOCATION: break; case Event.subscribe: var requestMessagenew = (RequestMessageEvent_Subscribe)requestMessage; //RCLog.Info(this, "EventKey:" + requestMessagenew.EventKey);///推荐人openId //RCLog.Info(this, "FromUserName:" + requestMessagenew.FromUserName);///订阅人Id //RCLog.Info(this, "ToUserName:" + requestMessagenew.ToUserName);///服务号Id var result = _context.Menbers.FirstOrDefault(x => x.WeChatOpenId == requestMessagenew.FromUserName); if (result == null) { var ReferrerId = requestMessagenew.EventKey.Replace("qrscene_", ""); Menber menber = new Menber(); menber.WeChatOpenId = requestMessagenew.FromUserName; menber.ReferrerId = requestMessagenew.FromUserName == ReferrerId ?"": ReferrerId; _context.Add(menber); _context.SaveChanges(); } break; case Event.unsubscribe: break; case Event.CLICK: break; case Event.scan: break; case Event.VIEW: break; case Event.MASSSENDJOBFINISH: break; case Event.TEMPLATESENDJOBFINISH: break; case Event.scancode_push: break; case Event.scancode_waitmsg: break; case Event.pic_sysphoto: break; case Event.pic_photo_or_album: break; case Event.pic_weixin: break; case Event.location_select: break; case Event.card_pass_check: break; case Event.card_not_pass_check: break; case Event.user_get_card: break; case Event.user_del_card: break; case Event.kf_create_session: break; case Event.kf_close_session: break; case Event.kf_switch_session: break; case Event.poi_check_notify: break; case Event.WifiConnected: break; case Event.user_consume_card: break; case Event.user_view_card: break; case Event.user_enter_session_from_card: break; case Event.merchant_order: break; case Event.submit_membercard_user_info: break; case Event.ShakearoundUserShake: break; case Event.user_gifting_card: break; case Event.user_pay_from_pay_cell: break; case Event.update_member_card: break; case Event.card_sku_remind: break; case Event.card_pay_order: break; case Event.qualification_verify_success: break; case Event.qualification_verify_fail: break; case Event.naming_verify_success: break; case Event.naming_verify_fail: break; case Event.annual_renew: break; case Event.verify_expired: break; case Event.weapp_audit_success: break; case Event.weapp_audit_fail: break; default: break; } return(base.OnEventRequest(requestMessage)); }
/// <summary> /// JS-SDK支付回调地址(在统一下单接口中设置notify_url) /// </summary> /// <returns></returns> public ActionResult PayNotifyUrl() { try { RCLog.Info(this, "支付返回"); ResponseHandler resHandler = new ResponseHandler(HttpContext); string return_code = resHandler.GetParameter("return_code"); string return_msg = resHandler.GetParameter("return_msg"); string res = null; resHandler.SetKey(WeiXinConfig.Key); //验证请求是否从微信发过来(安全) if (resHandler.IsTenpaySign() && return_code.ToUpper() == "SUCCESS") { res = "success"; //正确的订单处理 //直到这里,才能认为交易真正成功了,可以进行数据库操作,但是别忘了返回规定格式的消息! string total_fee = resHandler.GetParameter("total_fee"); string out_trade_no = resHandler.GetParameter("out_trade_no"); string openid = resHandler.GetParameter("openid"); string package = resHandler.GetParameter("attach"); Menber owner = _context.Menbers.FirstOrDefault(x => x.WeChatOpenId == openid); AccountInfo accountinfo = _context.AccountInfos.FirstOrDefault(x => x.TradeNo == out_trade_no); accountinfo.BeforeMoney = owner.AccountSum; accountinfo.AfterMoney = owner.AccountSum + int.Parse(total_fee); accountinfo.OwnerId = owner.Id; accountinfo.Money = int.Parse(total_fee); accountinfo.CreateTime = DateTime.Now; accountinfo.TradeNo = out_trade_no; accountinfo.TradeName = package; owner.AccountSum = accountinfo.AfterMoney; //_context.Add(accountinfo); _context.SaveChanges(); } else { res = "wrong";//错误的订单处理 } /* 这里可以进行订单处理的逻辑 */ //发送支付成功的模板消息 string xml = string.Format(@"<xml> <return_code><![CDATA[{0}]]></return_code> <return_msg><![CDATA[{1}]]></return_msg> </xml>", return_code, return_msg); RCLog.Info(this, xml); return(Content(xml, "text/xml")); } catch (Exception ex) { RCLog.Error(this, $"发生错误{ex.ToString()}"); throw; } }