开源项目助我回家两分钟完成网上订票从登录到付款

实在抱歉 昨天晚上说好要发源码的 可是因为租同一个房子的主卧的女生回家过年好像把路由电源断了 没有上成网没有发成。 其实提到的第一个开源项目已经基本完成基本功能 只是需要一点修改 今天有时间的话 我会写一下怎么使用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的问题解决了 不用登录那个破网页 直接一个程序解决了 下面程序截图

原文地址:https://www.cnblogs.com/zhuo/p/2319945.html