Esempio n. 1
0
        public async Task <ActionResult> Wx_Authorization(string code, string state)
        {
            //return Content(code);
            //string appId = WeChatUtilities.getConfigValue(WeChatUtilities.APP_ID);
            if (state == "0")
            {
                // 微信普通登陆
                WeChatUtilities wechat = new WeChatUtilities();
                var             jat    = wechat.getWebOauthAccessToken(code);
                var             user   = UserManager.FindByEmail(jat.openid);
                if (user != null)
                {
                    //var user = UserManager.FindByName("13636314852");
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    return(RedirectToAction("Index", "PeriodAid"));
                }
                //return Content(jat.openid + "," + jat.access_token);
                return(RedirectToAction("Wx_Register", new { open_id = jat.openid, accessToken = jat.access_token }));
            }
            else if (state == "1")
            {
                // 微信信息更新
                WeChatUtilities wechat = new WeChatUtilities();
                var             jat    = wechat.getWebOauthAccessToken(code);
                var             user   = UserManager.FindById(User.Identity.GetUserId());
                user.AccessToken = jat.access_token;
                UserManager.Update(user);
                return(RedirectToAction("Wx_UpdateUserInfo"));
            }
            else
            {
                return(Content("1"));
            }
        }
 public WeChatConsumerHandler(IConfiguration configuration, WeChatUtilities weChatUtilities, MQPublishServerUrls mqPublishServerUrls, IMapper mapper)
 {
     _configuration       = configuration;
     _weChatUtilities     = weChatUtilities;
     _mqPublishServerUrls = mqPublishServerUrls;
     _mapper = mapper;
 }
Esempio n. 3
0
 /// <summary>
 /// 创建JSAPI支付
 /// </summary>
 /// <param name="prepay_id"></param>
 /// <returns></returns>
 /// { result="SUCCESS", appid="", timeStamp="", nonceStr="", package="", paySign="" }
 public JsonResult createPay(string prepay_id)
 {
     try
     {
         List <QueryParameter> JSPayParameters = new List <QueryParameter>();
         string _appid = WeChatUtilities.getConfigValue(WeChatUtilities.APP_ID);
         JSPayParameters.Add(new QueryParameter("appId", _appid));
         string _timeStamp = CommonUtilities.generateTimeStamp().ToString();
         JSPayParameters.Add(new QueryParameter("timeStamp", _timeStamp));
         string _jspayNonce = CommonUtilities.generateNonce();
         JSPayParameters.Add(new QueryParameter("nonceStr", CommonUtilities.generateNonce()));
         string _package = "prepay_id=" + prepay_id;
         JSPayParameters.Add(new QueryParameter("package", _package));
         JSPayParameters.Add(new QueryParameter("signType", "MD5"));
         string        JSPayQuery = QueryParameter.NormalizeRequestParameters(JSPayParameters);
         StringBuilder jSenValue  = new StringBuilder();
         jSenValue.Append(JSPayQuery);
         jSenValue.Append(string.Format("&key={0}", WeChatUtilities.getConfigValue(WeChatUtilities.PAYAPI_KEY)));
         string jssign = CommonUtilities.encrypt_MD5(jSenValue.ToString()).ToUpper();
         return(Json(new { result = "SUCCESS", appid = _appid, timeStamp = _timeStamp, nonceStr = _jspayNonce, package = _package, paySign = jssign }, JsonRequestBehavior.AllowGet));
     }
     catch
     {
         return(Json(new { result = "FAIL" }, JsonRequestBehavior.AllowGet));
     }
 }
Esempio n. 4
0
        public ActionResult SaleOff()
        {
            var             setting_item = periodDB.PeriodUserInfo.SingleOrDefault(m => m.UserName == User.Identity.Name);
            WeChatUtilities utilities    = new WeChatUtilities();
            string          _url         = ViewBag.Url = Request.Url.ToString();

            ViewBag.AppId = utilities.getAppId();
            string _nonce = CommonUtilities.generateNonce();

            ViewBag.Nonce = _nonce;
            string _timeStamp = CommonUtilities.generateTimeStamp().ToString();

            ViewBag.TimeStamp = _timeStamp;
            ViewBag.Signature = utilities.generateWxJsApiSignature(_nonce, utilities.getJsApiTicket(), _timeStamp, _url);
            if (setting_item != null)
            {
                DateTime today        = DateTime.Now.Date;
                var      SignInRecord = periodDB.CreditsRecord.SingleOrDefault(m => m.RecordDate > today && m.CreditsType_Id == 1 && m.UserName == User.Identity.Name);
                if (SignInRecord == null)
                {
                    ViewBag.enableSignIn = true;
                }
                else
                {
                    ViewBag.enableSignIn = false;
                }
                var current_user = UserManager.FindByName(User.Identity.Name);
                return(View(current_user));
            }
            else
            {
                return(RedirectToAction("Setting"));
            }
        }
        // 微信登陆
        public ActionResult Wx_RedirectExamBody(int testtype)
        {
            string redirectUri = Url.Encode("http://webapp.shouquanzhai.cn/Examination/Wx_Authorization");
            string appId       = WeChatUtilities.getConfigValue(WeChatUtilities.APP_ID);
            string url         = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appId + "&redirect_uri=" + redirectUri + "&response_type=code&scope=snsapi_userinfo&state=" + testtype + "#wechat_redirect";

            return(Redirect(url));
        }
        public ActionResult Wx_Authorization(string code, string state)
        {
            WeChatUtilities wechat   = new WeChatUtilities();
            var             jat      = wechat.getWebOauthAccessToken(code);
            var             userinfo = wechat.getWebOauthUserInfo(jat.access_token, jat.openid);

            return(RedirectToAction("ExamBody", new { open_id = userinfo.openid, nickname = userinfo.nickname, testtype = state }));
        }
Esempio n. 7
0
        public ActionResult Wx_RedirectUpdateUser()
        {
            string redirectUri = Url.Encode("https://event.shouquanzhai.cn/WxAccount/Wx_Authorization");
            string appId       = WeChatUtilities.getConfigValue(WeChatUtilities.APP_ID);
            string url         = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appId + "&redirect_uri=" + redirectUri + "&response_type=code&scope=snsapi_userinfo&state=" + "1" + "#wechat_redirect";

            return(Redirect(url));
        }
Esempio n. 8
0
        public ActionResult Wechat_Redirect(string url, string state)
        {
            string redirectUri  = Url.Encode(url);
            string appId        = WeChatUtilities.getConfigValue(WeChatUtilities.APP_ID);
            string redirect_url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appId + "&redirect_uri=" + redirectUri + "&response_type=code&scope=snsapi_base&state=" + state + "#wechat_redirect";

            return(Redirect(redirect_url));
        }
Esempio n. 9
0
        /// <summary>
        /// 提交刷卡支付
        /// </summary>
        /// <param name="code">条码号</param>
        /// <param name="body">支付信息</param>
        /// <param name="amount">支付金额(分)</param>
        /// <returns></returns>
        public JsonResult createMicroPay(string code, string body, int amount)
        {
            //随机数字,并且生成Prepay
            string appid  = WeChatUtilities.getConfigValue(WeChatUtilities.APP_ID);
            string mch_id = WeChatUtilities.getConfigValue(WeChatUtilities.MCH_ID);
            //先确认,之后做随机数
            string nonce_str        = CommonUtilities.generateNonce();
            string out_trade_no     = "WX" + CommonUtilities.generateTimeStamp();
            Random r                = new Random();
            int    total_fee        = amount;
            string spbill_create_ip = Request.ServerVariables.Get("Remote_Addr").ToString();
            //string notify_url = "https://api.mch.weixin.qq.com/pay/micropay";
            //string trade_type = "JSAPI";
            //string openid = _openId;
            List <QueryParameter> parameters = new List <QueryParameter>();

            parameters.Add(new QueryParameter("appid", appid));
            parameters.Add(new QueryParameter("mch_id", mch_id));
            parameters.Add(new QueryParameter("nonce_str", nonce_str));
            parameters.Add(new QueryParameter("body", body));
            parameters.Add(new QueryParameter("out_trade_no", out_trade_no));
            parameters.Add(new QueryParameter("total_fee", total_fee.ToString()));
            parameters.Add(new QueryParameter("spbill_create_ip", spbill_create_ip));
            parameters.Add(new QueryParameter("auth_code", code));
            string        query   = QueryParameter.NormalizeRequestParameters(parameters);
            StringBuilder enValue = new StringBuilder();

            enValue.Append(query);
            enValue.Append("&key=" + WeChatUtilities.getConfigValue(WeChatUtilities.PAYAPI_KEY));
            string sign     = CommonUtilities.encrypt_MD5(enValue.ToString()).ToUpper();
            string content  = parseXml(parameters, sign);
            string post_url = "https://api.mch.weixin.qq.com/pay/micropay";
            var    request  = WebRequest.Create(post_url) as HttpWebRequest;

            try
            {
                request.Method = "post";
                StreamWriter streamWriter = new StreamWriter(request.GetRequestStream());
                streamWriter.Write(content);
                streamWriter.Flush();
                streamWriter.Close();
                var          response = (HttpWebResponse)request.GetResponse();
                StreamReader reader   = new StreamReader(response.GetResponseStream());
                string       result   = reader.ReadToEnd();
                XmlDocument  doc      = new XmlDocument();
                doc.LoadXml(result);
                string return_code = doc.GetElementsByTagName("return_code")[0].InnerText;
                string result_code = doc.GetElementsByTagName("result_code")[0].InnerText;
                string openid      = doc.GetElementsByTagName("openid")[0].InnerText;
                //return Json(new { result = "SUCCESS", prepay_id = prepay_id, total_fee = total_fee }, JsonRequestBehavior.AllowGet);
                return(Json(new { result = "SUCCESS" }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception)
            {
                return(Json(new { result = "FAIL" }, JsonRequestBehavior.AllowGet));
            }
        }
Esempio n. 10
0
        public ActionResult Gambling_Pay(string code, string state)
        {
            WeChatUtilities        utilites = new WeChatUtilities();
            Wx_WebOauthAccessToken webToken = utilites.getWebOauthAccessToken(code);

            ViewBag.openId = webToken.openid;

            return(View());
        }
Esempio n. 11
0
        /// <summary>
        /// 创建微信统一下单
        /// </summary>
        /// <param name="openid"></param>
        /// <param name="body"></param>
        /// <param name="out_trade_no"></param>
        /// <param name="total_fee"></param>
        /// <param name="trade_type"></param>
        public Wx_OrderResult createUnifiedOrder(string openid, string body, string out_trade_no, int total_fee, string trade_type, string device_no)
        {
            string appid  = WeChatUtilities.getConfigValue(WeChatUtilities.APP_ID);
            string mch_id = WeChatUtilities.getConfigValue(WeChatUtilities.MCH_ID);
            //先确认,之后做随机数
            string nonce_str = CommonUtilities.generateNonce();
            //string out_trade_no = "WX" + CommonUtilities.generateTimeStamp();
            string spbill_create_ip          = WeChatUtilities.getConfigValue(WeChatUtilities.IP);
            string notify_url                = "http://webapp.shouquanzhai.cn/Pay/wx_pay_nofity";
            List <QueryParameter> parameters = new List <QueryParameter>();

            parameters.Add(new QueryParameter("appid", appid));
            parameters.Add(new QueryParameter("mch_id", mch_id));
            parameters.Add(new QueryParameter("nonce_str", nonce_str));
            parameters.Add(new QueryParameter("body", body));
            parameters.Add(new QueryParameter("out_trade_no", out_trade_no));
            parameters.Add(new QueryParameter("total_fee", total_fee.ToString()));
            parameters.Add(new QueryParameter("spbill_create_ip", spbill_create_ip));
            parameters.Add(new QueryParameter("notify_url", notify_url));
            parameters.Add(new QueryParameter("trade_type", trade_type));
            parameters.Add(new QueryParameter("openid", openid));
            if (device_no != "")
            {
                parameters.Add(new QueryParameter("device_info", device_no));
            }
            string sign        = WeChatUtilities.createPaySign(parameters);
            string xml_content = parseXml(parameters, sign);
            string post_url    = "https://api.mch.weixin.qq.com/pay/unifiedorder";
            var    request     = WebRequest.Create(post_url) as HttpWebRequest;

            try
            {
                request.Method = "post";
                StreamWriter streamWriter = new StreamWriter(request.GetRequestStream());
                streamWriter.Write(xml_content);
                streamWriter.Flush();
                streamWriter.Close();
                var          response = (HttpWebResponse)request.GetResponse();
                StreamReader reader   = new StreamReader(response.GetResponseStream());
                string       result   = reader.ReadToEnd();
                XmlDocument  doc      = new XmlDocument();
                doc.LoadXml(result);
                string fromUser   = doc.GetElementsByTagName("return_code")[0].InnerText;
                string returnText = doc.GetElementsByTagName("return_msg")[0].InnerText;
                string prepay_id  = doc.GetElementsByTagName("prepay_id")[0].InnerText;
                return(new Wx_OrderResult("SUCCESS", prepay_id, "OK"));
            }
            catch (Exception e)
            {
                return(new Wx_OrderResult("FAIL", "", e.ToString()));
            }
        }
Esempio n. 12
0
        public ActionResult CustomMicroPay()
        {
            WeChatUtilities utilities = new WeChatUtilities();
            string          _url      = ViewBag.Url = Request.Url.ToString();

            ViewBag.AppId = utilities.getAppId();
            string _nonce = CommonUtilities.generateNonce();

            ViewBag.Nonce = _nonce;
            string _timeStamp = CommonUtilities.generateTimeStamp().ToString();

            ViewBag.TimeStamp = _timeStamp;
            ViewBag.Signature = utilities.generateWxJsApiSignature(_nonce, utilities.getJsApiTicket(), _timeStamp, _url);
            return(View());
        }
Esempio n. 13
0
        public JsonResult setRandomMoney(string _openId, string body)
        {
            //随机数字,并且生成Prepay
            string appid  = WeChatUtilities.getConfigValue(WeChatUtilities.APP_ID);
            string mch_id = WeChatUtilities.getConfigValue(WeChatUtilities.MCH_ID);
            //先确认,之后做随机数
            string nonce_str    = CommonUtilities.generateNonce();
            string out_trade_no = "WXJSAPI_" + DateTime.Now.Ticks;
            Random r            = new Random();
            int    total_fee    = 1580;
            int    baseRandom   = r.Next(0, 99);

            if (baseRandom < 3)
            {
                total_fee = r.Next(40, 158) * 10;
            }
            else
            {
                total_fee = r.Next(108, 158) * 10;
            }
            try
            {
                Wx_OrderResult result = createUnifiedOrder(_openId, body, out_trade_no, total_fee, WeChatUtilities.TRADE_TYPE_JSAPI, "");
                if (result.Result == "SUCCESS")
                {
                    WxPayOrder order = new WxPayOrder()
                    {
                        Body         = body,
                        Time_Start   = DateTime.Now,
                        Mch_Id       = mch_id,
                        Open_Id      = _openId,
                        Trade_No     = out_trade_no,
                        Total_Fee    = total_fee,
                        Prepay_Id    = result.PrepayId,
                        Trade_Status = WeChatUtilities.TRADE_STATUS_CREATE,
                        Trade_Type   = WeChatUtilities.TRADE_TYPE_JSAPI
                    };
                    offlineDB.WxPayOrder.Add(order);
                    offlineDB.SaveChanges();
                    return(Json(new { result = "SUCCESS", prepay_id = result.PrepayId, total_fee }, JsonRequestBehavior.AllowGet));
                }
                return(Json(new { result = "FAIL", msg = result.Message }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                return(Json(new { result = "FAIL", msg = e.ToString() }, JsonRequestBehavior.AllowGet));
            }
        }
Esempio n. 14
0
        public async Task <ActionResult> Wx_UpdateUserInfo()
        {
            var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            //string url = "https://api.weixin.qq.com/sns/userinfo?access_token=" + user.AccessToken + "&openid=" + user.OpenId + "&lang=zh_CN";
            WeChatUtilities wechat   = new WeChatUtilities();
            var             userinfo = wechat.getWebOauthUserInfo(user.AccessToken, user.OpenId);

            user.NickName = userinfo.nickname;
            user.ImgUrl   = userinfo.headimgurl;
            user.Sex      = userinfo.sex == "1"? true :false;
            user.Province = userinfo.province;
            user.City     = userinfo.city;
            UserManager.Update(user);
            return(RedirectToAction("UserHome", "PeriodAid"));
        }
Esempio n. 15
0
 public ActionResult Authorization(string code, string state)
 {
     //return Content(code);
     //string appId = WeChatUtilities.getConfigValue(WeChatUtilities.APP_ID);
     try
     {
         WeChatUtilities wechat = new WeChatUtilities();
         var             jat    = wechat.getWebOauthAccessToken(code);
         return(Redirect("http://www.shouquanzhai.cn/Pay/Authorization?code=" + jat.openid + "&state=" + state));
     }
     catch (Exception ex)
     {
         CommonUtilities.writeLog(ex.Message);
         return(View("Error"));
     }
 }
Esempio n. 16
0
        public ActionResult Gambling_Pay(string code, string state)
        {
            WeChatUtilities        utilites = new WeChatUtilities();
            Wx_WebOauthAccessToken webToken = utilites.getWebOauthAccessToken(code);

            ViewBag.openId = webToken.openid;
            WxPayStatistic s = new WxPayStatistic()
            {
                EventName       = "大学城手机摇一摇",
                ApplicationDate = DateTime.Now,
                Details         = state
            };

            offlineDB.WxPayStatistic.Add(s);
            offlineDB.SaveChanges();
            return(View());
        }
Esempio n. 17
0
        public ActionResult LoginManager(int?systemid)
        {
            string user_Agent = HttpContext.Request.UserAgent;
            int    _state     = systemid ?? 1;

            if (user_Agent.Contains("MicroMessenger"))
            {
                //return Content("微信");
                string redirectUri = Url.Encode("http://webapp.shouquanzhai.cn/SellerTask/Authorization");
                string appId       = WeChatUtilities.getConfigValue(WeChatUtilities.APP_ID);
                string url         = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appId + "&redirect_uri=" + redirectUri + "&response_type=code&scope=snsapi_base&state=" + _state + "#wechat_redirect";
                return(Redirect(url));
            }
            else
            {
                return(Content("其他"));
            }
        }
Esempio n. 18
0
        /// <summary>
        /// 生成扫码链接
        /// </summary>
        /// <param name="product_id"></param>
        /// <returns></returns>
        public ContentResult create_native_pay_url(string product_id)
        {
            string appid      = WeChatUtilities.getConfigValue(WeChatUtilities.APP_ID);
            string mch_id     = WeChatUtilities.getConfigValue(WeChatUtilities.MCH_ID);
            string nonce      = CommonUtilities.generateNonce();
            string time_stamp = Convert.ToString(CommonUtilities.generateTimeStamp());
            List <QueryParameter> parameters = new List <QueryParameter>();

            parameters.Add(new QueryParameter("appid", appid));
            parameters.Add(new QueryParameter("mch_id", mch_id));
            parameters.Add(new QueryParameter("time_stamp", time_stamp));
            parameters.Add(new QueryParameter("nonce_str", nonce));
            parameters.Add(new QueryParameter("product_id", product_id));
            string sign = WeChatUtilities.createPaySign(parameters);
            string url  = "weixin://wxpay/bizpayurl?" + QueryParameter.NormalizeRequestParameters(parameters) + "&sign=" + sign;

            return(Content(url));
        }
Esempio n. 19
0
        public ActionResult UserAuthorize(string code, string state)
        {
            WeChatUtilities wechat = new WeChatUtilities();
            var             jat    = wechat.getWebOauthAccessToken(code);
            var             user   = UserManager.FindById(User.Identity.GetUserId());

            user.AccessToken = jat.access_token;
            UserManager.Update(user);
            //WeChatUtilities wechat = new WeChatUtilities();
            var userinfo = wechat.getWebOauthUserInfo(user.AccessToken, user.OpenId);

            user.NickName = userinfo.nickname;
            user.ImgUrl   = userinfo.headimgurl;
            user.Sex      = userinfo.sex == "1" ? true : false;
            user.Province = userinfo.province;
            user.City     = userinfo.city;
            UserManager.Update(user);
            return(RedirectToAction("Home"));
        }
Esempio n. 20
0
        public ActionResult UpdateUserInfo(string url, string state)
        {
            string user_Agent = HttpContext.Request.UserAgent;

            if (state == "")
            {
                state = "undefined";
            }
            if (user_Agent.Contains("MicroMessenger"))
            {
                string redirectUri  = Url.Encode(url);
                string appId        = WeChatUtilities.getConfigValue(WeChatUtilities.APP_ID);
                string redirect_url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appId + "&redirect_uri=" + redirectUri + "&response_type=code&scope=snsapi_userinfo&state=" + state + "#wechat_redirect";
                return(Redirect(redirect_url));
            }
            else
            {
                return(Content("FAIL"));
            }
        }
Esempio n. 21
0
        public ActionResult PressConferenceAuthorize(string code, string state)
        {
            WeChatUtilities wechat    = new WeChatUtilities();
            var             jat       = wechat.getWebOauthAccessToken(code);
            var             userinfo  = wechat.getWebOauthUserInfo(jat.access_token, jat.openid);
            var             existuser = payDB.WxPressConferenceUser.SingleOrDefault(m => m.Open_Id == userinfo.openid);

            if (existuser == null)
            {
                string nickname   = userinfo.nickname;
                string headimgurl = userinfo.headimgurl;
                bool   sex        = userinfo.sex == "1" ? true : false;
                //return RedirectToAction("PressConferenceHome", new { openid = jat.openid });
                return(RedirectToAction("PressConferenceRegister", new { nickname = nickname, headimgurl = headimgurl, sex = sex, openid = userinfo.openid, accesstoken = jat.access_token }));
            }
            else
            {
                return(RedirectToAction("PressConferenceHome", new { openid = jat.openid }));
            }
        }
Esempio n. 22
0
        public async Task <ActionResult> Authorization(string code, string state)
        {
            //return Content(code);
            //string appId = WeChatUtilities.getConfigValue(WeChatUtilities.APP_ID);
            try
            {
                WeChatUtilities wechat   = new WeChatUtilities();
                var             jat      = wechat.getWebOauthAccessToken(code);
                var             user     = UserManager.FindByEmail(jat.openid);
                int             systemid = Convert.ToInt32(state);
                if (user != null)
                {
                    //var user = UserManager.FindByName("13636314852");
                    if (user.OffSalesSystem != null)
                    {
                        string[] systemArray = user.OffSalesSystem.Split(',');
                        if (systemArray.Contains(state))
                        {
                            user.DefaultSystemId = systemid;
                            UserManager.Update(user);
                            await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                            return(RedirectToAction("Redirect", new { systemid = systemid }));
                        }
                    }
                    else
                    {
                        await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                        return(RedirectToAction("Redirect", new { systemid = systemid }));
                    }
                }
                //return Content(jat.openid + "," + jat.access_token);
                return(RedirectToAction("Register", "SellerTask", new { open_id = jat.openid, accessToken = jat.access_token, systemid = systemid }));
            }
            catch (Exception ex)
            {
                CommonUtilities.writeLog(ex.Message);
                return(View("Error"));
            }
        }
Esempio n. 23
0
        public ActionResult Wx_Login(string redirectUrl, int?state)
        {
            string user_Agent = HttpContext.Request.UserAgent;
            int    _state     = state ?? 0;

            if (user_Agent.Contains("MicroMessenger"))
            {
                //return Content("微信");
                if (redirectUrl.Trim() == "")
                {
                    redirectUrl = "http://webapp.shouquanzhai.cn/WxAccount/Wx_Authorization";
                }
                string redirectUri = Url.Encode(redirectUrl);
                string appId       = WeChatUtilities.getConfigValue(WeChatUtilities.APP_ID);
                string url         = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appId + "&redirect_uri=" + redirectUri + "&response_type=code&scope=snsapi_base&state=" + _state + "#wechat_redirect";

                return(Redirect(url));
            }
            else
            {
                return(Content("其他"));
            }
        }
Esempio n. 24
0
        public JsonResult SetFixMoney(string _openId, string body, int amount)
        {
            //随机数字,并且生成Prepay
            string appid  = WeChatUtilities.getConfigValue(WeChatUtilities.APP_ID);
            string mch_id = WeChatUtilities.getConfigValue(WeChatUtilities.MCH_ID);
            //先确认,之后做随机数
            string nonce_str    = CommonUtilities.generateNonce();
            string out_trade_no = "WXJSAPI_" + DateTime.Now.Ticks;

            try
            {
                Wx_OrderResult result = createUnifiedOrder(_openId, body, out_trade_no, amount, WeChatUtilities.TRADE_TYPE_JSAPI, "");
                if (result.Result == "SUCCESS")
                {
                    WxPaymentOrder order = new WxPaymentOrder()
                    {
                        Body         = body,
                        Time_Start   = DateTime.Now,
                        Mch_Id       = mch_id,
                        Open_Id      = _openId,
                        Trade_No     = out_trade_no,
                        Total_Fee    = amount,
                        Prepay_Id    = result.PrepayId,
                        Trade_Status = WeChatUtilities.TRADE_STATUS_CREATE,
                        Trade_Type   = WeChatUtilities.TRADE_TYPE_JSAPI
                    };
                    payDB.WxPaymentOrder.Add(order);
                    payDB.SaveChanges();
                    return(Json(new { result = "SUCCESS", prepay_id = result.PrepayId, amount }, JsonRequestBehavior.AllowGet));
                }
                return(Json(new { result = "FAIL", msg = result.Message }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                return(Json(new { result = "FAIL", msg = e.ToString() }, JsonRequestBehavior.AllowGet));
            }
        }
Esempio n. 25
0
 public ActionResult StartPayAmount(string code, string state)
 {
     try
     {
         WeChatUtilities        utilites = new WeChatUtilities();
         Wx_WebOauthAccessToken webToken = utilites.getWebOauthAccessToken(code);
         int amount = 1980;
         ViewBag.openId = webToken.openid;
         if (state == "AC69IPVD")
         {
             amount = 100;
         }
         else if (state == "BGAER9CB")
         {
             amount = 300;
         }
         ViewBag.amount = amount;
         return(View());
     }
     catch
     {
         return(View("Error"));
     }
 }
Esempio n. 26
0
 public WeChatMessageDelivery(IConfiguration configuration, WeChatUtilities weChatUtilities, MQPublishServerUrls mqPublishServerUrls) : base(configuration, mqPublishServerUrls) => _weChatUtilities = weChatUtilities;
Esempio n. 27
0
        public ContentResult wx_native_notify()
        {
            StreamReader reader = new StreamReader(Request.InputStream, Encoding.UTF8);
            XmlDocument  doc    = new XmlDocument();

            doc.Load(reader);
            string appid        = doc.GetElementsByTagName("appid")[0].InnerText;
            string openid       = doc.GetElementsByTagName("openid")[0].InnerText;
            string mch_id       = doc.GetElementsByTagName("mch_id")[0].InnerText;
            string is_subscribe = doc.GetElementsByTagName("is_subscribe")[0].InnerText;
            string nonce_str    = doc.GetElementsByTagName("nonce_str")[0].InnerText;
            string product_id   = doc.GetElementsByTagName("product_id")[0].InnerText;
            string request_sign = doc.GetElementsByTagName("sign")[0].InnerText;
            string trade_no     = "WXNATIVE_" + DateTime.Now.Ticks;
            int    total_fee    = 10;
            string _body        = "未知商品";
            string _detail      = "未知商品";

            try
            {
                int          _product_id = Convert.ToInt32(product_id);
                WxPayProduct product     = offlineDB.WxPayProduct.SingleOrDefault(m => m.Id == _product_id);
                if (product != null)
                {
                    _body     = product.ProductName;
                    _detail   = product.ProductDetails;
                    total_fee = Convert.ToInt32(product.Total_Fee * 100);
                }
            }
            catch (Exception e)
            {
                CommonUtilities.writeLog(e.ToString());
                total_fee = 10;
                _body     = "未知商品";
                _detail   = "未知商品";
            }

            Wx_OrderResult result = createUnifiedOrder(openid, _body, trade_no, total_fee, WeChatUtilities.TRADE_TYPE_NATIVE, "");

            if (result.Result == "SUCCESS")
            {
                WxPayOrder order = new WxPayOrder()
                {
                    Body         = _body,
                    Time_Start   = DateTime.Now,
                    Mch_Id       = mch_id,
                    Open_Id      = openid,
                    Detail       = _detail,
                    Trade_No     = trade_no,
                    Product_Id   = product_id,
                    Prepay_Id    = result.PrepayId,
                    Total_Fee    = total_fee,
                    Trade_Status = WeChatUtilities.TRADE_STATUS_CREATE,
                    Trade_Type   = WeChatUtilities.TRADE_TYPE_NATIVE
                };
                offlineDB.WxPayOrder.Add(order);
                offlineDB.SaveChanges();
                List <QueryParameter> parameters = new List <QueryParameter>();
                parameters.Add(new QueryParameter("return_code", result.Result));
                parameters.Add(new QueryParameter("return_msg", result.Message));
                parameters.Add(new QueryParameter("appid", appid));
                parameters.Add(new QueryParameter("mch_id", mch_id));
                parameters.Add(new QueryParameter("nonce_str", CommonUtilities.generateNonce()));
                parameters.Add(new QueryParameter("prepay_id", result.PrepayId));
                parameters.Add(new QueryParameter("result_code", result.Result));
                parameters.Add(new QueryParameter("err_code_des", result.Message));
                string response_sign = WeChatUtilities.createPaySign(parameters);
                string xmlcontent    = parseXml(parameters, response_sign);
                return(Content(xmlcontent, "text/plain"));
            }
            else
            {
                List <QueryParameter> parameters = new List <QueryParameter>();
                parameters.Add(new QueryParameter("return_code", result.Result));
                parameters.Add(new QueryParameter("return_msg", result.Message));
                string response_sign = WeChatUtilities.createPaySign(parameters);
                string xmlcontent    = parseXml(parameters, response_sign);
                return(Content(xmlcontent, "text/plain"));
            }
        }