На этой неделе я пытался автоматизировать все банковские переводы, которые я делаю, используя php curl и предоставляя серверу список IBAN, чтобы он мог добавить IBAN напрямую, чем сделать сумму перевода, определенную в том же списке, для каждого IBAN соответственно. На данный момент я могу войти на веб-сайт банка с помощью PHP CURL, опубликовав те же запросы, которые будет выполнять мой браузер, единственная проблема, которая у меня возникла до сих пор, — это когда я пытаюсь добавить IBAN, воспроизводя тот же запрос, который сервер, похоже, игнорирует все мои опубликованные данные, и просто отправить обратно страницу, чтобы заполнить информацию, не указывая, если была ошибка, он должен вернуть страницу подтверждения. Мой банк не предоставляет такого решения бесплатно, единственное решение — предоставить это моему банку, на что уходит неделя, поэтому мне приходится работать самостоятельно.
Это данные поста, отправленные браузером:
22:50:29.852[532ms][total 532ms] Status: 303[See Other]
POST https://----------------- Load Flags[LOAD_DOCUMENT_URI LOAD_INITIAL_DOCUMENT_URI ] Content Size[0] Mime Type[text/html]
Request Headers:
Host[]
User-Agent[Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:48.0) Gecko/20100101 Firefox/48.0]
Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
Accept-Language[en-US,en;q=0.5]
Accept-Encoding[gzip, deflate, br]
DNT[1]
Referer[]
Cookie[]
Connection[keep-alive]
Post Data:
dialogActionPerformed[NEXT]
taskOID[0153b9d514b35d5c837b347dd88e2e68db91]
taskInfoOID[creerBenef]
screenName[ibp.cd.qbel.abocrb10affgestben.screen_HTML_INTERNET%3AAffGestBen.CreerModifBenef]
validationStrategy[AV]
formModified[true]
token[9e72005db5c4d37a5ab76cc681e30fb8d6]
beneficiaire.nom[denis+turq]
attribute%28%24SEL_%24lst1%29[*NEW*]
attribute%28%24SEL_%24lst1_hidden%29[lst1%24listeGroupes%24beneficiaire.groupe%24]
groupeACreer.nom[Virementafaire]
attribute%28%24SEL_CODE_%24clm1%29[VD]
attribute%28%24SEL_CODE_%24clm1_hidden%29[clm1%24groupeACreer.nature%24]
beneficiaire.matricule[]
beneficiaire.adresseBenef1[]
beneficiaire.adresseBenef2[]
beneficiaire.adresseBenef3[]
beneficiaire.email[]
attribute%28%24SEL_CODE_%24lst3%29[000]
attribute%28%24SEL_CODE_%24lst3_hidden%29[lst3%24beneficiaire.cboPaysBanque%24]
beneficiaire.IBAN9.IBAN_part1[FR34]
beneficiaire.IBAN9.IBAN_part2[3000]
beneficiaire.IBAN9.IBAN_part3[2040]
beneficiaire.IBAN9.IBAN_part4[4700]
beneficiaire.IBAN9.IBAN_part5[0005]
beneficiaire.IBAN9.IBAN_part6[8434]
beneficiaire.IBAN9.IBAN_part7[J16]
Response Headers:
Date[Sun, 27 Mar 2016 20:50:30 GMT]
Server[IWS]
Strict-Transport-Security[max-age=31536000]
Pragma[no-cache]
Cache-Control[no-cache,no-store]
Expires[-1]
Location[/cyber/internet/ContinueTask.do?taskOID=0153b9d514b35d5c837b347dd88e2e68db91&screenName=ibp.cd.qbel.abocrb10affgestben.screen_HTML_INTERNET%3AAffGestBen.CreerModifBenef&dialogActionPerformed=NEXT&token=9e72005db5c4d37a5ab76cc681e30fb8d6]
Content-Length[0]
Content-Type[text/html; charset=iso-8859-15]
Content-Language[fr-FR]
Keep-Alive[timeout=8, max=300]
Connection[Keep-Alive]
и это код php, который я использую для воспроизведения того же пост-запроса:
$nom=urlencode("denis turq");
$iban="FR34 3000 2040 4700 0005 8434 J16";
$list = explode(" ", $iban);
$postdata="dialogActionPerformed=NEXT&taskOID=". $html->find('input',1)->value ."&taskInfoOID=creerBenef&screenName=ibp.cd.qbel.abocrb10affgestben.screen_HTML_INTERNET%3AAffGestBen.CreerModifBenef&validationStrategy=AV&formModified=true&token=".$html->find('input', 6)->value ."&beneficiaire.nom=". $nom ."&attribute%28%24SEL_%24lst1%29=*NEW*&attribute%28%24SEL_%24lst1_hidden%29=lst1%24listeGroupes%24beneficiaire.groupe%24&groupeACreer.nom=Virementafaire&attribute%28%24SEL_CODE_%24clm1%29=VD&attribute%28%24SEL_CODE_%24clm1_hidden%29=clm1%24groupeACreer.nature%24&beneficiaire.matricule=&beneficiaire.adresseBenef1=&beneficiaire.adresseBenef2=&beneficiaire.adresseBenef3=&beneficiaire.email=&attribute%28%24SEL_CODE_%24lst3%29=000&attribute%28%24SEL_CODE_%24lst3_hidden%29=lst3%24beneficiaire.cboPaysBanque%24&beneficiaire.IBAN9.IBAN_part1=". $list[0]."&beneficiaire.IBAN9.IBAN_part2=". $list[1]."&beneficiaire.IBAN9.IBAN_part3=". $list[2]."&beneficiaire.IBAN9.IBAN_part4=".$list[3] ."&beneficiaire.IBAN9.IBAN_part5=".$list[4] ."&beneficiaire.IBAN9.IBAN_part6=". $list[5]."&beneficiaire.IBAN9.IBAN_part7=". $list[6];$url="https://------------------";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
$request_headers = array();
$request_headers[] = 'DNT: 1';
$request_headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
$request_headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 50);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_COOKIEFILE, realpath('./cookies/'.$cookie));
curl_setopt($ch, CURLOPT_COOKIEJAR, realpath('./cookies/'.$cookie));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $postdata);
$data = curl_exec($ch);
Я удалил хост, реферер и куки, потому что они практически одинаковы, еще одна вещь, когда я меняю имя любой переменной в публикуемых данных с помощью php, сервер возвращает ошибку, я могу предоставить моему teamviewer личное сообщение в экстремальных условиях , если кажется, что проблема в чем-то другом.
Спасибо за помощь.
Задача ещё не решена.
Других решений пока нет …