Пример #1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        string   postStr = "";
        TXT_Help th      = new TXT_Help();

        if (Request.HttpMethod.ToLower() == "post")
        {
            Stream s = System.Web.HttpContext.Current.Request.InputStream;
            byte[] b = new byte[s.Length];
            s.Read(b, 0, (int)s.Length);
            postStr = Encoding.UTF8.GetString(b);
            th.ReFreshTXT(postStr, "D:\\msgweixin\\Post" + DateTime.Now.ToString("mddhhmmssffff") + ".txt");

            XmlHelp xh = new XmlHelp();
            SortedDictionary <string, string> sParams = xh.GetInfoFromXml(postStr);
            if (sParams["return_code"].ToString() == "SUCCESS")
            {
                BaseClass.Dal.ChongzhiLog sl = new BaseClass.Dal.ChongzhiLog();
                if (sl.CZisok(sParams["out_trade_no"].ToString(), sParams["openid"].ToString()))
                {
                    string mid = sParams["openid"].ToString();

                    decimal money = decimal.Parse(sParams["cash_fee"].ToString()) / 100;
                    LVWEIBA.Model.MemberMoney modelMoney = new LVWEIBA.Model.MemberMoney();
                    LVWEIBA.BLL.MemberMoney   bllMoney   = new LVWEIBA.BLL.MemberMoney();
                    modelMoney.MemberID = mid;
                    modelMoney.Money    = money;
                    modelMoney.Method   = "3";//微信充值
                    modelMoney.Bz       = "客户微信充值";
                    modelMoney.Sj       = DateTime.Now;
                    bool isOKM = false;
                    isOKM = bllMoney.Add(modelMoney);

                    bool isOK = false;
                    LVWEIBA.Model.MemberList model = new LVWEIBA.Model.MemberList();
                    LVWEIBA.BLL.MemberList   bll   = new LVWEIBA.BLL.MemberList();

                    if (bll.Exists(mid))
                    {
                        model       = bll.GetModel(mid);
                        model.Money = model.Money + money;
                        isOK        = bll.Update(model);
                    }
                    else
                    {
                        model.MemberId = mid;
                        model.Money    = money;
                        isOK           = bll.Add(model);
                    }
                }
                else
                {
                    th.ReFreshTXT(postStr, "D:\\msg\\zhifuErr\\", "错误CZ" + DateTime.Now.ToString("yyMMddHHmmssff") + ".txt");
                }
            }
            Response.End();
        }
    }
Пример #2
0
    public string CreatTxtMsg(string openid, string ToUserName, string Content)
    {
        string strresponse = "<xml>";

        strresponse += "<ToUserName><![CDATA[" + openid + "]]></ToUserName>";
        strresponse += "<FromUserName><![CDATA[" + ToUserName + "]]></FromUserName>";
        strresponse += "<CreateTime>" + DateTime.Now.Ticks.ToString() + "</CreateTime>";
        TXT_Help th  = new TXT_Help();
        string   mid = "";

        if (Content.Contains("二维码"))
        {
            Erweima er = new Erweima();
            if (!File.Exists("D://LVWEIBA//WeixinSys//media//Code//" + openid + ".jpg"))
            {
                try
                {
                    er.CreatHaibaowithCode(openid, new DBCLASSFORWEIXIN.DAL.LocalWeixinUser().GetModel(openid).headimgurl);
                }
                catch (Exception ee)
                {
                    th.ReFreshTXT(ee.ToString(), "D:\\msgweixin\\Code" + DateTime.Now.ToString("mddhhmmssffff") + ".txt");
                }
            }
            mid          = new MeaidWxUpLoad().WxUpLoad("D://LVWEIBA//WeixinSys//media//Code//" + openid + ".jpg", "image");
            strresponse  = strresponse + "<MsgType><![CDATA[image]]></MsgType>";
            strresponse  = strresponse + "<Image>";
            strresponse  = strresponse + "<MediaId><![CDATA[" + mid + "]]></MediaId>";
            strresponse  = strresponse + "</Image>";
            strresponse += "</xml>";
            SendCustomerMsg ss = new SendCustomerMsg();


            string posdata1 = "{    \"touser\":\"" + openid + "\",    \"msgtype\":\"text\",    \"text\":    {         \"content\":\"稍等····,正在生成二维码。http://wx.lvwei8.com/media/code/" + openid + ".jpg\"    }}";
            string posdata2 = "{    \"touser\":\"" + openid + "\",    \"msgtype\":\"image\",    \"image\":    {         \"media_id\":\"" + mid + "\"    }}";
            th.ReFreshTXT(posdata2, "D:\\msgweixin\\VVV" + DateTime.Now.ToString("mddhhmmssffff") + ".txt");
            try
            {
                ss.SendMsg(openid, posdata1);
                // ss.SendMsg(openid, posdata2);
            }
            catch (Exception vv)
            {
                th.ReFreshTXT(vv.ToString(), "D:\\msgweixin\\Code" + DateTime.Now.ToString("mddhhmmssffff") + ".txt");
            }
        }
        else
        {
            strresponse = DefaultTxtMsg(openid, ToUserName);
        }


        return(strresponse);
    }
Пример #3
0
    public string CreatCliskMsg(string openid, string ToUserName, string EventKey)
    {
        string strresponse = "<xml>";

        strresponse += "<ToUserName><![CDATA[" + openid + "]]></ToUserName>";
        strresponse += "<FromUserName><![CDATA[" + ToUserName + "]]></FromUserName>";
        strresponse += "<CreateTime>" + DateTime.Now.Ticks.ToString() + "</CreateTime>";

        if (EventKey.ToLower() == "pinpaigushi")
        {
            strresponse = strresponse + "<MsgType><![CDATA[news]]></MsgType>";
            strresponse = strresponse + "<ArticleCount>1</ArticleCount>";
            strresponse = strresponse + "<Articles>";
            strresponse = strresponse + "<item>";
            strresponse = strresponse + "<Title><![CDATA[远方的渴望-我们的故事!]]></Title> ";
            strresponse = strresponse + "<Description><![CDATA[在那里我度过了童年和少年时期,无忧无虑是主旋律,一碗热腾的羊肉泡馍也能让我想念一个月。镇上有很多人去外地做生意,我做喜欢的事情就是听他们在昏暗的灯光下讲外面的故事,这些故事激起我了对远方的渴望。那时候我就想一定要到山的那边看看外面的世界!]]></Description>";
            strresponse = strresponse + "<PicUrl><![CDATA[http://mmbiz.qpic.cn/mmbiz/UlVELicS5uOCeLQRLTGD3flqctQDHu8r63D59xicq0Q6nEMZicvNcbEWLJDmEHNgia2wPGLhB8r3Os68OG0Nxp923w/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1]]></PicUrl>";
            strresponse = strresponse + "<Url><![CDATA[https://mp.weixin.qq.com/s?__biz=MzA3NDIxMzQ3Ng==&mid=504458596&idx=1&sn=ae70fa1a772cd87f91375bf777676705&scene=1&srcid=04215PCf7d1fugOBEvFl5xW8]]></Url>";
            strresponse = strresponse + "</item>";

            strresponse = strresponse + "</Articles>";
        }
        else if (EventKey.ToLower() == "haibao" || EventKey.ToLower() == "hiabao")
        {
            Erweima er = new Erweima();

            if (!File.Exists("D://WeiXinSystem//media//haibao//" + openid + ".jpg"))
            {
                try
                {
                    er.CreatHaibaowithCode(openid, new DBCLASSFORWEIXIN.DAL.LocalWeixinUser().GetModel(openid).headimgurl);
                }
                catch (Exception ee)
                {
                    TXT_Help th = new TXT_Help();
                    th.ReFreshTXT(openid + ee.ToString(), "D:\\msgweixin\\Code" + DateTime.Now.ToString("mddhhmmssffff") + ".txt");
                }
            }
            string mid = "";
            mid         = new MeaidWxUpLoad().WxUpLoad("D://WeiXinSystem//media//haibao//" + openid + ".jpg", "image");
            strresponse = strresponse + "<MsgType><![CDATA[image]]></MsgType>";
            strresponse = strresponse + "<Image>";
            strresponse = strresponse + "<MediaId><![CDATA[" + mid + "]]></MediaId>";
            strresponse = strresponse + "</Image>";
        }

        strresponse += "</xml>";
        return(strresponse);
    }
Пример #4
0
    public string CreatHaibaowithCode(string openid, string hpic)
    {
        string   URL   = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" + WeixinApiClass.GetWeiXinInf.Getaccess_token();
        string   json  = "{\"action_name\":\"QR_LIMIT_STR_SCENE\", \"action_info\": {\"scene\": {\"scene_str\": \"" + openid + "\"}}}";
        string   rjson = WeixinApiClass.PostDataToUrl.PostXmlToUrl(URL, json);
        TXT_Help th    = new TXT_Help();

        //th.ReFreshTXT(rjson, "D:\\msg_err\\","c" + DateTime.Now.ToString("yyMMddHHmmssff") + ".txt");
        if (rjson.Contains("errcode"))
        {
            return("~/CodeWithOpenid/0.png");
        }
        else
        {
            JObject  jo     = JObject.Parse(rjson);
            string[] values = jo.Properties().Select(item => item.Value.ToString()).ToArray();
            string   ticket = values[0].ToString();
            string   url    = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" + ticket.Trim();
            DownFile d      = new DownFile();
            string   spath  = "D://LVWEIBA//WeixinSys//Media//code//" + openid + ".jpg";
            string   npath  = "D://LVWEIBA//WeixinSys//Media//haibao//" + openid + ".jpg";
            string   hpath  = "D://LVWEIBA//WeixinSys//Media//headimg//" + openid + ".jpg";
            if (File.Exists(npath))
            {
                return("http://wx.lvwei8.com/media/haibao/" + openid + ".jpg");
            }
            else
            {
                d.DownloadFile(url, spath, 300000);     //下载二维码
                if (hpic == "")                         //如果没有头像
                {
                    d.DownloadFile(url, hpath, 300000); //下载头像
                }
                else
                {
                    d.DownloadFile(hpic, hpath, 300000);//下载头像
                }

                CodeMaker cm = new CodeMaker();
                //cm.MakeCodeWithZhiwen(spath, npath);
                cm.MakeHaibaoWithOpenid(openid);

                return("http://wx.lvwei8.com/media/haibao/" + openid + ".jpg");
            }
        }
    }
Пример #5
0
    protected void Page_Load(object sender, EventArgs e)
    {
        TXT_Help th = new TXT_Help();

        string postStr = "";

        if (Request.HttpMethod.ToLower() == "post")
        {
            try
            {
                Stream s = System.Web.HttpContext.Current.Request.InputStream;
                byte[] b = new byte[s.Length];
                s.Read(b, 0, (int)s.Length);
                postStr = Encoding.UTF8.GetString(b);
                th.ReFreshTXT(postStr, "D:\\msgweixin\\CCPost" + DateTime.Now.ToString("mddhhmmssffff") + ".txt");


                XmlHelp xh = new XmlHelp();
                SortedDictionary <string, string> sParams = xh.GetInfoFromXml(postStr);
                string         openid      = sParams["FromUserName"].ToString();
                string         ToUserName  = sParams["ToUserName"].ToString();
                string         mesgtype    = sParams["MsgType"].ToString().Trim();
                string         strresponse = "";
                MessageCreater mc          = new MessageCreater();

                if (mesgtype == "text")
                {
                    strresponse = mc.CreatTxtMsg(openid, ToUserName, sParams["Content"].ToString().Trim());
                }
                else if (sParams["MsgType"].ToString().Trim() == "event")
                {
                    if (sParams["Event"].ToString().Trim() == "subscribe")//会员关注
                    {
                        string parentopenid = "";
                        if (sParams["EventKey"].ToString() != "")
                        {
                            parentopenid = sParams["EventKey"].ToString().Replace("qrscene_", "");
                        }

                        DBCLASSFORWEIXIN.Model.LocalWeixinUser SingleUserInf = new CheckUserAndUpdate().CheckUserAndInsert(openid, parentopenid);
                        UserAuthorizationModel userInfo = new UserAuthorizationModel();
                        userInfo.mobile = SingleUserInf.Tel;
                        userInfo.name   = SingleUserInf.nickname;
                        userInfo.openId = SingleUserInf.openid;
                        BaseClass.Common.Common.UserLoginSetCookie(userInfo.name, this, DateTime.Now.AddMinutes(30), userInfo);
                    }
                    else if (sParams["Event"].ToString().Trim() == "unsubscribe")//会员取消关注
                    {
                    }
                    else if (sParams["Event"].ToString().Trim() == "VIEW")//访问code跳转链接
                    {
                    }
                    else if (sParams["Event"].ToString().Trim() == "CLICK")//点击事件
                    {
                        strresponse = mc.CreatCliskMsg(openid, ToUserName, sParams["EventKey"].ToString().Trim());
                    }
                    else if (sParams["Event"].ToString().Trim() == "SCAN")//扫描事件
                    {
                        //strresponse = mc.DefaultTxtMsg(openid, ToUserName);jumptodaijinquan_C3
                        strresponse = mc.CreatScanMsg(openid, ToUserName, sParams["EventKey"].ToString().Trim());
                    }
                    else
                    {
                    }
                }
                else if (sParams["MsgType"].ToString().Trim().ToLower() == "voice")
                {
                }

                else if (sParams["MsgType"].ToString().Trim().ToLower() == "image")
                {
                }

                else
                {
                }

                WriteContent(strresponse);
            }
            catch (Exception mee)
            {
                th.ReFreshTXT(mee.ToString(), "D:\\msgweixin\\" + DateTime.Now.ToString("mddhhmmssffff") + ".txt");
            }
        }
        else if (Request.HttpMethod.ToLower() == "get")
        {
            string Token = "m9zUU0V4v10M920s024r4ubu1bJ9bUJ5"; //与微信公众账号后台的Token设置保持一致,区分大小写。
                                                               //获取微信服务器验证apiUrl参数
            string signature  = Request["signature"];
            string timestamp  = Request["timestamp"];
            string nonce      = Request["nonce"];
            string echostr    = Request["echostr"];
            string requestUrl = Request.QueryString["url"];
            string lineId     = Request.QueryString["lineid"];
            requestUrl = requestUrl + "&lineid=" + lineId;
            try
            {
                JS_SDK_Class jssdk = new JS_SDK_Class();
                timestamp = jssdk.getTimestamp();
                nonce     = jssdk.getNoncestr().ToLower();
                signature = jssdk.Creat_signature(requestUrl).ToLower();
                string jsapi_ticket = jssdk.Getjsapi_ticket();

                CheckSignature cc = new CheckSignature();
                //get method - 仅在微信后台填写URL验证时触发
                string result = "{\"signature\":\"" + signature + "\",\"timestamp\":\"" + timestamp + "\",\"nonce\":\"" + nonce + "\",\"jsapi_ticket\":\"" + jsapi_ticket + "\"}";
                log4netHelper.WriteDebugLog(typeof(API_WeixinApi), "jssdk授权返回", result + "requestUrl:" + requestUrl);
                WriteContent(result);
            }
            catch (Exception ex)
            {
                log4netHelper.WriteExceptionLog(typeof(API_WeixinApi), "WeixinApi", ex);
                WriteContent(echostr);
            }
        }
        else
        {
        }
    }
Пример #6
0
    protected void Page_Load(object sender, EventArgs e)
    {
        string   postStr = "";
        TXT_Help th      = new TXT_Help();

        if (Request.HttpMethod.ToLower() == "post")
        {
            Stream s = System.Web.HttpContext.Current.Request.InputStream;
            byte[] b = new byte[s.Length];
            s.Read(b, 0, (int)s.Length);
            postStr = Encoding.UTF8.GetString(b);

            XmlHelp xh = new XmlHelp();
            SortedDictionary <string, string> sParams = xh.GetInfoFromXml(postStr);
            try
            {
                if (sParams["return_code"].ToString() == "SUCCESS")
                {
                    BaseClass.Dal.ChongzhiLog sl = new BaseClass.Dal.ChongzhiLog();
                    bool isOrderValid            = sl.CZisok(sParams["out_trade_no"].ToString(), sParams["openid"].ToString());
                    BaseClass.Common.LoggerUtil.printLog("订单:" + sParams["out_trade_no"].ToString() + "处理状态:" + isOrderValid);
                    if (isOrderValid)
                    {
                        string  mid   = sParams["openid"].ToString();
                        decimal money = decimal.Parse(sParams["cash_fee"].ToString()) / 100;
                        LVWEIBA.DAL.order_list   oodd = new LVWEIBA.DAL.order_list();
                        LVWEIBA.Model.order_list oom  = oodd.GetModel(sParams["out_trade_no"].ToString());
                        //正式状态
                        oom.order_zt = "DCX";
                        oodd.Update(oom);
                        //发送短信通知用户和商户
                        var orderMx = new LVWEIBA.DAL.order_Mx().GetModel(sParams["out_trade_no"].ToString());
                        var member  = new LVWEIBA.BLL.MemberInfo().GetModel(mid);
                        //发送短信通知用户和商户(判断是门票还是尾单)
                        if (orderMx.ProType != null && (orderMx.ProType.Equals("DZP") || orderMx.ProType.Equals("ZZP")))
                        {
                            var bll = new LVWEIBA.DAL.ProviderSpot();
                            LVWEIBA.Model.ProviderSpot providerSpot = bll.GetModel(int.Parse(orderMx.productNum));
                            LVWEIBA.MessageService.NotifyUsersTicket(member.Tel, providerSpot.MasterTel, orderMx);
                            providerSpot.Num = providerSpot.Num - orderMx.ProCount;
                            bll.Update(providerSpot);
                            BaseClass.Common.LoggerUtil.printLog("修改余量: productNum is:" + orderMx.productNum + "TicketCount is:" + providerSpot.Num);
                        }
                        else
                        {
                            LVWEIBA.Model.LvULines lvModel = new LVWEIBA.DAL.LvULines().GetModel(orderMx.productNum);
                            LVWEIBA.MessageService.NotifyUsers(member.Tel, lvModel.LineMasterMoble, orderMx);
                            //修改线路余量
                            LVWEIBA.BLL.LvULines lvubLL = new LVWEIBA.BLL.LvULines();
                            if (lvModel != null)
                            {
                                lvModel.adultTicketCount = lvModel.adultTicketCount - orderMx.adultCount;
                                lvModel.puppyTicketCount = lvModel.puppyTicketCount - orderMx.puppyCount;
                                lvubLL.Update(lvModel);
                                BaseClass.Common.LoggerUtil.printLog("修改余量: productNum is:" + orderMx.productNum + "adultTicketCount is:" + lvModel.adultTicketCount + "puppyTicketCount is:" + lvModel.puppyTicketCount);
                            }
                        }
                        //返回成功
                        Response.Write(returnOKMessage());
                    }
                    else
                    {
                        th.ReFreshTXT(postStr, "D:\\msg\\zhifuErr\\", "错误CZ" + DateTime.Now.ToString("yyMMddHHmmssff") + ".txt");
                        Response.Write(returnFailMessage());
                    }
                }
                else
                {
                    //一系列还原操作
                    moneyUnFreeze(sParams["out_trade_no"].ToString(), sParams["openid"].ToString());
                    couponUnUse(sParams["out_trade_no"].ToString());
                    Response.Write(returnFailMessage());
                }
            }
            catch (Exception ex)
            {
                BaseClass.Common.LoggerUtil.printLog("订单" + sParams["out_trade_no"].ToString() + "处理错误," + "ex:" + ex.Message + ex.StackTrace);
                //一系列还原操作
                moneyUnFreeze(sParams["out_trade_no"].ToString(), sParams["openid"].ToString());
                couponUnUse(sParams["out_trade_no"].ToString());
                Response.Write(returnFailMessage());
            }
        }
    }