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; }
/// <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)); } }
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 })); }
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)); }
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)); }
/// <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)); } }
public ActionResult Gambling_Pay(string code, string state) { WeChatUtilities utilites = new WeChatUtilities(); Wx_WebOauthAccessToken webToken = utilites.getWebOauthAccessToken(code); ViewBag.openId = webToken.openid; return(View()); }
/// <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())); } }
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()); }
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)); } }
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")); }
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")); } }
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()); }
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("其他")); } }
/// <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)); }
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")); }
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")); } }
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 })); } }
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")); } }
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("其他")); } }
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)); } }
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")); } }
public WeChatMessageDelivery(IConfiguration configuration, WeChatUtilities weChatUtilities, MQPublishServerUrls mqPublishServerUrls) : base(configuration, mqPublishServerUrls) => _weChatUtilities = weChatUtilities;
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")); } }