/// <summary> /// 绑定手机号 /// </summary> /// <param name="openid"></param> /// <param name="mobile"></param> /// <param name="code"></param> /// <returns></returns> public JsonResult BindMobile(string openid, string mobile, string code, string nickname, string city) { bool result = false, needCheck = (ConfigurationManager.AppSettings["RNameNeedCheck"] == "1")?true:false; string msg = string.Empty; var bus = new Bus(this.DataSource); var user = bus.GetEntrustinfo(openid, WxPayConfig.APPID(city), WxPayConfig.getMCHID(city)); var wxuser = bus.GetUserInfo(openid, WxPayConfig.APPID(city)); var isSign = bus.isSign(openid, WxPayConfig.APPID(city), city); exterData exdata = null; var dc = new Tb_Wx_Mobilecode(this.DataSource); var obilecode = dc.FindFirst <Tb_Wx_Mobilecode>(string.Format("lower(FLD_Code)='{0}' and fld_mobile='{1}' and USED=0 order by id desc", code.ToLower(), mobile)); if (obilecode != null) { obilecode.Used = 1; obilecode.DataDriver = this.DataSource; obilecode.Store(); if (obilecode.FldExpiredTime.CompareTo(DateTime.Now) < 0) { result = false; msg = "验证码过期!"; } else { exdata = bus.Sign(openid, nickname, Request.UserHostAddress, city); user.DataDriver = this.DataSource; user.FldMobile = mobile; user.Store(); wxuser.DataDriver = this.DataSource; wxuser.Mobile = mobile; wxuser.Store(); result = true; } } else { msg = "无效验证码!"; } if (!string.IsNullOrEmpty(wxuser.Mobile) && needCheck == false) { needCheck = (wxuser.Mobile.iEqualsArr(ConfigurationManager.AppSettings["RNameCheckPhones"])) ? true : false; } return(Json(new { result = result, msg = msg, exdata = exdata, isSign = isSign, needCheck = needCheck, RNameChecked = wxuser.RNameChecked }, JsonRequestBehavior.AllowGet)); }
public JsonResult EncryptedBindPhone(string code, string iv, string data, string nickname, string city) { var bus = new Bus(this.DataSource); var pay = new JsApiPay(this.Request); pay.GetOpenidAndSession(code, city); Phone phone = new Phone(); bool state = false; exterData exdata = null; var wxuser = bus.GetUserInfo(pay.openid, WxPayConfig.APPID(city)); var isSign = bus.isSign(pay.openid, WxPayConfig.APPID(city), city); if (!string.IsNullOrEmpty(pay.session_key)) { string result = bus.AESDecrypt(iv, pay.session_key, data); phone = Bus.JsonDeserialize <Phone>(result); state = true; wxuser.Mobile = phone.phoneNumber; wxuser.DataDriver = this.DataSource; wxuser.Store(); exdata = bus.Sign(pay.openid, nickname, Request.UserHostAddress, city); } return(Json(new { exdata = exdata, isSign = isSign, state = state, phone = phone }, JsonRequestBehavior.AllowGet)); }
public exterData Sign(string openid, string nickname, string UserHostAddress, string city) { city = (city == null) ? "" : city; var Entrustinfo = this.GetEntrustinfo(openid, WxPayConfig.APPID(city), WxPayConfig.getMCHID(city)); var wxuser = this.GetUserInfo(openid, WxPayConfig.APPID(city)); var wxpay = new WxPayApi(); var exdata = new exterData(); exdata.appid = WxPayConfig.APPID(city); exdata.mch_id = WxPayConfig.getMCHID(city); exdata.contract_code = WxPayConfig.getCityCode(city) + Convert.ToString(long.Parse("10000") + Entrustinfo.Id) + DateTime.Now.ToString("ssfff"); exdata.request_serial = Entrustinfo.Id.ToString(); string display_account = string.Empty; if (!string.IsNullOrEmpty(wxuser.Mobile) && wxuser.Mobile.Length == 11) { display_account = wxuser.Mobile.Substring(0, 3) + "****" + wxuser.Mobile.Substring(7, 4); } else { display_account = nickname; } exdata.contract_display_account = display_account; switch (city) { case "福州市": exdata.notify_url = "https://www.cmeeol.com/wechat/FZReceiveSign"; break; case "杭州市": exdata.notify_url = "https://wx.hzgolong.com/wechat/HZReceiveSign"; break; case "杭州市2": exdata.notify_url = "https://wx.hzgolong.com/wechat/wccReceiveSign"; break; default: exdata.notify_url = "https://wx.hzgolong.com/wechat/ReceiveSign"; break; } //exdata.notify_url = HttpUtility.UrlEncode(exdata.notify_url); exdata.plan_id = WxPayConfig.getPlanID(city); exdata.openid = openid; exdata.timestamp = WxPayApi.GenerateTimeStamp(); exdata.clientip = UserHostAddress; exdata.deviceid = ""; exdata.mobile = ""; exdata.email = ""; exdata.qq = ""; exdata.creid = ""; exdata.outerid = ""; WxPayData inputObj = new WxPayData(city); inputObj.SetValue("appid", WxPayConfig.APPID(city)); inputObj.SetValue("contract_code", exdata.contract_code); inputObj.SetValue("contract_display_account", exdata.contract_display_account); inputObj.SetValue("mch_id", exdata.mch_id); inputObj.SetValue("notify_url", exdata.notify_url); inputObj.SetValue("plan_id", exdata.plan_id); inputObj.SetValue("request_serial", exdata.request_serial); inputObj.SetValue("timestamp", exdata.timestamp); inputObj.SetValue("clientip", exdata.clientip); inputObj.SetValue("deviceid", ""); inputObj.SetValue("mobile", ""); inputObj.SetValue("email", ""); inputObj.SetValue("qq", ""); inputObj.SetValue("openid", openid); inputObj.SetValue("creid", ""); inputObj.SetValue("outerid", ""); if (wxuser.Mobile == "13588861726") { Log.Write("luo sign inputObj json:", inputObj.ToJson()); } exdata.sign = inputObj.MakeSign(); return(exdata); }