開源項目助我回家--兩分鍾完成網上訂票從登錄到付款


實在抱歉 昨天晚上說好要發源碼的 可是因為租同一個房子的主卧的女生回家過年好像把路由電源斷了 沒有上成網沒有發成。 其實提到的第一個開源項目已經基本完成基本功能 只是需要一點修改 今天有時間的話 我會寫一下怎么使用tessocr和extendedwebbrowser

 

今天游戲新版本要上線 忙着改BUG們 快九點才從辦公室走 回家現裝的BT5蹭隔壁的無線來上網發源碼了

源碼扔到codeplex上了 http://book12306ticket.codeplex.com/

這樣在辦公室哪的也能改了  沒時間整理 有個第三方類直接扔到bin里一起上傳了 大家自己ref一下

 

本文中提到的代碼全部來源於網上的開源項目

花了不到兩個小時拼湊而成的程序就可以實現兩分鍾從登錄到付款的全部操作.

下面是正文

要解決的問題:

1登錄不上去

2登錄上去后提交不上訂單

3提交上訂單后付款不成功要重新登錄

開始解決問題:

 

首先要有一個從登錄到訂票全部流程的實現,而且要自動化的實現。從登錄到訂票這個流程codeplex上的一個開源項目

TrainSearch http://myticketsearch.codeplex.com/  基本實現了 而且結合了Webbrowser空間可以在登錄成功后共用一個session,實現網頁不用再次登錄。

但是這個項目不夠自動化要手動輸入驗證碼

於是本人最初的修改是利用Tessocr進行驗證碼識別(利用Tessocr受到了Java的訂票開源項目的啟發 http://code.google.com/p/go-home/ 

之后發現有人利用驗證碼不刷新的BUG(雖然早知道有這個BUG 但是沒有想到他們竟然六個月不修這個BUG) 於是修改了下代碼的邏輯之請求一次驗證碼。

這樣就解決了前兩個問題

 

最后一個問題就是付款  付款要再登錄啊 什么坑爹的邏輯啊

而且由於我們Webbrowser維持的session會因為“網上支付”那個按鈕是target="_blank" 會彈出新的IE窗口傳遞不了我們Webbrowser維持的Session

這里就需要不彈出IE 於是用到了又一個開源項目ExtendedWebBrowser http://www.codeproject.com/KB/cpp/ExtendedWebBrowser.aspx

 

這樣Session的問題解決了 不用登錄那個破網頁 直接一個程序解決了 下面程序截圖


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM