/// <summary> /// 申请退款 /// </summary> /// <param name="transaction_id">微信单号</param> /// <param name="total_fee">退款金额</param> /// <param name="tradeNo">退款单号</param> /// <returns></returns> public JsonResult Refund(string transaction_id, string total_fee, string tradeNo) { var outTradeNo = string.Empty; var models = new ReturnResultModel <string>(); WxPayData data = new WxPayData(); var totalFee = (int)(decimal.Parse(total_fee) * 100); data.SetValue("transaction_id", transaction_id); data.SetValue("total_fee", totalFee); //订单总金额 data.SetValue("refund_fee", totalFee); //退款金额 if (string.IsNullOrEmpty(tradeNo)) { outTradeNo = WxPayApi.GenerateOutTradeNo(); data.SetValue("out_refund_no", outTradeNo);//随机生成商户退款单号 } else { data.SetValue("out_refund_no", tradeNo); //随机生成商户退款单号 } WxPayData result = WeChatTools.Refund(data); //提交退款申请给API,接收返回数据 if (result.GetValue("return_code").ToString() == "SUCCESS" && result.GetValue("result_code").ToString() == "SUCCESS") { models.IsSuccess = true; models.ResponseInfo = "1"; _weChatRevenueLogic.UpdateStatus(transaction_id); } else { models.IsSuccess = false; models.ResponseInfo = result.GetValue("return_msg").ToString(); models.ReturnMsg = outTradeNo; } return(Json(models)); }
public string IsExistAccess_Token() { string AccessToken = ""; object Access_Token = CacheHelper.GetCache("Access_Token");//设置主菜单缓存 防止多次访问数据库V1003_TODAY_MUSIC if (Access_Token != null) { DateTime Tim = DateTime.Now; if (base.GetListBy(t => t.id == 1 && Tim > t.Tim).Count == 0) { AccessToken = Access_Token.ToString(); } else { AccessToken = WeChatTools.FirstAccess_Token(sysConfigs.GetKeyValue("appid"), sysConfigs.GetKeyValue("appsecret"));//重新获取Access_Token CacheHelper.SetCache("Access_Token", AccessToken, TimeSpan.FromMinutes(120)); string sql = "update TokenConfig set Tim='" + DateTime.Now.AddMinutes(3) + "'"; idal.ExcuteSql(sql); } } else { AccessToken = WeChatTools.FirstAccess_Token(sysConfigs.GetKeyValue("appid"), sysConfigs.GetKeyValue("appsecret"));//重新获取Access_Token CacheHelper.SetCache("Access_Token", AccessToken, TimeSpan.FromMinutes(120)); string sql = "update TokenConfig set Tim='" + DateTime.Now.AddMinutes(45) + "'"; idal.ExcuteSql(sql); } LogHelper.WriteLog("最新的TOKEN:" + AccessToken); return(AccessToken); }
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()); }
private static void GetWeChatInfo() { string _RandomStr = WeChatTools.GetRandomStr(43); using (SmartBindUtil smartBind = new SmartBindUtil("*****@*****.**", "shizhongxiao93")) { //登录成功后,在开发者中心获取开发者信息 WechatDevInfo devInfo = smartBind.GetWechatDev(); WechatAccountInfo accountInfo = smartBind.GetAccount(); //无法获取用户信息,结束操作并跳出 if (accountInfo == null) { return; } //下载头像 if (!string.IsNullOrWhiteSpace(accountInfo.HeadImage)) { string fileName = AppDomain.CurrentDomain.BaseDirectory + "img\\headImg.jpg"; int downStatus = smartBind.DownloadImg(accountInfo.HeadImage, fileName, true); } //下载二维码 if (!string.IsNullOrWhiteSpace(accountInfo.HeadImage)) { string fileName = AppDomain.CurrentDomain.BaseDirectory + "img\\qrCode.jpg"; int downStatus = smartBind.DownloadImg(accountInfo.QRCode, fileName, true); } //设置启用开发模式 int status = smartBind.EnabledDev(1, 2); //启用开发模式失败,结束操作并跳出 if (status != 0) { return; } // 验证服务器接口回调,此处修改服务器配置中的URL和Token int i = 2; while (i > 0) { status = smartBind.SetDevServiceUrl( "http://sjianshang.xicp.net/seekask.ui/weixin", "SeekAsk2015WeiXin", "T9538lolqhzjEQokpni6xSfYQ0LpJChwLvJiohLu4oV", ((int)EncodingAESType.安全模式).ToString()); if (status == 0) { break; } Thread.Sleep(2000); i--; } if (status == 0) { //修改成功! } }; }
public JsonResult GetPaySign(string openid, string revenueFee, string totalFee, Guid personVguid, Guid pushContentVguid, int revenueType) { var revenueReceivable = decimal.Parse(revenueFee); //获取司机支付应付金额 var totalFeeDouble = double.Parse(totalFee); //double totalFeeInt = tatol + driverPayfee; //包含手续费的总钱数 var totalFeeInt = (int)Math.Round(totalFeeDouble * 100); string nonceStr = WxPayApi.GenerateNonceStr(); //随机字符串,不长于32位 string outTradeNo = WxPayApi.GenerateOutTradeNo(); //订单号:32个字符内、不得重复 string spbillCreateIp = WxPayConfig.GetIP(System.Web.HttpContext.Current); //用户端IP double total_fee = totalFeeInt; //订单金额(单位:分),整数 string trade_type = "JSAPI"; //JSAPI,NATIVE,APP,WAP #region 调用统一支付接口获得prepay_id(预支付交易会话标识) WxPayData wxPayData = new WxPayData(); wxPayData.SetValue("appid", WxPayConfig.APPID); //appid wxPayData.SetValue("body", WxPayConfig.BODY); //支付描述 wxPayData.SetValue("mch_id", WxPayConfig.MCHID); //商户id wxPayData.SetValue("nonce_str", nonceStr); //随机字符串 wxPayData.SetValue("notify_url", WxPayConfig.NOTIFY_URL); //回调地址 wxPayData.SetValue("openid", openid); //openid wxPayData.SetValue("out_trade_no", outTradeNo); //订单号 wxPayData.SetValue("spbill_create_ip", spbillCreateIp); //客户端ip地址 wxPayData.SetValue("total_fee", total_fee.ToString()); //订单金额(单位:分),整数 wxPayData.SetValue("trade_type", trade_type); //交易类型 wxPayData.SetValue("sign", wxPayData.MakeSign()); //签名 string data = wxPayData.ToXml(); string prepayId = WeChatTools.UnifiedOrder(data); #endregion #region 支付参数 string timeStamp = WxPayApi.GenerateTimeStamp(); nonceStr = WxPayApi.GenerateNonceStr(); WxPayData wxPaySign = new WxPayData(); wxPaySign.SetValue("appId", WxPayConfig.APPID); wxPaySign.SetValue("timeStamp", timeStamp); wxPaySign.SetValue("nonceStr", nonceStr); wxPaySign.SetValue("package", string.Format("prepay_id={0}", prepayId)); wxPaySign.SetValue("signType", "MD5"); string paysign = wxPaySign.MakeSign(); wxPaySign.SetValue("paySign", paysign); #endregion var paymentHistoryInfo = new Business_PaymentHistory_Information(); paymentHistoryInfo.RevenueReceivable = revenueReceivable; paymentHistoryInfo.PaymentPersonnel = personVguid; paymentHistoryInfo.PaymentAmount = decimal.Parse(totalFee); paymentHistoryInfo.VGUID = Guid.NewGuid(); paymentHistoryInfo.RevenueType = revenueType; paymentHistoryInfo.WeChatPush_VGUID = pushContentVguid; paymentHistoryInfo.Remarks = outTradeNo; //商户订单号 paymentHistoryInfo.CreateDate = DateTime.Now; paymentHistoryInfo.CreateUser = "******"; paymentHistoryInfo.PayDate = DateTime.Now; paymentHistoryInfo.PaymentStatus = "3"; bool addsuccess = _weChatRevenueLogic.AddPaymentHistory(paymentHistoryInfo); return(Json(new { success = addsuccess, data = wxPaySign.GetValues() }, JsonRequestBehavior.AllowGet)); }
// // 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 void GetRedPacketInfo() { using (var db = SugarDao_MsSql.GetInstance()) { var listOrderNo = db.Queryable <Business_Redpacket_Push_Information>().Where("isnull(RedpacketStatus,0) not in (3,4,6)").Select(i => i.OrderNumber).ToList(); foreach (string billNo in listOrderNo) { WxPayData data = new WxPayData(); data.SetValue("mch_billno", billNo); var result = WeChatTools.QueryWorkWxRedPacket(data); if (result.GetValue("return_code").ToString() != "SUCCESS" || result.GetValue("result_code").ToString() != "SUCCESS") { continue; } Business_Redpacket_Push_Information redpacket = new Business_Redpacket_Push_Information(); var status = result.GetValue("status").ToString(); //红包状态 var redPacketStatus = (int)((RedPacketStatus)Enum.Parse(typeof(RedPacketStatus), status)); redpacket.RedpacketStatus = redPacketStatus; var sendTime = result.GetValue("send_time").ToString(); redpacket.CreatedDate = DateTime.Parse(sendTime); switch (status) { case "RECEIVED": var rcvTime = result.GetValue("rcv_time").ToString(); //var rcvTime = hblist.Substring(hblist.Length - 19, 19); redpacket.ReceiveDate = DateTime.Parse(rcvTime); break; case "REFUND": var refundTime = result.GetValue("refund_time").ToString(); redpacket.ReceiveDate = DateTime.Parse(refundTime); break; case "FAILED": var reason = result.GetValue("reason").ToString(); redpacket.Reson = reason; break; default: redpacket.ReceiveDate = null; break; } redpacket.OrderNumber = billNo; UpdateRedPacketInfo(redpacket); } } }
public JsonResult GetPaySign(string openid) { string nonceStr = WxPayApi.GenerateNonceStr(); //随机字符串,不长于32位 string outTradeNo = WxPayApi.GenerateOutTradeNo(); //订单号:32个字符内、不得重复 string spbillCreateIp = WxPayConfig.GetIP(System.Web.HttpContext.Current); //用户端IP int total_fee = 1; //订单金额(单位:分),整数 string trade_type = "JSAPI"; //JSAPI,NATIVE,APP,WAP #region 调用统一支付接口获得prepay_id(预支付交易会话标识) WxPayData wxPayData = new WxPayData(); wxPayData.SetValue("appid", WxPayConfig.APPID); //appid wxPayData.SetValue("body", WxPayConfig.BODY); //支付描述 wxPayData.SetValue("mch_id", WxPayConfig.MCHID); //商户id wxPayData.SetValue("nonce_str", nonceStr); //随机字符串 wxPayData.SetValue("notify_url", WxPayConfig.NOTIFY_URL); //回调地址 wxPayData.SetValue("openid", openid); //openid wxPayData.SetValue("out_trade_no", outTradeNo); //订单号 wxPayData.SetValue("spbill_create_ip", spbillCreateIp); //客户端ip地址 wxPayData.SetValue("total_fee", total_fee.ToString()); //订单金额(单位:分),整数 wxPayData.SetValue("trade_type", trade_type); //交易类型 wxPayData.SetValue("sign", wxPayData.MakeSign()); //签名 string data = wxPayData.ToXml(); string prepayId = WeChatTools.UnifiedOrder(data); #endregion #region 支付参数 string timeStamp = WxPayApi.GenerateTimeStamp(); nonceStr = WxPayApi.GenerateNonceStr(); WxPayData wxPaySign = new WxPayData(); wxPaySign.SetValue("appId", WxPayConfig.APPID); wxPaySign.SetValue("timeStamp", timeStamp); wxPaySign.SetValue("nonceStr", nonceStr); wxPaySign.SetValue("package", string.Format("prepay_id={0}", prepayId)); wxPaySign.SetValue("signType", "MD5"); string paysign = wxPaySign.MakeSign(); wxPaySign.SetValue("paySign", paysign); #endregion return(Json(new { data = wxPaySign.GetValues(), openid = openid }, JsonRequestBehavior.AllowGet)); }
public JsonResult WXTextPush(string SECURITYKEY, string pushparam) { ExecutionResult result = new ExecutionResult(); try { if (API_Authentication(SECURITYKEY)) { PushParamModel textPush = Extend.JsonToModel <PushParamModel>(pushparam); var textPushs = new List <PushParamModel> { textPush }; //result = SaveGraphicPushData(textPushs); string accessToken = Common.WeChatPush.WeChatTools.GetAccessoken(); string _sendUrl = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={0}"; string postUrl = string.Format(_sendUrl, accessToken); //获取推送内容Json string json = GetTextPushJson(textPush); string pushResult = WeChatTools.PostWebRequest(postUrl, json, Encoding.UTF8); var wechatResult = Extend.JsonToModel <U_WechatResult>(pushResult); if (wechatResult.errcode == "0") { result.Success = true; } result.Message = pushResult; } else { result.Message = "SECURITYKEY 无效!"; } } catch (Exception ex) { result.Message = ex.Message; LogHelper.WriteLog(ex.Message); } ExecHistry("WeChatTextPush", pushparam, JsonHelper.ModelToJson(result)); return(Json(result)); }
/// <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 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()); }
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)); }
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 WeChatMobileChange(string SECURITYKEY, string pushparam) { ExecutionResult result = new ExecutionResult(); try { if (API_Authentication(SECURITYKEY)) { string accessToken = Common.WeChatPush.WeChatTools.GetAccessoken(true); U_WeChatRegistered user = Extend.JsonToModel <U_WeChatRegistered>(pushparam); UserInfoLogic userInfoLogic = new UserInfoLogic(); var muser = userInfoLogic.GetPerson(user.idcard); if (muser != null) { userInfoLogic.UpdatePhoneNumber(muser.UserID, user.mobile); //userInfoLogic.DeleteUserInfo(new string[] { muser.Vguid.ToString() }); string pushResult = WeChatTools.DeleteUser(accessToken, muser.UserID); var wechatResult = Extend.JsonToModel <U_WechatResult>(pushResult); if (wechatResult.errcode != "0") { result.Message = pushResult; } else { UserInfoLogic logic = new UserInfoLogic(); var allTrainers = logic.GetTrainers(user); if (allTrainers != null) { user.userid = allTrainers.IDCard; user.name = allTrainers.Name; user.gender = allTrainers.Gender.ToString(); //string pushResult = WeChatTools.WeChatMobileChange(accessToken, muser.UserID, user.mobile); pushResult = WeChatTools.CreateUser(accessToken, user); wechatResult = Extend.JsonToModel <U_WechatResult>(pushResult); if (wechatResult.errcode == "0") { logic.UpdateTrainers(user); result.Success = true; } result.Message = pushResult; } else { result.Message = string.Format("该身份证号码:{0} 用户在培训注册表中不存在!", user.idcard); } } } else { result.Message = string.Format("该身份证号码:{0} 用户不存在", user.idcard); } } else { result.Message = "SECURITYKEY 无效!"; } } catch (Exception ex) { result.Message = ex.Message; LogHelper.WriteLog(ex.Message); } ExecHistry("WeChatRegistered", pushparam, JsonHelper.ModelToJson(result)); return(Json(result)); }
/// <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()); }
public ActionResult BindWeiXinByAccount(string wxUserID, string wxUserPwd) { StatusBackModel errBack = new StatusBackModel(); try { using (SmartBindUtil smartBind = new SmartBindUtil(wxUserID, wxUserPwd)) { //登录成功后,在开发者中心获取开发者信息 WechatDevInfo devInfo = smartBind.GetWechatDev(); WechatAccountInfo accountInfo = smartBind.GetAccount(); //无法获取用户信息,结束操作并跳出 if (accountInfo == null) { errBack.ErrMsg = "无法获取用户信息,结束操作并跳出"; return(Json(errBack)); } if (devInfo != null && !string.IsNullOrWhiteSpace(devInfo.AppSecret)) { devInfo.AppSecret = devInfo.AppSecret.Replace("重置", "").Trim(); if (devInfo.AppSecret.Contains("显示密钥")) { devInfo.AppSecret = null; } } Weixin_Sys_Info info = null; using (SeekAskContext context = new SeekAskContext()) { #region 更新微信号管理 info = context.Weixin_Sys_Info.FirstOrDefault(p => p.Wx_AccountId == accountInfo.AccountId && p.Wx_WechatNumber == accountInfo.WechatNumber && p.Wx_AppId == devInfo.AppId); if (info == null) { info = new Weixin_Sys_Info(); info.Create_Id = "Sys"; info.Create_Name = "系统管理员"; info.Create_IP = WebSiteTools.GetRequestIP(); info.Create_Time = DateTime.Now; info = context.Weixin_Sys_Info.Add(info); } info.Wx_Status = 0; info.Wx_AccountId = accountInfo.AccountId; info.Wx_AccountName = accountInfo.AccountName; info.Wx_WechatNumber = accountInfo.WechatNumber; info.Wx_WechatType = (int)accountInfo.WechatType; info.Wx_Introduces = accountInfo.Introduces; info.Wx_Authenticate = (int)accountInfo.Authenticate; info.Wx_PlaceAddress = accountInfo.PlaceAddress; info.Wx_SubjectInfo = accountInfo.SubjectInfo; info.Wx_LoginEmail = accountInfo.LoginEmail; info.Wx_AppId = devInfo.AppId; if (!string.IsNullOrWhiteSpace(devInfo.AppSecret)) { info.Wx_AppSecret = devInfo.AppSecret; } info.Wx_URL = devInfo.URL; info.Wx_EncodingAESKey = devInfo.EncodingAESKey; info.Wx_EncodingAESType = (int)devInfo.EncodingAESType; info.Modify_Id = "Sys"; info.Modify_Name = "系统管理员"; info.Modify_IP = WebSiteTools.GetRequestIP(); info.Modify_Time = DateTime.Now; info.Is_Deleted = false; context.SaveChanges(); #endregion #region 载头像及设置开发模式 //下载头像 if (!string.IsNullOrWhiteSpace(accountInfo.HeadImage)) { string fileName = "weixinImg/headImg_" + info.WxId + ".jpg"; int downStatus = smartBind.DownloadImg(accountInfo.HeadImage, Server.MapPath("~/") + fileName, true); if (downStatus == (int)HttpStatusCode.OK) { info.Wx_HeadImage = "/" + fileName; } } //下载二维码 if (!string.IsNullOrWhiteSpace(accountInfo.HeadImage)) { string fileName = "weixinImg/qrCode_" + info.WxId + ".jpg"; int downStatus = smartBind.DownloadImg(accountInfo.QRCode, Server.MapPath("~/") + fileName, true); if (downStatus == (int)HttpStatusCode.OK) { info.Wx_QRCode = "/" + fileName; } } //info.Wx_URL = "http://sjianshang.xicp.net/seekask.ui/weixin?appid=" + info.WxId; info.Wx_URL = "http://wx.seekask.cn/weixin?appid=" + info.WxId; info.Wx_Token = WeChatTools.GetRandomStr(20); info.Wx_EncodingAESKey = WeChatTools.GetRandomStr(43); info.Wx_EncodingAESType = 2; context.SaveChanges(); //设置启用开发模式 int status = smartBind.EnabledDev(1, 2); //启用开发模式失败,结束操作并跳出 if (status != 0) { return(Content("启用开发模式失败,结束操作并跳出")); } // 验证服务器接口回调,此处修改服务器配置中的URL和Token status = smartBind.SetDevServiceUrl( info.Wx_URL, info.Wx_Token, info.Wx_EncodingAESKey, info.Wx_EncodingAESType.ToString()); #endregion errBack.BackData = info.WxId; if (status == 0) { errBack.ErrCode = 1; errBack.ErrMsg = "接入成功!"; } else { errBack.ErrMsg = "用户信息获取成功,接入失败!"; } } }; } catch (Exception) { errBack.ErrMsg = "执行异常"; } return(Json(errBack)); }
/// <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)); }