• 国家电网电费查询


      最近在老家出差,老家电网改革,使用了智能电表,把老式电表全部换了还给了一个客户号,

    终于也可以在支付宝什么的交电费了,但我们那里支付宝还不能查询剩余多少钱,这让人很恼火,

    于是就来国家电网http://www.95598.cn/person/index.shtml 查询了一下,发现需要客户号、查询密码、验证码,客户号我知道,查询密码是不知道的,随便输入,提示错误,

    于是打95598问了下客服,得知了默认密码是6个8,查询了一下,出来消息了,但想每次都上电脑上查,貌似有点不方便,就想自己做一个模拟提交的,

    模拟提交就要解决验证码识别的问题,看看也不复杂,就捣鼓了一会,然后分析提交的信息及url,

    然后看到一个http://www.95598.cn/95598/per/shortCut/getShortCutAccount 这个地址,只传了2个参数,一个客户号,还有一个不知道是什么,

    就直接测试了下这个url,post提交了两个参数,然后居然信息直接出来了,

    还是josn格式。。。客户名称、电表地址、电表号,余额、违约金、欠费信息,还有部分类型的客户居然还带近期的电费记录,

    到这我就想问特么你之前验证的查询密码和验证码了 干什么用的? 只是个慌子吗?我书都的少,你别骗我,這么大一个国家电网,居然这个查询密码是个渣?

    好吧 代码我也上上来吧,但没什么技术含量了

    /// <summary>
            /// 获取电费
            /// </summary>
            /// <param name="consNo">客户号</param>
            /// <returns></returns>
            public static void GetPowerRate<T>(T consNo)
            {
                HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create("http://www.95598.cn/95598/per/shortCut/getShortCutAccount");
                httpWebRequest.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
                httpWebRequest.Method = "POST";
                var data = System.Text.Encoding.UTF8.GetBytes(string.Format("consNo={0}&orgNo=43101", consNo));
                using (Stream stream = httpWebRequest.GetRequestStream())
                {
                    stream.Write(data, 0, data.Length);
                    stream.Close();
                }
                data = null;
                Result result = new Result();
                try
                {
                    HttpWebResponse webResponse = httpWebRequest.GetResponse() as HttpWebResponse;
                    using (System.IO.StreamReader stream = new StreamReader(webResponse.GetResponseStream()))
                    {
                        result = Newtonsoft.Json.JsonConvert.DeserializeObject<Result>(stream.ReadToEnd());
                    }
                    httpWebRequest = null;
                    webResponse.Close();
                    webResponse = null;
                }
                catch { }
                result.billInfo.consNo = consNo.ToString();
                Write(result);
            }

    返回json 示例:

    "{"statusCode":200,"orgNo":"43101","billInfo":{"errorCode":null,"count":"21","errorMessage":null,"orgNo":"xxx52","consNo":"1xxx4","consName":"唐xx","elecAddr":"岳麓-长沙市岳麓区望岳路xxx","consSortCode":"城网低压居民","rtnCode":null,"rtnMsg":null,"acctOrgNo":null,"purchaseType":"普通缴费","balLists":[
    {"statusCode":"非锁定","rcvblAmtId":"2014000360600225","rcvblAmt":"27.64","owePenalty":"0","rcvedAmt":"27.64","oweAmt":"0","rcvblYm":"201412","rcvedPenalty":null,"billType":"正常电费","addBal":null},
    {"statusCode":"非锁定","rcvblAmtId":"2015000384456503","rcvblAmt":"27.64","owePenalty":"0","rcvedAmt":"27.64","oweAmt":"0","rcvblYm":"201501","rcvedPenalty":null,"billType":"正常电费","addBal":null},
    {"statusCode":"非锁定","rcvblAmtId":"2015000417908221","rcvblAmt":"1.76","owePenalty":"0","rcvedAmt":"1.76","oweAmt":"0","rcvblYm":"201503","rcvedPenalty":null,"billType":"正常电费","addBal":null},
    {"statusCode":"非锁定","rcvblAmtId":"2015000458719783","rcvblAmt":"32.93","owePenalty":"0","rcvedAmt":"32.93","oweAmt":"0","rcvblYm":"201505","rcvedPenalty":null,"billType":"正常电费","addBal":null},
    {"statusCode":"非锁定","rcvblAmtId":"2015000475907830","rcvblAmt":"33.52","owePenalty":"0","rcvedAmt":"33.52","oweAmt":"0","rcvblYm":"201506","rcvedPenalty":null,"billType":"正常电费","addBal":null},
    {"statusCode":"非锁定","rcvblAmtId":"2015000494109461","rcvblAmt":"114.13","owePenalty":"0","rcvedAmt":"114.13","oweAmt":"0","rcvblYm":"201507","rcvedPenalty":null,"billType":"正常电费","addBal":null},
    {"statusCode":"非锁定","rcvblAmtId":"2015000517111477","rcvblAmt":"84.67","owePenalty":"0","rcvedAmt":"5.87","oweAmt":"78.8","rcvblYm":"201508","rcvedPenalty":null,"billType":"正常电费","addBal":null},
    {"statusCode":"非锁定","rcvblAmtId":"2015000400353270","rcvblAmt":"11.76","owePenalty":"0","rcvedAmt":"11.76","oweAmt":"0","rcvblYm":"201502","rcvedPenalty":null,"billType":"正常电费","addBal":null},
    {"statusCode":"非锁定","rcvblAmtId":"2015000435879133","rcvblAmt":"8.23","owePenalty":"0","rcvedAmt":"8.23","oweAmt":"0","rcvblYm":"201504","rcvedPenalty":null,"billType":"正常电费","addBal":null},
    {"statusCode":"非锁定","rcvblAmtId":"2013000201613636","rcvblAmt":"148.59","owePenalty":"0","rcvedAmt":"148.59","oweAmt":"0","rcvblYm":"201312","rcvedPenalty":null,"billType":"正常电费","addBal":null},
    {"statusCode":"非锁定","rcvblAmtId":"2014000206170080","rcvblAmt":"288.76","owePenalty":"0","rcvedAmt":"288.76","oweAmt":"0","rcvblYm":"201401","rcvedPenalty":null,"billType":"正常电费","addBal":null},
    {"statusCode":"非锁定","rcvblAmtId":"2014000213433834","rcvblAmt":"178.57","owePenalty":"0","rcvedAmt":"178.57","oweAmt":"0","rcvblYm":"201402","rcvedPenalty":null,"billType":"正常电费","addBal":null},
    {"statusCode":"非锁定","rcvblAmtId":"2014000220409307","rcvblAmt":"0.59","owePenalty":"0","rcvedAmt":"0.59","oweAmt":"0","rcvblYm":"201403","rcvedPenalty":null,"billType":"正常电费","addBal":null},
    {"statusCode":"非锁定","rcvblAmtId":"2014000224346917","rcvblAmt":"9.41","owePenalty":"0","rcvedAmt":"9.41","oweAmt":"0","rcvblYm":"201404","rcvedPenalty":null,"billType":"正常电费","addBal":null},
    {"statusCode":"非锁定","rcvblAmtId":"2014000235525969","rcvblAmt":"22.34","owePenalty":"0","rcvedAmt":"22.34","oweAmt":"0","rcvblYm":"201405","rcvedPenalty":null,"billType":"正常电费","addBal":null},
    {"statusCode":"非锁定","rcvblAmtId":"2014000250824152","rcvblAmt":"24.7","owePenalty":"0","rcvedAmt":"24.7","oweAmt":"0","rcvblYm":"201406","rcvedPenalty":null,"billType":"正常电费","addBal":null},
    {"statusCode":"非锁定","rcvblAmtId":"2014000265451425","rcvblAmt":"32.34","owePenalty":"0","rcvedAmt":"32.34","oweAmt":"0","rcvblYm":"201407","rcvedPenalty":null,"billType":"正常电费","addBal":null},
    {"statusCode":"非锁定","rcvblAmtId":"2014000287619069","rcvblAmt":"100.55","owePenalty":"0","rcvedAmt":"100.55","oweAmt":"0","rcvblYm":"201408","rcvedPenalty":null,"billType":"正常电费","addBal":null},
    {"statusCode":"非锁定","rcvblAmtId":"2014000302284130","rcvblAmt":"97.02","owePenalty":"0","rcvedAmt":"97.02","oweAmt":"0","rcvblYm":"201409","rcvedPenalty":null,"billType":"正常电费","addBal":null},
    {"statusCode":"非锁定","rcvblAmtId":"2014000329656994","rcvblAmt":"34.1","owePenalty":"0","rcvedAmt":"34.1","oweAmt":"0","rcvblYm":"201410","rcvedPenalty":null,"billType":"正常电费","addBal":null},
    {"statusCode":"非锁定","rcvblAmtId":"2014000342784003","rcvblAmt":"23.52","owePenalty":"0","rcvedAmt":"23.52","oweAmt":"0","rcvblYm":"201411","rcvedPenalty":null,"billType":"正常电费","addBal":null}],
    "acctBal":"0","chargeBal":null,"freezeBal":null,"oweAmtSum":"78.8","owePenaltySum":"0","purchaseInfos":null,"levDisBeginYm":null,"levDisEndYm":null,"levDisAmt":null,"isLevDisFlag":null,"limitReason":null},"date":"2015-08-18"}"////

    示例中部分信息被我用xx代替了,

    字段说明:

    consN(客户号)、consName(客户姓名)、elecAddr(电表地址)、consSortCode类型、 acctBal(账户余额)、oweAmtSum(账户欠费)、

    statusCode 固定为200 不管客户号有没有都是200  然后就是billInfo消息中如果consNo(客户号)为null则表示没有客户,

    农村的返回稍微有点一样,但关键信息都有,今天不捣鼓了,洗洗睡了

  • 相关阅读:
    android的Fragment
    c#接口深入一步探究其作用,适合新人了解
    浅谈c#接口的问题,适合新手来了解
    再谈“我是怎么招聘程序员的”(下)转
    再谈“我是怎么招聘程序员的”(上)转
    关于如何写出优秀的代码(转)
    winserver服务器安全部署详细文档
    VS高效的调试技巧
    常用正则表达式(转自月光博客)
    JavaScript数组方法的兼容性写法 汇总:indexOf()、forEach()、map()、filter()、some()、every()
  • 原文地址:https://www.cnblogs.com/dotnet-org-cn/p/4741053.html
Copyright © 2020-2023  润新知