通过post向页面传替值的示例并有返回值和删除一天前文件夹下自动生成的文件

  1. using System;
  2. using System.Net;
  3. using System.Drawing;
  4. using System.Text.RegularExpressions;
  5. using OnlineCard.Core;
  6. using CheckCodeLib;
  7. string cookieValue = CheckCodeHelper.SerializeCookie(cookie); //CheckCodeHelper为CheckCodeLib.dll中的方法目的是读取验证码的帮助类
  8. ViewState["CheckCodeCookieValue"] = cookieValue;
  9. //通过游戏区服取之相对应的ID值
  10. private int GetIdByZone(string GameZone)
  11. {
  12.     int ZoneId=501;
  13.     if(ViewState["orderStringId"] != null)
  14.     {
  15.         //IGameCardSaleMerchantOrder 名称空间using OnlineCard.Core;
  16.         IGameCardSaleMerchantOrder gameSaleOrder = (IGameCardSaleMerchantOrder)MerchantOrderService.GetOrder(typeof(GameCardSaleMerchantOrder), ViewState["orderStringId"].ToString());
  17.         if (gameSaleOrder != null)
  18.         {
  19.             //ZoneId=gameSaleOrder.Id;
  20.         }
  21.     }
  22.     return ZoneId;
  23. }
  24. //根据游戏名称传替参数GameType
  25. string strGameName = txtGameName.Text.Trim();
  26. int GameType=-1;
  27. switch (strGameName)
  28. {
  29.     case "仙境奇缘":
  30.         GameType = 1;
  31.         break;
  32.     case "武林外传":
  33.         GameType = 2;
  34.         break;
  35.     case "完美国际":
  36.         GameType = 3;
  37.         break;
  38.     case "诛仙":
  39.         GameType = 4;
  40.         break;
  41.     case "赤壁":
  42.         GameType = 5;
  43.         break;
  44.     case "口袋西游":
  45.         GameType = 6;
  46.         break;                
  47.     default:
  48.         break;
  49. }
  50. //获取验证码
  51. private void GetRandCode()
  52. {
  53.     Bitmap checkCodeBitmap; //Bitmap 名称空间using System.Drawing;
  54.     Cookie cookie; //Cookie 名称空间using System.Net;
  55.     string strUrl = "http://pay.wanmei.com/e/servlet/getrandomimg";
  56.     //CheckCodeHelper 名称空间using using CheckCodeLib;
  57.     bool isGetCheckCode = CheckCodeHelper.GetCheckCodeBitmap(strUrl, out checkCodeBitmap, out cookie);
  58.     if (isGetCheckCode)
  59.     {
  60.         string cookieValue = CheckCodeHelper.SerializeCookie(cookie);
  61.         ViewState["CheckCodeCookieValue"] = cookieValue;
  62.         //删除一天前ImgRandCode文件夹下自动生成的文件               
  63.         string vPath = Server.MapPath("~/ImgRandCode");
  64.         DirectoryInfo dir = new DirectoryInfo(vPath);
  65.         foreach (FileInfo fi in dir.GetFiles())
  66.         {
  67.             if (fi.CreationTime < DateTime.Today)
  68.                 fi.Delete();
  69.         } 
  70.         CheckCodeAnalyzer ccAnalyzer = new CheckCodeAnalyzer(checkCodeBitmap); //CheckCodeAnalyzer 名称空间using CheckCodeLib;
  71.         string checkCode = ccAnalyzer.Analyze();
  72.         Guid id = Guid.NewGuid(); //Guid 名称空间using System;表示全局唯一标识符
  73.         string strImg = @"ImgRandCode/" + id + ".bmp"; 
  74.         string strImgUrl = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, strImg);
  75.         checkCodeBitmap.Save(strImgUrl);
  76.         ImgRandCode.ImageUrl = "~/ImgRandCode/" + id + ".bmp";
  77.         if (checkCode.Length == 0)
  78.         {
  79.             Tools.Alert("验证码分析失败,请手动输入!"this.Page);
  80.             txtRandCode.Focus();
  81.             return;                    
  82.         }
  83.         else
  84.         {
  85.             //Tools.Alert("验证码: " + checkCode, this.Page);
  86.             txtRandCode.Text = checkCode;                    
  87.             //return;                   
  88.         }
  89.     }
  90.     else
  91.     {
  92.         Tools.Alert("获取验证码失败!"this.Page);
  93.         return;                
  94.     }
  95. }
  96. // 将提交的字符串数据转换成字节数组
  97. string dataString = string.Format("gametype={0}&cardcode={1}&account={2}&reaccount={3}&zoneid_4={4}&randcode={5}",
  98.     GameType, txtCardCode.Text.Trim(), txtAccount.Text.Trim(), txtAccount.Text.Trim(), GetIdByZone(txtZone.Text.Trim()), txtRandCode.Text.Trim());
  99. //已下代码将dataString获取的值通过post方法提交到http://pay.wanmei.com/e/trade/realCardUseActionStep1.do,目的是验证基本信息
  100. //PostRequestRobot为CheckCodeLib.dll中的方法目的是能够发送post请求的帮助类
  101. PostRequestRobot robot = new PostRequestRobot("http://pay.wanmei.com/e/trade/realCardUseActionStep1.do", dataString);
  102. string cookieValue = ViewState["CheckCodeCookieValue"].ToString();
  103. Cookie cookie = CheckCodeHelper.DeserializeCookie(cookieValue);
  104. robot.AddCookie(cookie);
  105. string htmlString = robot.GetResponse();
  106. Regex regex = new Regex("<span style=/"font-size:14px; color:#FF0000; font-weight:bold/">(.*?)</span><br />", RegexOptions.IgnoreCase | RegexOptions.Singleline);                                   
  107. if (htmlString.IndexOf("验证码错误") > -1)
  108. {
  109.     Response.Write("<script language='javascript'>alert('验证码错误现已重新获取');</script>");
  110.     GetRandCode(); //获取验证码
  111. }
  112. else if (htmlString.IndexOf("您输入的账号不存在") > -1 || htmlString.IndexOf("请正确选择充值区域") > -1 )
  113. {
  114.     Response.Write("<script language='javascript'>alert('" + regex.Match(htmlString).Groups[1].Value + "');</script>");                 
  115. }
  116. //基本信息正确,判断卡密
  117. else if (htmlString.IndexOf("") > -1) 
  118. {
  119.     string dataStringStep2 = string.Format("gametype={0}&password={1}",GameType, ViewState["cardPassword"].ToString());
  120.     //验证卡密
  121.     PostRequestRobot robotStep2 = new PostRequestRobot("http://pay.wanmei.com/e/trade/realCardUseActionStep2.do", dataStringStep2);
  122.     string cookieValueStep2 = ViewState["CheckCodeCookieValue"].ToString();
  123.     Cookie cookieStep2 = CheckCodeHelper.DeserializeCookie(cookieValueStep2);
  124.     robotStep2.AddCookie(cookieStep2);
  125.     string htmlStringStep2 = robotStep2.GetResponse();
  126.     if (htmlStringStep2.IndexOf("卡号不存在或此卡已经使用过") > -1)               
  127.     {
  128.         Response.Write("<script language='javascript'>alert('卡号不存在或此卡已经使用过,请核对您的卡号或改用其它充值方式!');</script>");        
  129.     }
  130.     else if (htmlStringStep2.IndexOf("") > -1)                
  131.     {
  132.         DepositSuccess(); //充值成功
  133.     }
  134. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值