コード例 #1
0
        /// <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));
        }
コード例 #2
0
        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 + "&timestamp=" + timeStamp + "&url=" + url + "";
            string param2           = "jsapi_ticket=" + tickResult2["ticket"] + "&noncestr=" + nonceStr + "&timestamp=" + 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());
        }
コード例 #5
0
        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());
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: MaricoShi/SeekAsk
        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));
        }
コード例 #8
0
        //
        // 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());
        }
コード例 #9
0
        /// <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);
                }
            }
        }
コード例 #10
0
        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));
        }
コード例 #11
0
        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());
        }
コード例 #15
0
        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));
        }
コード例 #16
0
        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));
        }
コード例 #17
0
        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());
        }
コード例 #19
0
ファイル: WxHomeController.cs プロジェクト: MaricoShi/SeekAsk
        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));
        }
コード例 #20
0
        /// <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));
        }