public JsonResult GetWXAPPIDInfo(string url) { string nonceStr = WxPayApi.GenerateNonceStr(); //随机字符串,不长于32位 string timeStamp = WxPayApi.GenerateTimeStamp(); string accessToken = WeChatTools.GetAccessoken(true); string jsapi_ticket1 = WeChatTools.PostWebRequest("https://qyapi.weixin.qq.com/cgi-bin/ticket/get?access_token=" + accessToken + "&type=agent_config", "", Encoding.UTF8); string jsapi_ticket2 = WeChatTools.PostWebRequest("https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=" + accessToken, "", Encoding.UTF8); Dictionary <string, string> tickResult = jsapi_ticket1.JsonToModel <Dictionary <string, string> >(); Dictionary <string, string> tickResult2 = jsapi_ticket2.JsonToModel <Dictionary <string, string> >(); string param1 = "jsapi_ticket=" + tickResult["ticket"] + "&noncestr=" + nonceStr + "×tamp=" + timeStamp + "&url=" + url + ""; string param2 = "jsapi_ticket=" + tickResult2["ticket"] + "&noncestr=" + nonceStr + "×tamp=" + timeStamp + "&url=" + url + ""; string newjsapi_ticket1 = SHA1_Encrypt(param1); string newjsapi_ticket2 = SHA1_Encrypt(param2); //wx.agentConfig WxPayData wxPayData = new WxPayData(); WxPayData wxPayData2 = new WxPayData(); wxPayData.SetValue("appid", WxPayConfig.APPID); //appid wxPayData.SetValue("nonce_str", nonceStr); //随机字符串 wxPayData.SetValue("timestamp", timeStamp); //生成签名的时间戳 wxPayData.SetValue("sign", newjsapi_ticket1.ToLower()); //签名1 //wx.config wxPayData.SetValue("sign2", newjsapi_ticket2.ToLower()); //签名2 wxPayData.SetValue("url", url); return(Json(wxPayData.GetValues(), JsonRequestBehavior.AllowGet)); }
public ActionResult Index(string code) { string accessToken = WeChatTools.GetAccessoken(); U_WeChatUserID userInfo = new U_WeChatUserID(); string userInfoStr = WeChatTools.GetUserInfoByCode(accessToken, code); userInfo = Common.JsonHelper.JsonToModel <U_WeChatUserID>(userInfoStr);//用户ID //userInfo.UserId = "13671595340";//合伙人 //userInfo.UserId = "18936495119";//司机 Business_Personnel_Information personInfoModel = GetUserInfo(userInfo.UserId);//获取人员表信息 var key = PubGet.GetUserKey + personInfoModel.Vguid; var csche = CacheManager <Business_Personnel_Information> .GetInstance().Get(key); if (csche != null) { CacheManager <Business_Personnel_Information> .GetInstance().Remove(key); } CacheManager <Business_Personnel_Information> .GetInstance().Add(key, personInfoModel, 8 * 60 * 60 * 1000); ViewBag.UserVGUID = personInfoModel.Vguid; ViewBag.UserID = userInfo.UserId; ViewBag.PhoneNumber = personInfoModel.PhoneNumber; ViewBag.Key = "lZagKrU56xPBvyNRZjym7jrdJPwOT1Z0W+HpZaTrvUobpwSQEAue7j0iWs/b0cu2"; return(View()); }
public ActionResult Salary(string code) { #region 获取人员表信息 string accessToken = WeChatTools.GetAccessoken(); string userInfoStr = WeChatTools.GetUserInfoByCode(accessToken, code); var userInfo = Common.JsonHelper.JsonToModel <U_WeChatUserID>(userInfoStr); //用户ID var personInfoModel = _wl.GetUserInfo(userInfo.UserId); //获取人员表信息 ViewData["vguid"] = personInfoModel.Vguid; #endregion string pushContentVguid = Request.QueryString["Vguid"]; //推送的主键 ViewData["pushContentVguid"] = pushContentVguid; var pushContentModel = _pl.GetPushDetail(pushContentVguid); //获取工资信息 var salaryInfo = _salaryLogic.GetSalaryInfo(personInfoModel.IDNumber, pushContentVguid); ViewData["salaryInfo"] = salaryInfo;//new Business_Payroll_Information(); //bool isValidTime = false; //未过有效期 // 判断是否过了有效期 //if (pushContentModel!=null) //{ // if (pushContentModel.PeriodOfValidity != null) // { // if (DateTime.Now > pushContentModel.PeriodOfValidity) // { // isValidTime = true; //已过有效期 // } // } // ViewBag.isValidTime = isValidTime; //} ViewData["PushContentModel"] = pushContentModel; return(View()); }
// // GET: /WeChatPay/WechatPay/ public ActionResult Index(string code) { #region 获取用户微信OpenId var accountToken = WeChatTools.GetAccessoken(); ViewData["accountToken"] = accountToken; var userInfoStr = WeChatTools.GetUserInfoByCode(accountToken, code); var userInfo = JsonHelper.JsonToModel <U_WeChatUserID>(userInfoStr);//用户ID var openInfoStr = WeChatTools.ConvertToOpenidByUserId(accountToken, userInfo.UserId); var openInfo = JsonHelper.JsonToModel <U_OpenInfo>(openInfoStr); var openidExt = openInfo.openid; ViewData["openid"] = openidExt; #endregion return(View()); }
/// <summary> /// 从微信后台获取人员的状态,并且将状态同步至数据库中 /// </summary> public static void UpdatePersonStatus() { bool result = false; int time = 0; while (true) { if (DateTime.Now.Hour == 2) { time = 0; } if (DateTime.Now.Hour != 1 || time != 0) { continue; //时间为凌晨1点并且time为0的时候执行同步操作 } try { U_AccessToken accessTokenModel = new U_AccessToken(); accessTokenModel.UserKey = ConfigSugar.GetAppString("WeChatCorpID"); accessTokenModel.UserPassword = ConfigSugar.GetAppString("WeChatSecret"); var accessToken = WeChatTools.GetAccessoken(accessTokenModel); var departments = WeChatTools.GetDepartment(accessToken); //获取所有的部门 UpdatePersonLogic _updatePersonLogic = new UpdatePersonLogic(); foreach (var item in departments.department) { var users = WeChatTools.GetUsers(accessToken, item.id.ToString()); //根据部门获取所有的人员 result = _updatePersonLogic.UpdatePersonStatus(users.userlist); } } catch (Exception exp) { LogManager.WriteLog(LogFile.Error, "同步人员状态:" + result + "/n" + exp); } time++; } }
/// <summary> /// 支付结果回调地址 /// </summary> /// <returns></returns> public string PayNotifyUrl() { WxPayData resultInfo = new WxPayData(); try { ResultNotify resultNotify = new ResultNotify(); WxPayData notifyData = resultNotify.GetNotifyData(); //获取微信返回的数据 string accessToken = WeChatTools.GetAccessoken(); var userInfoStr = WeChatTools.ConvertToUserIdByOpenid(accessToken, notifyData.GetValue("openid").ToString()); var userInfo = Common.JsonHelper.JsonToModel <U_WechatUserInfo>(userInfoStr); var userid = userInfo.userid; var personInfoModel = _wl.GetUserInfo(userid); //获取人员表信息 var paymentHistoryInfo = new Business_PaymentHistory_Information(); paymentHistoryInfo.PaymentPersonnel = personInfoModel.Vguid; //付款人vguid _weChatRevenueLogic.UpdatePaymentHistory(personInfoModel, paymentHistoryInfo, notifyData); if (notifyData.GetValue("return_code").ToString() == "SUCCESS" && notifyData.GetValue("result_code").ToString() == "SUCCESS") { resultInfo.SetValue("return_code", "SUCCESS"); resultInfo.SetValue("return_msg", "OK"); } else { resultInfo.SetValue("return_code", notifyData.GetValue("return_code").ToString()); resultInfo.SetValue("return_msg", notifyData.GetValue("return_msg").ToString()); } } catch (Exception ex) { LogHelper.WriteLog(ex.ToString()); resultInfo.SetValue("return_code", "FAIL"); resultInfo.SetValue("return_msg", "交易失败"); } return(resultInfo.ToXml()); }
/// <summary> /// 营收支付手机界面 /// </summary> /// <param name="code"></param> /// <returns></returns> public ActionResult RevenuePay(string code) { #region 获取人员表信息 string accessToken = WeChatTools.GetAccessoken(); string userInfoStr = WeChatTools.GetUserInfoByCode(accessToken, code); var userInfo = Common.JsonHelper.JsonToModel <U_WeChatUserID>(userInfoStr); //用户ID //U_WeChatUserID userInfo = new U_WeChatUserID(); //userInfo.UserId = "18936495119"; //userInfo.UserId = "WangCunbiao"; var personInfoModel = _wl.GetUserInfo(userInfo.UserId); //获取人员表信息 ViewData["vguid"] = personInfoModel.Vguid; var driverInfo = _rl.GetDriverMsg(personInfoModel); //var driverInfo = getDriverInfo(personInfoModel); //ViewData["driverId"] = "21033"; //ViewData["organizationId"] = "55"; ViewData["driverId"] = driverInfo.Id; ViewData["organizationId"] = driverInfo.OrganizationID; //Business_Personnel_Information personInfoModel = new Business_Personnel_Information(); //personInfoModel.Vguid = Guid.Parse("B0167926-C8AF-4AAE-9B18-573EEEDFE740"); //ViewData["vguid"] = personInfoModel.Vguid; #endregion #region 查询车牌号是否为空 ViewData["payException"] = "0"; //var driverInfo = _weChatRevenueLogic.GetDriverInfo(personInfoModel); //if (driverInfo == null) //{ // ViewData["payException"] = "1"; //} #endregion #region 获取openid //var openInfoStr = WeChatTools.ConvertToOpenidByUserId(accessToken, userInfo.UserId); //var openInfo = Common.JsonHelper.JsonToModel<U_OpenInfo>(openInfoStr); //var openidExt = openInfo.openid; //ViewData["openid"] = openidExt; #endregion //var configList = _configManagementLogic.GetConfigList(); //var fee = configList[13].ConfigValue; //ViewData["driverPay"] = fee; //var driverPayfee = double.Parse(fee.Trim('%')) / 100; //获取司机支付的手续费 //string pushContentVguid = "CCA89587-50BA-4B89-B87B-B53603B74F1B"; //推送的主键 string pushContentVguid = Request.QueryString["Vguid"]; //推送的主键 ViewData["pushContentVguid"] = pushContentVguid; var pushContentModel = _pl.GetPushDetail(pushContentVguid); bool isValidTime = false; //未过有效期 if (pushContentModel != null) { //判断是否已经支付过 bool isExist = _weChatRevenueLogic.HasPaymentHistory(personInfoModel.Vguid, pushContentModel.VGUID, 2); ViewData["isExist"] = isExist ? "1" : "0"; #region 判断是否过了有效期 if (pushContentModel.PeriodOfValidity != null) { if (DateTime.Now > pushContentModel.PeriodOfValidity) { isValidTime = true; //已过有效期 } } #endregion #region 判断是否是司机 //去查询营收 //if (personInfoModel.DepartmenManager == 1) //说明是司机 //{ // ViewData["IsDriver"] = "1"; //} #endregion #region 查询营收金额 if (pushContentModel.RevenueType == 2) //营收金额 { //去查询营收 var revenue = _weChatRevenueLogic.GetRevenueMsgByPersonInfo(personInfoModel); //if (revenue.CurrentAccountBalance == "0" || revenue.CurrentAccountBalance == "0.00") //{ // revenue.CurrentAccountBalance = "-10000.123984"; //} //decimal caBalance = Convert.ToDecimal(revenue.CurrentAccountBalance); //var currentAccountBalance = FormatData(caBalance); //revenue.CurrentAccountBalance = FormatData(caBalance).ToString(); ViewBag.Revenue = revenue; //if (caBalance < 0) //{ // caBalance = caBalance * -1; //} //ViewBag.CurrentAccountBalance = caBalance.ToString("F2"); //var handlingFee = Convert.ToDecimal(revenue.FeeMoney); //handlingFee = FormatData(handlingFee); //if (handlingFee < 0) //{ // handlingFee = handlingFee * -1; //} //ViewBag.HandlingFee = handlingFee; //ViewBag.TotalAmount = currentAccountBalance + handlingFee; } #endregion } ViewBag.isValidTime = isValidTime; ViewData["PushContentModel"] = pushContentModel; return(View()); }
/// <summary> /// 固定金额支付手机界面 /// </summary> /// <param name="code"></param> /// <returns></returns> public ActionResult FixedPay(string code) { string accessToken = WeChatTools.GetAccessoken(); string userInfoStr = WeChatTools.GetUserInfoByCode(accessToken, code); var userInfo = Common.JsonHelper.JsonToModel <U_WeChatUserID>(userInfoStr); //用户ID var personInfoModel = _wl.GetUserInfo(userInfo.UserId); //获取人员表信息 ViewData["vguid"] = personInfoModel.Vguid; //Business_Personnel_Information personInfoModel = new Business_Personnel_Information(); //personInfoModel.Vguid = Guid.Parse("B0167926-C8AF-4AAE-9B18-573EEEDFE740"); //ViewData["vguid"] = personInfoModel.Vguid; #region 获取openid var openInfoStr = WeChatTools.ConvertToOpenidByUserId(accessToken, userInfo.UserId); var openInfo = Common.JsonHelper.JsonToModel <U_OpenInfo>(openInfoStr); var openidExt = openInfo.openid; ViewData["openid"] = openidExt; #endregion #region 查询车牌号是否为空 ViewData["payException"] = "0"; //var driverInfo = _weChatRevenueLogic.GetDriverInfo(personInfoModel); //if (driverInfo == null) //{ // ViewData["payException"] = "1"; //} #endregion var configList = _configManagementLogic.GetConfigList(); var fee = configList[13].ConfigValue; ViewData["driverPay"] = fee; var driverPayfee = double.Parse(fee.Trim('%')) / 100; //获取司机支付的手续费 string pushContentVguid = Request.QueryString["Vguid"]; //推送的主键 ViewData["pushContentVguid"] = pushContentVguid; var pushContentModel = _pl.GetPushDetail(pushContentVguid); bool isValidTime = false; //未过有效期 if (pushContentModel != null) { //判断是否已经支付过 bool isExist = _weChatRevenueLogic.HasPaymentHistory(personInfoModel.Vguid, pushContentModel.VGUID, 1); ViewData["isExist"] = isExist ? "1" : "0"; #region 判断是否过了有效期 if (pushContentModel.PeriodOfValidity != null) { if (DateTime.Now > pushContentModel.PeriodOfValidity) { isValidTime = true; //已过有效期 } } #endregion } decimal caBalance = Convert.ToDecimal(pushContentModel.Message); decimal currentAccountBalance = FormatData(caBalance); pushContentModel.Message = currentAccountBalance.ToString(); var handlingFee = currentAccountBalance * (decimal)driverPayfee; handlingFee = FormatData(handlingFee); ViewBag.HandlingFee = handlingFee; ViewBag.TotalAmount = currentAccountBalance + handlingFee; ViewBag.isValidTime = isValidTime; ViewData["PushContentModel"] = pushContentModel; return(View()); }
/// <summary> /// 根据手机号,身份证号删除人员信息 /// </summary> /// <param name="SECURITYKEY">加密值</param> /// <param name="phoneNumber">手机号码</param> /// /// <param name="IDNumber">身份证号</param> /// <returns></returns> public JsonResult DeleteUserInfo(string SECURITYKEY, string phoneNumber, string IDNumber) { ExecutionResult result = new ExecutionResult(); try { if (API_Authentication(SECURITYKEY)) { string accessToken = WeChatTools.GetAccessoken(true); result.Result = ""; //删除本地人员表中信息 UserInfoLogic userInfoLogic = new UserInfoLogic(); Business_Personnel_Information personInfo = userInfoLogic.GetPerson(IDNumber); var userID = ""; if (personInfo != null) { userID = personInfo.UserID; if (userID != "") { WeChatTools.DeleteUser(accessToken, userID); } } //删除微信官方后台人员信息 string GetUserInfoByUserID = WeChatTools.GetUserInfoByUserID(accessToken, phoneNumber); string GetUserInfoByUserID2 = WeChatTools.GetUserInfoByUserID(accessToken, IDNumber); U_UserInfo userDetail = JsonHelper.JsonToModel <U_UserInfo>(GetUserInfoByUserID); //用户信息phoneNumber U_UserInfo userDetail2 = JsonHelper.JsonToModel <U_UserInfo>(GetUserInfoByUserID2); //用户信息IDNumber string respText1 = ""; string respText2 = ""; string respText3 = ""; string userid = ""; if (userDetail.userid != null) { //手机号是userid respText1 = WeChatTools.DeleteUser(accessToken, phoneNumber); } else { respText1 = "手机号是userid,未查找到人员数据"; } if (userDetail2.userid != null) { //身份证是userid respText2 = WeChatTools.DeleteUser(accessToken, IDNumber); } else { respText2 = "身份证是userid,未查找到人员数据"; } //根据手机号查询userid var useridJ = WeChatTools.GetUserId(accessToken, phoneNumber); JObject useridJson = JObject.Parse(useridJ); try { userid = useridJson["userid"].ToString(); respText3 = WeChatTools.DeleteUser(accessToken, userid); } catch (Exception) { respText3 = "通过手机号,未查找到人员数据"; } var isDelete = userInfoLogic.DeletePersonInfo(IDNumber); result.Success = true; result.Result = respText1 + ";" + respText2 + ";" + respText3; ExecHistry("根据身份证删除本地用户", IDNumber, isDelete.ToString()); ExecHistry("根据手机号删除微信用户,WeChatTools.DeleteUser", phoneNumber, respText1); ExecHistry("根据身份证删除微信用户,WeChatTools.DeleteUser", IDNumber, respText2); ExecHistry("根据手机号查询userid删除微信用户,WeChatTools.DeleteUser", userid, respText3); ExecHistry("根据手机号查询userid,WeChatTools.GetUserId", phoneNumber, userid); } else { result.Message = "SECURITYKEY 无效!"; } } catch (Exception ex) { result.Message = ex.Message; LogHelper.WriteLog(ex.Message); } return(Json(result, JsonRequestBehavior.AllowGet)); }
public JsonResult WeChatRegistered(string SECURITYKEY, string pushparam) { ExecutionResult result = new ExecutionResult(); try { if (API_Authentication(SECURITYKEY)) { //if (!APICount()) //{ // result.Message = "删除微信官方通讯录次数已经用完!"; //} //else //{ string accessToken = WeChatTools.GetAccessoken(true); U_WeChatRegistered user = Extend.JsonToModel <U_WeChatRegistered>(pushparam); string pushResult = WeChatTools.CreateUser(accessToken, user); var wechatResult = Extend.JsonToModel <U_WechatResult>(pushResult); if (wechatResult.errcode == "0") { UserInfoLogic logic = new UserInfoLogic(); logic.InsertTrainers(user); result.Success = true; } result.Message = pushResult; //string accessToken = WeChatTools.GetAccessoken(true); //U_WeChatRegistered user = Extend.JsonToModel<U_WeChatRegistered>(pushparam); //var wResult = WeChatTools.GetUserInfoByUserID(accessToken, user.idcard); //var wechatResult = Extend.JsonToModel<U_WechatResult>(wResult); //if (wechatResult.errcode == "0") //{ // WeChatTools.DeleteUser(accessToken, user.idcard); //} //wResult = WeChatTools.GetUserId(accessToken, user.mobile); //Dictionary<string, string> dicReuslt = Extend.JsonToModel<Dictionary<string, string>>(wResult); //if (dicReuslt["errcode"] == "0") //{ // string userid = dicReuslt["userid"]; // WeChatTools.DeleteUser(accessToken, userid); //} //string pushResult = WeChatTools.CreateUser(accessToken, user); //wechatResult = Extend.JsonToModel<U_WechatResult>(pushResult); //if (wechatResult.errcode == "0") //{ // UserInfoLogic logic = new UserInfoLogic(); // logic.InsertTrainers(user); // result.Success = true; //} //result.Message = pushResult; //} } else { result.Message = "SECURITYKEY 无效!"; } } catch (Exception ex) { result.Message = ex.Message; LogHelper.WriteLog(ex.Message); } ExecHistry("WeChatRegistered", pushparam, JsonHelper.ModelToJson(result)); return(Json(result)); }
public JsonResult WeChatRegistrationVerification(string SECURITYKEY, string pushparam) { ExecutionResult result = new ExecutionResult(); try { if (API_Authentication(SECURITYKEY)) { U_WeChatRegistered user = Extend.JsonToModel <U_WeChatRegistered>(pushparam); string accessToken = WeChatTools.GetAccessoken(true); string pushResult = WeChatTools.GetUserInfo(accessToken); U_WechatUsersResult usersResult = Extend.JsonToModel <U_WechatUsersResult>(pushResult); var fuser = usersResult.userlist.Find(c => c.userid == c.mobile && c.mobile == user.mobile); if (fuser != null) { result.Success = true; result.Message = string.Format("存在微信USERID为{0},手机号码为{1}的用户!", fuser.userid, fuser.mobile); result.Result = 1;//USERID为手机号,手机号一致 return(Json(result)); } fuser = usersResult.userlist.Find(c => c.userid == user.idcard && c.mobile == user.mobile); if (fuser != null) { result.Success = true; result.Message = string.Format("存在微信USERID为{0},手机号码为{1}的用户!", fuser.userid, fuser.mobile); result.Result = 2;//USERID为身份证号,手机号一致 return(Json(result)); } fuser = usersResult.userlist.Find(c => c.userid == user.mobile); if (fuser != null) { result.Success = true; result.Message = string.Format("存在微信USERID为{0},手机号码为{1}的用户!", fuser.userid, fuser.mobile); result.Result = 3;//USERID为手机号,手机号不一致 return(Json(result)); } fuser = usersResult.userlist.Find(c => c.userid == user.idcard); if (fuser != null) { result.Success = true; result.Message = string.Format("存在微信USERID为{0},手机号码为{1}的用户!", fuser.userid, fuser.mobile); result.Result = 4;//USERID为身份证号,手机号不一致 return(Json(result)); } fuser = usersResult.userlist.Find(c => c.mobile == user.mobile); if (fuser != null) { result.Success = true; result.Message = string.Format("存在微信USERID为{0},手机号码为{1}的用户!", fuser.userid, fuser.mobile); result.Result = 5;//手机号一致,USERID不一致 return(Json(result)); } result.Success = true; result.Message = "微信不存在该用户!"; result.Result = 0;// return(Json(result)); } } catch (Exception ex) { result.Message = ex.Message; LogHelper.WriteLog(ex.Message); } return(Json(result)); }