Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 11838|Yanıt: 1

12306 bilet toplama yazılımı ile ilgili arayüzler ve veri formatları

[Bağlantıyı kopyala]
Yayınlandı 27.09.2017 10:15:39 | | |

Doğrudan konuya gelelim, burada esas olarak mevcut 12306 fonksiyonlarının arayüzleri ve veri formatlarından bahsetmek istiyorum. Oyun beş modüle ayrılmıştır: giriş yapma, iletişim kurma, bilet kontrolü, rezervasyon ve tamamlanmamış siparişleri sorgulama; önemli olmayan bazı diğer arayüzler ise doğrudan görmezden gelebilirsiniz, örneğin doğrulama kodunun doğru olup olmadığını tespit etmek, kalan bilet sayısını talep etmek vb., bu makale yazılmış ve ihtiyacınız olursa kendiniz de inceleyebilirsiniz.
       1. Giriş
             Giriş yapmak esas olarak oturumu almak ve sunucuyla iletişimi sürdürmek içindir. Giriş yapmak için iki ana adım vardır
             Öncelikle, giriş doğrulama kodunu alın
                     Yöntem: GET
                     Arayüz: https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew.do?module=login&rand=sjrand&
                     Parametreler: kopyala, aynı
                     Geri: İkili resim akışı
             İkinci Giriş
                    Yöntem: POST
                    Arayüz: https://kyfw.12306.cn/otn/login/loginAysnSuggest
                    Parametreler: 1. loginUserDTO.user_name Kullanıcı adı
                               2. randCode doğrulama kodu
                               3. userDTO.password şifresi
                     Returns: json dizisi, girişin başarılı olup olmadığını belirleyebilen
        2. Bağlantı kur
                    Yöntem: GET
                    Arayüz: https://kyfw.12306.cn/otn/passengers/init
                    Parametreler: Yok
                    Return: html dosyası, içinde json formatında bir değişken bulabilirsiniz ve kullanıcı nesnesine ayrıştırılabilir
        3. Bilet kontrolü
                    Yöntem: GET
                    Arayüz: https://kyfw.12306.cn/otn/leftTicket/query?
                    Parametreler: leftTicketDTO.train_date: Bilet kontrolü tarihi
                               leftTicketDTO.from_station: Başlangıç İstasyonu (Alfabetik Kod)
                               leftTicketDTO.to_station: Varış istasyonu (alfabe kodu)
                               purpose_codes:YETIŞKIN
                    Dönüş: JSON formatına geri dönür ve doğrudan ayrıştırır
         4. Rezervasyon
                   Randevu 6 adıma ayrılır, birer teker, birbirleriyle bağlantılıdır
                   İlk: Ön Başvuru
                            Yöntem: POST
                            Arayüz: https://kyfw.12306.cn/otn/leftTicket/submitOrderRequest
                            Parametre: secretStr: bilet kontrolünden elde edilir (her tren için bir tane ve her seferinde farklı, gerçek zamanlı olarak analiz edilmeli)
                                      train_date: Rezervasyon tarihi
                                     back_train_date: Dönüş tarihi
                                      tour_flag: DC
                                      purpose_codes:YETIŞKIN
                                      query_from_station_name: Kalkış istasyonu
                                      query_to_station_name: Varış istasyonu
                                      tanımlanmamış: boş bir dizi
                           Dönüş: Gönderimin başarılı olup olmadığını belirlemek için JSON formatını döndürür
                    İkincisi: Karşılık gelen parametreleri alın
                            Yöntem: POST
                            Arayüz: https://kyfw.12306.cn/otn/confirmPassenger/initDc
                             Parametreler:
                              _json_att: Boş dizi
                             Return: html dosyası, globalRepeatSubmitToken ayrıştırırken ve aşağıdan ticketInfoForPassengerForm değişkeninin değerini almak için faydalı olan html dosyası, json formatındadır, buradan purpose_codes, key_check_isChange, leftTicketStr, train_locatio{filter} n Aşağıdaki taahhütlere hazırlanmak için
                    Üçüncüsü: Gönderim doğrulama kodunu alın
                              Yöntem: GET
                             Arayüz: https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew.do?module=passenger&rand=randp&
                             Parametreler:
                                      Hiçbiri yok
                             Return: Giriş doğrulama kodu gibi görüntü ikili akışını döndürür
                     Dördüncüsü: Başvurunun onaylanıp onaylanamadığını kontrol edin
                             Yöntem: POST
                              Arayüz: https://kyfw.12306.cn/otn/confirmPassenger/checkOrderInfo
                              Parametreler:
                                       cancel_flag:2
                                       bed_level_order_num:0000000000000000000000000000000
                                       ýolagçyTicketStr: Koltuk tipi, 0, bilet türü, isim, kimlik, telefon, N (birden fazla varsa, virgülle ayrılmış)
                                       oldPassengerStr: İsim, ID Tipi, Kimlik Numarası, Kullanıcı Tipi
                                       randCode: Zamanlanmış doğrulama kodu
                                       tour_flag:dc
                                       _json_att: Boş dizi
                                       REPEAT_SUBMIT_TOKEN: Önceki adımdan öğrenin
                              Return: json formatı, taahhüt edilip edilemeyeceğini belirlemek için
                    Beşinci: Gönderimi onaylayın
                                Yöntem: POST
                                Arayüz: https://kyfw.12306.cn/otn/confirmPassenger/confirmSingleForQueue
                                Parametreler:
   
                                       ýolagçyTicketStr: Koltuk tipi, 0, bilet türü, isim, kimlik, telefon, N (birden fazla varsa, virgülle ayrılmış)
                                       oldPassengerStr: İsim, ID Tipi, Kimlik Numarası, Kullanıcı Tipi
                                       randCode: Zamanlanmış doğrulama kodu
                                       purpose_codes: Onu almak için 3. adım
                                       key_check_isChange: Aynı şey
                                       leftTicketStr; Aynı şey
                                       train_locatio{filter}n; Aynı şey
                                       REPEAT_SUBMIT_TOKEN: Aynı şey
                                       _json_att: Boş dizi   
                               Return: json formatı, göndermenin başarılı olup olmadığını belirleyin, bekleme süresini döndürün ve işlem sonucunu döndürmek için her belirli dönemde 6. adımı çağırın
                     Altıncı: Başvuru sonuçlarını almak için anket
                               Yöntem: GET
                               Arayüz: https://kyfw.12306.cn/otn/confirmPassenger/queryOrderWaitTime?
                               Parametreler:
   
                                       rastgele: Rastgele sayılar
                                       tourFlag:dc   
                                       REPEAT_SUBMIT_TOKEN: Elde edilmesi gereken üçüncü bir parça var
                                       _json_att: Boş dizi   
                               Return: json formatı, bekleme süresini döndür, waitTime 0'dan küçükse, orderId emir bilgisini alın, 0'dan büyükse sorgulamaya devam edin
          5. Bitmemiş siparişler hakkında bilgi alın
                 Yöntem: POST
                 Arayüz: https://kyfw.12306.cn/otn/queryOrder/queryMyOrderNoComplete
                 Parametreler:
                _json_att: Boş dizi   
                Dönüşler: JSON formatı, sipariş bilgisi içerir ve doğrudan ayrıştırır

           Bu arada, 5 fonksiyon temelde tanıtıldı, ancak şimdi sadece kullanmayı öğrenmek için yayınlanıyor ve kötü niyetli saldırılara uğramayacak; ayrıca 12306 web sitesinin arayüzü çok sık değişiyor ve şimdi yayınlanan arayüz yarın değiştirilebilir, bu yüzden önemli olan ilgili arayüzleri ve verileri nasıl tutacağınızı öğrenmek ve verilerden analiz ederek ilgili parametreleri ve sonuçları elde etmek. Burada esas olarak chrom tarayıcısıyla birlikte gelen ağ analiz aracı firebug'u, ayrıca fiddler ve wireshark araçlarını ve ilgili araçları kullanma talimatlarını kullanıyorum, sadece internette arayın.
            Son olarak, şikayet edelim, 12306 web sitesi CDN statik önbellek teknolojisi kullanıyor, bu da farklı bölgelerdeki yük dengelemesi, bant genişliği ve yük miktarına göre ilgili sunucuların seçilmesine yol açacak, yani ülke genelinde birçok 12306 sunucusu var. Her kullanıcı erişebilir olası sunucular farklıdır, ancak sadece statik sayfalar ve js, css ve resimler vb. her sunucu oturumu doğrudan paylaşır (yani, sunuculardan birine giriş yaparsanız, diğer sunucularda da oturumu paylaşır. Yukarıdakiler de iniş yapmaya eşdeğerdir. Bu yüzden önbellek zamanlarının güncel olması, stresin minimum olması ve verilerin daha gerçek zamanlı olması için dinamik bir sunucu seçebilmek en iyisidir. Benim uygulamamda, bir kez sorgulama yapmazsanız, sunucu IP'sini bir kez değiştirirsiniz. İlgili teknolojiye gelince, daha sonra açıklayacağım. Ancak bu makalenin içeriği öğrenmek için yeterli. Belirli IP adresini http://tool.chinaz.com/dns içinde görebilirsiniz.




Önceki:{:1_3:} {:1_3:} Mutlu bir gün
Önümüzdeki:js bir nesneyi nasıl kopyalar?
Yayınlandı 28.09.2017 09:19:34 |
Patron bilet alacak mı?
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com