最近在老家出差,老家電網(wǎng)改革,使用了智能電表,把老式電表全部換了還給了一個(gè)客戶(hù)號(hào),
終于也可以在支付寶什么的交電費(fèi)了,但我們那里支付寶還不能查詢(xún)剩余多少錢(qián),這讓人很惱火,
于是就來(lái)國(guó)家電網(wǎng)http://www.95598.cn/person/index.shtml 查詢(xún)了一下,發(fā)現(xiàn)需要客戶(hù)號(hào)、查詢(xún)密碼、驗(yàn)證碼,客戶(hù)號(hào)我知道,查詢(xún)密碼是不知道的,隨便輸入,提示錯(cuò)誤,
于是打95598問(wèn)了下客服,得知了默認(rèn)密碼是6個(gè)8,查詢(xún)了一下,出來(lái)消息了,但想每次都上電腦上查,貌似有點(diǎn)不方便,就想自己做一個(gè)模擬提交的,
模擬提交就要解決驗(yàn)證碼識(shí)別的問(wèn)題,看看也不復(fù)雜,就搗鼓了一會(huì),然后分析提交的信息及url,
然后看到一個(gè)http://www.95598.cn/95598/per/shortCut/getShortCutAccount 這個(gè)地址,只傳了2個(gè)參數(shù),一個(gè)客戶(hù)號(hào),還有一個(gè)不知道是什么,
就直接測(cè)試了下這個(gè)url,post提交了兩個(gè)參數(shù),然后居然信息直接出來(lái)了,
還是josn格式。。。客戶(hù)名稱(chēng)、電表地址、電表號(hào),余額、違約金、欠費(fèi)信息,還有部分類(lèi)型的客戶(hù)居然還帶近期的電費(fèi)記錄,
到這我就想問(wèn)特么你之前驗(yàn)證的查詢(xún)密碼和驗(yàn)證碼了 干什么用的? 只是個(gè)慌子嗎?我書(shū)都的少,你別騙我,這么大一個(gè)國(guó)家電網(wǎng),居然這個(gè)查詢(xún)密碼是個(gè)渣?
好吧 代碼我也上上來(lái)吧,但沒(méi)什么技術(shù)含量了
/// <summary> /// 獲取電費(fèi) /// </summary> /// <param name="consNo">客戶(hù)號(hào)</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/":/"岳麓-長(zhǎng)沙市岳麓區(qū)望岳路xxx/",/"consSortCode/":/"城網(wǎng)低壓居民/",/"rtnCode/":null,/"rtnMsg/":null,/"acctOrgNo/":null,/"purchaseType/":/"普通繳費(fèi)/",/"balLists/":[{/"statusCode/":/"非鎖定/",/"rcvblAmtId/":/"2014000360600225/",/"rcvblAmt/":/"27.64/",/"owePenalty/":/"0/",/"rcvedAmt/":/"27.64/",/"oweAmt/":/"0/",/"rcvblYm/":/"201412/",/"rcvedPenalty/":null,/"billType/":/"正常電費(fèi)/",/"addBal/":null},{/"statusCode/":/"非鎖定/",/"rcvblAmtId/":/"2015000384456503/",/"rcvblAmt/":/"27.64/",/"owePenalty/":/"0/",/"rcvedAmt/":/"27.64/",/"oweAmt/":/"0/",/"rcvblYm/":/"201501/",/"rcvedPenalty/":null,/"billType/":/"正常電費(fèi)/",/"addBal/":null},{/"statusCode/":/"非鎖定/",/"rcvblAmtId/":/"2015000417908221/",/"rcvblAmt/":/"1.76/",/"owePenalty/":/"0/",/"rcvedAmt/":/"1.76/",/"oweAmt/":/"0/",/"rcvblYm/":/"201503/",/"rcvedPenalty/":null,/"billType/":/"正常電費(fèi)/",/"addBal/":null},{/"statusCode/":/"非鎖定/",/"rcvblAmtId/":/"2015000458719783/",/"rcvblAmt/":/"32.93/",/"owePenalty/":/"0/",/"rcvedAmt/":/"32.93/",/"oweAmt/":/"0/",/"rcvblYm/":/"201505/",/"rcvedPenalty/":null,/"billType/":/"正常電費(fèi)/",/"addBal/":null},{/"statusCode/":/"非鎖定/",/"rcvblAmtId/":/"2015000475907830/",/"rcvblAmt/":/"33.52/",/"owePenalty/":/"0/",/"rcvedAmt/":/"33.52/",/"oweAmt/":/"0/",/"rcvblYm/":/"201506/",/"rcvedPenalty/":null,/"billType/":/"正常電費(fèi)/",/"addBal/":null},{/"statusCode/":/"非鎖定/",/"rcvblAmtId/":/"2015000494109461/",/"rcvblAmt/":/"114.13/",/"owePenalty/":/"0/",/"rcvedAmt/":/"114.13/",/"oweAmt/":/"0/",/"rcvblYm/":/"201507/",/"rcvedPenalty/":null,/"billType/":/"正常電費(fèi)/",/"addBal/":null},{/"statusCode/":/"非鎖定/",/"rcvblAmtId/":/"2015000517111477/",/"rcvblAmt/":/"84.67/",/"owePenalty/":/"0/",/"rcvedAmt/":/"5.87/",/"oweAmt/":/"78.8/",/"rcvblYm/":/"201508/",/"rcvedPenalty/":null,/"billType/":/"正常電費(fèi)/",/"addBal/":null},{/"statusCode/":/"非鎖定/",/"rcvblAmtId/":/"2015000400353270/",/"rcvblAmt/":/"11.76/",/"owePenalty/":/"0/",/"rcvedAmt/":/"11.76/",/"oweAmt/":/"0/",/"rcvblYm/":/"201502/",/"rcvedPenalty/":null,/"billType/":/"正常電費(fèi)/",/"addBal/":null},{/"statusCode/":/"非鎖定/",/"rcvblAmtId/":/"2015000435879133/",/"rcvblAmt/":/"8.23/",/"owePenalty/":/"0/",/"rcvedAmt/":/"8.23/",/"oweAmt/":/"0/",/"rcvblYm/":/"201504/",/"rcvedPenalty/":null,/"billType/":/"正常電費(fèi)/",/"addBal/":null},{/"statusCode/":/"非鎖定/",/"rcvblAmtId/":/"2013000201613636/",/"rcvblAmt/":/"148.59/",/"owePenalty/":/"0/",/"rcvedAmt/":/"148.59/",/"oweAmt/":/"0/",/"rcvblYm/":/"201312/",/"rcvedPenalty/":null,/"billType/":/"正常電費(fèi)/",/"addBal/":null},{/"statusCode/":/"非鎖定/",/"rcvblAmtId/":/"2014000206170080/",/"rcvblAmt/":/"288.76/",/"owePenalty/":/"0/",/"rcvedAmt/":/"288.76/",/"oweAmt/":/"0/",/"rcvblYm/":/"201401/",/"rcvedPenalty/":null,/"billType/":/"正常電費(fèi)/",/"addBal/":null},{/"statusCode/":/"非鎖定/",/"rcvblAmtId/":/"2014000213433834/",/"rcvblAmt/":/"178.57/",/"owePenalty/":/"0/",/"rcvedAmt/":/"178.57/",/"oweAmt/":/"0/",/"rcvblYm/":/"201402/",/"rcvedPenalty/":null,/"billType/":/"正常電費(fèi)/",/"addBal/":null},{/"statusCode/":/"非鎖定/",/"rcvblAmtId/":/"2014000220409307/",/"rcvblAmt/":/"0.59/",/"owePenalty/":/"0/",/"rcvedAmt/":/"0.59/",/"oweAmt/":/"0/",/"rcvblYm/":/"201403/",/"rcvedPenalty/":null,/"billType/":/"正常電費(fèi)/",/"addBal/":null},{/"statusCode/":/"非鎖定/",/"rcvblAmtId/":/"2014000224346917/",/"rcvblAmt/":/"9.41/",/"owePenalty/":/"0/",/"rcvedAmt/":/"9.41/",/"oweAmt/":/"0/",/"rcvblYm/":/"201404/",/"rcvedPenalty/":null,/"billType/":/"正常電費(fèi)/",/"addBal/":null},{/"statusCode/":/"非鎖定/",/"rcvblAmtId/":/"2014000235525969/",/"rcvblAmt/":/"22.34/",/"owePenalty/":/"0/",/"rcvedAmt/":/"22.34/",/"oweAmt/":/"0/",/"rcvblYm/":/"201405/",/"rcvedPenalty/":null,/"billType/":/"正常電費(fèi)/",/"addBal/":null},{/"statusCode/":/"非鎖定/",/"rcvblAmtId/":/"2014000250824152/",/"rcvblAmt/":/"24.7/",/"owePenalty/":/"0/",/"rcvedAmt/":/"24.7/",/"oweAmt/":/"0/",/"rcvblYm/":/"201406/",/"rcvedPenalty/":null,/"billType/":/"正常電費(fèi)/",/"addBal/":null},{/"statusCode/":/"非鎖定/",/"rcvblAmtId/":/"2014000265451425/",/"rcvblAmt/":/"32.34/",/"owePenalty/":/"0/",/"rcvedAmt/":/"32.34/",/"oweAmt/":/"0/",/"rcvblYm/":/"201407/",/"rcvedPenalty/":null,/"billType/":/"正常電費(fèi)/",/"addBal/":null},{/"statusCode/":/"非鎖定/",/"rcvblAmtId/":/"2014000287619069/",/"rcvblAmt/":/"100.55/",/"owePenalty/":/"0/",/"rcvedAmt/":/"100.55/",/"oweAmt/":/"0/",/"rcvblYm/":/"201408/",/"rcvedPenalty/":null,/"billType/":/"正常電費(fèi)/",/"addBal/":null},{/"statusCode/":/"非鎖定/",/"rcvblAmtId/":/"2014000302284130/",/"rcvblAmt/":/"97.02/",/"owePenalty/":/"0/",/"rcvedAmt/":/"97.02/",/"oweAmt/":/"0/",/"rcvblYm/":/"201409/",/"rcvedPenalty/":null,/"billType/":/"正常電費(fèi)/",/"addBal/":null},{/"statusCode/":/"非鎖定/",/"rcvblAmtId/":/"2014000329656994/",/"rcvblAmt/":/"34.1/",/"owePenalty/":/"0/",/"rcvedAmt/":/"34.1/",/"oweAmt/":/"0/",/"rcvblYm/":/"201410/",/"rcvedPenalty/":null,/"billType/":/"正常電費(fèi)/",/"addBal/":null},{/"statusCode/":/"非鎖定/",/"rcvblAmtId/":/"2014000342784003/",/"rcvblAmt/":/"23.52/",/"owePenalty/":/"0/",/"rcvedAmt/":/"23.52/",/"oweAmt/":/"0/",/"rcvblYm/":/"201411/",/"rcvedPenalty/":null,/"billType/":/"正常電費(fèi)/",/"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代替了,
字段說(shuō)明:
consN(客戶(hù)號(hào))、consName(客戶(hù)姓名)、elecAddr(電表地址)、consSortCode類(lèi)型、 acctBal(賬戶(hù)余額)、oweAmtSum(賬戶(hù)欠費(fèi))、
statusCode 固定為200 不管客戶(hù)號(hào)有沒(méi)有都是200 然后就是billInfo消息中如果consNo(客戶(hù)號(hào))為null則表示沒(méi)有客戶(hù),
農(nóng)村的返回稍微有點(diǎn)一樣,但關(guān)鍵信息都有,今天不搗鼓了,洗洗睡了
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注