Beispiel #1
0
        /// <summary>
        /// 微信支付通知
        /// </summary>
        /// <returns></returns>
        public ActionResult PayNotify()
        {
            string successXml = "<xml><return_code><![CDATA[SUCCESS]]></return_code></xml>";
            string failXml    = "<xml><return_code><![CDATA[FAIL]]></return_code></xml>";

            try
            {
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(Request.InputStream);
                //全部参数
                SortedDictionary <string, string> parametersAll = new SortedDictionary <string, string>();
                foreach (XmlElement item in xmlDoc.DocumentElement.ChildNodes)
                {
                    string key   = item.Name;
                    string value = item.InnerText;
                    if ((!string.IsNullOrEmpty(key)) && (!string.IsNullOrEmpty(value)))
                    {
                        parametersAll.Add(key, value);
                    }
                }
                xmlDoc.Save(string.Format("E:\\WXPay\\{0}_Notify.xml", parametersAll["out_trade_no"]));//写入日志
                if (MicroMessenger.CommonUtil.VerifySign(parametersAll, BLLConfig.Get("wx_mchsecret")))
                {
                    string orderNo = parametersAll["out_trade_no"].ToString();
                    if (orderNo.StartsWith("T"))
                    {
                        if (BLLNewsOrder.WXPaySuccess(orderNo, parametersAll["transaction_id"]))
                        {
                            return(Content(successXml));
                        }
                    }
                    else if (BLLNews.WXPaySuccess(orderNo, parametersAll["transaction_id"]))
                    {
                        return(Content(successXml));
                    }
                }
            }
            catch (Exception ex)
            {
                using (System.IO.StreamWriter sw = new System.IO.StreamWriter(@"E:\WXPay\Error.txt", true, Encoding.GetEncoding("UTF-8")))
                {
                    sw.WriteLine(ex.ToString());
                }
            }
            return(Content(failXml));
        }
Beispiel #2
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (!filterContext.HttpContext.Request.IsAuthenticated)
            {
                ht_user user = BLLUser.GetUserById(1);
                BLLAuthentication.LoginAuthenticationTicket(user);
                return;

                string currentUrl  = filterContext.HttpContext.Request.Url.PathAndQuery.ToString();                                                                //当前地址和条件
                string callBackUrl = filterContext.HttpContext.Request.Url.Scheme + "://" + filterContext.HttpContext.Request.Url.Authority + "/WX/OAuthCallback"; //当前绝对地址
                var    oauthUrl    = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope={2}&state={3}#wechat_redirect",
                                                   BLLConfig.Get("wx_appid"),
                                                   callBackUrl,
                                                   "snsapi_userinfo",
                                                   HttpUtility.UrlEncode(currentUrl)
                                                   );
                //访问授权链接
                filterContext.HttpContext.Response.Redirect(oauthUrl);
            }
        }
        /// <summary>
        /// 获取验证码
        /// </summary>
        /// <returns></returns>
        public ActionResult GetCode(string mobile)
        {
            if (!MyRegex.IsPhone(mobile))
            {
                return(JsonResult(APIErrCode.PhoneFormatError, "手机格式错误"));
            }
            AuthenticationUser authenticationUser = BLLAuthentication.GetAuthenticationUser();
            string             code = HT.Utility.Utils.Number(6);

            return(JsonResult(APIErrCode.Success, "获取验证码成功", code));

            string sms_expire = BLLConfig.Get("sms_expire");
            int    expire     = Convert.ToInt32(sms_expire);
            string msg        = "";

            if (BLLSendSms.SendMsg(mobile, code, "mobile", expire, out msg))
            {
                new XCache().Add("Code" + authenticationUser.openid, code, expire);//写入缓存
                return(JsonResult(APIErrCode.Success, "获取验证码成功", code));
            }
            return(JsonResult(APIErrCode.OperateFail, msg));
        }