See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 11838|Vastuse: 1

12306 piletikogumise tarkvaraga seotud liidesed ja andmevormingud

[Kopeeri link]
Postitatud 27.09.2017 10:15:39 | | |

Lähme otse asja juurde, siin tahan peamiselt rääkida praeguste 12306 funktsioonide liidestest ja andmeformaatidest. See on peamiselt jagatud viieks mooduliks: sisselogimine ja kontaktide saamine, piletite kontrollimine, broneerimine ja lõpetamata tellimuste pärimine, ning mõnede teiste mitteoluliste liideste puhul saab neid otse ignoreerida, näiteks tuvastada, kas kinnituskood on õige, küsida ülejäänud piletite arv jne, see artikkel on kirja pandud ja vajadusel saad seda ise uurida.
       1. Logi sisse
             Sisselogimine on peamiselt selleks, et saada sessioon ja hoida ühendust serveriga. Sisselogimiseks on kaks peamist sammu
             Esiteks, hangi sisselogimise kinnituskood
                     Meetod: GET
                     Liides: https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew.do?module=login&rand=sjrand&
                     Parameetrid: kopeeritud, sama
                     Tagasi: binaarne pildivoog
             Teine sisselogimine
                    Meetod: POST
                    Liides: https://kyfw.12306.cn/otn/login/loginAysnSuggest
                    Parameetrid: 1. loginUserDTO.user_name Kasutajanimi
                               2. randCode verifitseerimiskood
                               3. userDTO.password parool
                     Tagastab: json-string, mis määrab, kas sisselogimine õnnestub
        2. Hangi kontaktläätsed
                    Meetod: GET
                    Liides: https://kyfw.12306.cn/otn/passengers/init
                    Parameetrid: Puuduvad
                    Return: html-fail, kus leiad muutuja, mis on json-formaadis ja mida saab kasutajaobjektiks parsida
        3. Piletite kontrollimine
                    Meetod: GET
                    Liides: https://kyfw.12306.cn/otn/leftTicket/query?
                    Parameetrid: leftTicketDTO.train_date: Pileti kontrolli kuupäev
                               leftTicketDTO.from_station: Stardijaam (tähestikuline kood)
                               leftTicketDTO.to_station: Sihtjaam (tähestikukood)
                               purpose_codes:TÄISKASVANUD
                    Tagasitulek: Naaseb JSON-formaati ja analüüsib otse
         4. Broneering
                   Ametisse nimetamine on jagatud kuueks sammuks, ükshaaval, omavahel seotud
                   Esiteks: Eelesitamine
                            Meetod: POST
                            Liides: https://kyfw.12306.cn/otn/leftTicket/submitOrderRequest
                            Parameeter: secretStr: saadud piletikontrollist (üks iga rongi kohta, iga kord erinev, tuleb reaalajas analüüsida)
                                      train_date: Broneerimise kuupäev
                                     back_train_date: Tagasituleku kuupäev
                                      tour_flag: DC
                                      purpose_codes:TÄISKASVANUD
                                      query_from_station_name: Väljumisjaam
                                      query_to_station_name: Sihtjaam
                                      Määratlemata: tühi string
                           Tagasitulek: tagastab JSON-formaadi, et hinnata, kas esitamine on edukas
                    Teiseks: Hangi vastavad parameetrid
                            Meetod: POST
                            Liides: https://kyfw.12306.cn/otn/confirmPassenger/initDc
                             Parameetrid:
                              _json_att: Tühi string
                             Tagasta: html-fail, mis on kasulik globalRepeatSubmitToken esimestes ridades ja ticketInfoForPassengerForm muutuja väärtuse saamisel allpool, on json-formaadis, kust purpose_codes, key_check_isChange, leftTicketStr, train_locatio{filter} n et valmistuda järgmisteks kohustusteks
                    Kolmandaks: Hangi esitamise kinnituskood
                              Meetod: GET
                             Liides: https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew.do?module=passenger&rand=randp&
                             Parameetrid:
                                      Puudub
                             Return: Tagastab pildi binaarvoogu, täpselt nagu sisselogimise kinnituskood
                     Neljandaks: Kontrollige, kas esitatud taotlus on kinnitatav
                             Meetod: POST
                              Liides: https://kyfw.12306.cn/otn/confirmPassenger/checkOrderInfo
                              Parameetrid:
                                       cancel_flag:2
                                       bed_level_order_num:0000000000000000000000000000000
                                       passengerTicketStr: istmetüüp, 0, piletitüüp, nimi, identiteet, telefon, N (kui neid on rohkem kui üks, eraldatud komaga)
                                       oldPassengerStr: nimi, ID tüüp, ID number, kasutajatüüp
                                       randCode: Ajastatud verifitseerimiskood
                                       tour_flag:dc
                                       _json_att: Tühi string
                                       REPEAT_SUBMIT_TOKEN: Võta see eelmisest sammust
                              Return: json formaadis, et määrata, kas seda saab kinnitada
                    Viiendaks: Kinnita esitamine
                                Meetod: POST
                                Liides: https://kyfw.12306.cn/otn/confirmPassenger/confirmSingleForQueue
                                Parameetrid:
   
                                       passengerTicketStr: istmetüüp, 0, piletitüüp, nimi, identiteet, telefon, N (kui neid on rohkem kui üks, eraldatud komaga)
                                       oldPassengerStr: nimi, ID tüüp, ID number, kasutajatüüp
                                       randCode: Ajastatud verifitseerimiskood
                                       purpose_codes: 3. samm, et selle kätte saada
                                       key_check_isChange: Sama sama
                                       leftTicketStr; Sama
                                       train_locatio{filter}n; Sama
                                       REPEAT_SUBMIT_TOKEN: Sama
                                       _json_att: Tühi string   
                               Tagastus: json-formaat, määra, kas esitamine õnnestub, tagasta ooteaeg ja helista iga kindla perioodi järel 6. samm, et tagastada töötlemistulemus
                     Kuues: Küsitlus esitamistulemuste saamiseks
                               Meetod: GET
                               Liides: https://kyfw.12306.cn/otn/confirmPassenger/queryOrderWaitTime?
                               Parameetrid:
   
                                       Juhuslikud: Juhuslikud arvud
                                       tourFlag:dc   
                                       REPEAT_SUBMIT_TOKEN: Kolmas osa tuleb omandada
                                       _json_att: Tühi string   
                               Tagasta: json formaat, tagasta ooteaeg, kui waitTime on väiksem kui 0, saa tellimuse info orderId, kui see on suurem kui 0, jätka küsitlust
          5. Uuri lõpetamata tellimuste kohta
                 Meetod: POST
                 Liides: https://kyfw.12306.cn/otn/queryOrder/queryMyOrderNoComplete
                 Parameetrid:
                _json_att: Tühi string   
                Tagastus: JSON formaat, sisaldab tellimuse infot ja analüüsib otse

           Muide, 5 funktsiooni on põhimõtteliselt sisse toodud, kuid nüüd on need üles pandud lihtsalt selleks, et õppida kasutama ega rünnata pahatahtlikult, lisaks muutub 12306 veebilehe liides väga tihti ning praegu avaldatud liides võib homme muutuda, seega on oluline õppida haarama asjakohaseid liideseid ja andmeid ning analüüsima andmeid, et saada vastavad parameetrid ja tulemused. Siin kasutan peamiselt firebugi, võrguanalüüsi tööriista, mis tuleb krom-brauseriga, samuti fiddleri ja wiresharki tööriistu ning juhiseid seotud tööriistade kasutamiseks, lihtsalt otsi internetist.
            Lõpetuseks, kurdame, 12306 veebileht kasutab CDN staatilist vahemällu salvestamise tehnoloogiat, mis võimaldab valida vastavad serverid vastavalt koormuse tasakaalustamisele erinevates piirkondades, ribalaiusele ja koormusele, st 12306 servereid on üle kogu riigi. Iga kasutaja võib kasutada erinevaid servereid, kuid ainult staatilised lehed ja js, css ja pildid jne, kuid iga server hoiab sessiooni otse jagatuna, st kui logid sisse ühte serverisse, teistes serverites Eelnev on samuti samaväärne maandumisega. Seega on kõige parem valida server dünaamiliselt nii, et vahemälu ajad oleksid ajakohased, stress minimaalne ja andmed reaalajas paremad. Minu rakenduses, kui sa ei päri korra, vahetad serveri IP-aadressi korra. Mis puudutab asjakohast tehnoloogiat, siis avaldan selle hiljem. Aga selle artikli sisu on piisav õppimiseks. Konkreetset IP-aadressi näed http://tool.chinaz.com/dns.




Eelmine:{:1_3:} {:1_3:} Õnnelik päev
Järgmine:Kuidas js objekti kopeerib?
Postitatud 28.09.2017 09:19:34 |
Kas ülemus võtab pileteid?
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com