public IActionResult NoticeList() { RCLog.Info(this, "test"); var vm = _context.Articles.Where(x => x.ArticleType == ArticleTypeEnum.Notice_4); return(View(vm)); }
public IActionResult SpecialOffersList() { RCLog.Info(this, "test"); var vm = _context.Articles.Where(x => x.ArticleType == ArticleTypeEnum.Slideshows_7); return(View(vm)); }
public IActionResult CustomerService() { RCLog.Info(this, "test"); var vm = _context.Articles.FirstOrDefault(x => x.ArticleType == ArticleTypeEnum.CustomerService_6); return(View(nameof(ShowArticle), vm)); }
public ActionResult OAuthCallback(string code, string state, string returnUrl) { //RCLog.Info(this, "OAuthCallback"); if (string.IsNullOrEmpty(code)) { return(Content("您拒绝了授权!")); } if (!state.Contains("|")) { //这里的state其实是会暴露给客户端的,验证能力很弱,这里只是演示一下 //实际上可以存任何想传递的数据,比如用户ID return(Content("验证失败!请从正规途径进入!1001")); } //通过,用code换取access_token var openIdResult = OAuthApi.GetAccessToken(WeiXinConfig.appId, WeiXinConfig.AppSecret, code); if (openIdResult.errcode != ReturnCode.请求成功) { return(Content("错误:" + openIdResult.errmsg)); } RCLog.Info(this, "OAuthCallback=" + openIdResult.openid); HttpContext.Session.SetString("OpenId", openIdResult.openid);//进行登录 OAuthUserInfo userInfo = OAuthApi.GetUserInfo(openIdResult.access_token, openIdResult.openid); HttpContext.Session.SetString("nickname", userInfo.nickname); HttpContext.Session.SetString("headimgurl", userInfo.headimgurl); //也可以使用FormsAuthentication等其他方法记录登录信息,如: //FormsAuthentication.SetAuthCookie(openIdResult.openid,false); //RCLog.Info(this, " 结束OAuthCallback"); return(Redirect(returnUrl)); }
public override IResponseMessageBase OnTextRequest(RequestMessageText requestMessage) { RCLog.Info(this, "进入信息处理"); var responseMessage = base.CreateResponseMessage <ResponseMessageText>(); //responseMessage.Content = "您的OpenID是:" + responseMessage.FromUserName+".\r\n您发送的文字是:"+requestMessage.Content; if (requestMessage.Content == "ID") { responseMessage.Content = "您的OpenID是:" + responseMessage.FromUserName; } if (requestMessage.Content == "天气") { responseMessage.Content = "抱歉,还未开通此功能!"; } return(responseMessage); }
public IActionResult ModifPhoneNumber(ModifPhoneNumberVM model) { if (ModelState.IsValid) { var PhoneValidateCode = HttpContext.Session.GetString(model.PhoneNumber); var openId = HttpContext.Session.GetString("OpenId"); var member = _context.Menbers.FirstOrDefault(x => x.WeChatOpenId == openId); if (model.PhoneValidateCode == PhoneValidateCode) { member.PhoneNumber = model.PhoneNumber; RCLog.Info(this, $"新手机号码为{ model.PhoneNumber}"); _context.Update(member); _context.SaveChanges(); return(RedirectToAction("Me", "WeChat")); } } ViewBag.headerUrl = HttpContext.Session.GetString("headimgurl"); return(View(model)); }
/// <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; } }
public ActionResult JsApi(string topupItemId = "2", string bodytext = "微信充值") { try { //RCLog.Info(this, "进入JsApi"); var topupItem = _context.TopupItems.FirstOrDefault(z => z.Id == topupItemId); if (topupItem == null) { return(Content("商品信息不存在,或非法进入!1002")); } //var openId = User.Identity.Name; var openId = HttpContext.Session.GetString("OpenId"); string sp_billno = DateTime.Now.Ticks.ToString(); var timeStamp = TenPayV3Util.GetTimestamp(); var nonceStr = TenPayV3Util.GetNoncestr(); var body = bodytext; var price = topupItem.Price;//单位:分 var xmlDataInfo = new TenPayV3UnifiedorderRequestData(WeiXinConfig.appId, WeiXinConfig.MchId, body, sp_billno, price, HttpContext.UserHostAddress()?.ToString(), WeiXinConfig.TenPayV3Notify, TenPayV3Type.JSAPI, openId, WeiXinConfig.Key, nonceStr); var result = TenPayV3.Unifiedorder(xmlDataInfo); //调用统一订单接口 RCLog.Info(this, "订单号:" + result.prepay_id); //JsSdkUiPackage jsPackage = new JsSdkUiPackage(WeiXinConfig.appId, timeStamp, nonceStr,); var package = string.Format("prepay_id={0}", result.prepay_id); RCLog.Info(this, $"sp_billno={sp_billno}"); RCLog.Info(this, $"price={price}"); //临时记录订单信息,留给退款申请接口测试使用 //HttpContext.Session.SetString("BillNo", sp_billno); //HttpContext.Session.SetString("BillFee", price.ToString()); AccountInfo accountinfo = new AccountInfo(); accountinfo.CreateTime = DateTime.Now; accountinfo.TradeNo = sp_billno; accountinfo.TradeName = package; _context.Add(accountinfo); _context.SaveChanges(); return(Json(new { appId = WeiXinConfig.appId, timeStamp = timeStamp, nonceStr = nonceStr, package = package, paySign = TenPayV3.GetJsPaySign(WeiXinConfig.appId, timeStamp, nonceStr, package, WeiXinConfig.Key) })); } catch (Exception ex) { var msg = ex.Message; msg += "<br>" + ex.StackTrace; msg += "<br>==Source==<br>" + ex.Source; if (ex.InnerException != null) { msg += "<br>===InnerException===<br>" + ex.InnerException.Message; } return(Content(msg)); } }