По советам использую синапс, все отлично, но есть один момент. Вот код: PHP: procedure TForm1.Button1Click(Sender: TObject); var r:widestring; Res : boolean; Body: TStringList; stream: TStringStream; BodyS: TStringList; begin HTTP := THTTPSend.Create; try Res := HTTP.HTTPMethod('GET','https://payments.chronopay.com/?product_id=004533-0001-0001'); if Res then begin edit2.Text:=HTTP.Cookies.Text; Body := TStringList.Create; Body.LoadFromStream(http.Document); r:=utf8toansi(Body.Text); delete(r,1,pos('<input type="hidden" name="token" value="',r)+40); delete(r,pos('"',r),length(r)); edit1.Text:=r; begin stream:=TStringStream.Create(''); stream.WriteString('step=2&action=enter_params&product_id=004533-0001-0001&token='+edit1.Text+'&phone=9015435643&product_price=554&approve_agreement=on'); HTTP.Document.LoadFromStream(stream); if HTTP.HTTPMethod('post','https://payments.chronopay.com/?' ) then begin BodyS := TStringList.Create; BodyS.LoadFromStream(HTTP.Document); memo1.Text:=utf8toansi(BodyS.Text); end end; end finally HTTP.Free; end; end; Проснифал в браузере, вот что показывает снифер: PHP: step=2&action=enter_params&product_id=004533-0001-0001&token=62560b59804020d1f609d04619056d54&phone=9015435643&product_price=554&approve_agreement=on Тестирую прогу, вывожу текст страници, и получаю: "Некорректное платежное средство". Подкажите что делаю не так, я так подозреваю что это token, но не знаю как правильно его спарсить
token нормально парсится? PHP: function TForm1.pars(text, a, b: string): string; var temp:string; begin temp:=copy(text,pos(a,text)+length(a),length(text)-(pos(a,text)+length(a)-1)); pars:=copy(temp,1,pos(b,temp)-1); end; r:=pars(r,'name="token" value="','"'); Попробуй параметр в utf8 перевести перед записью в тело.
Может что с куками? не пробывал вытащить полученый текс(код php или html) сохранить в файл и посм в браузере? будет видно причину.
Тоже нужен совет по данной теме а именно в переменную r приходит ответ от сервера в котором латинские буквы и цифры но при сравнении этих данный с такими же данными в переменной string в условии оно не выполняется. Почему? Если если вывожу эти данные в ShowMessage и сравниваю их со своими они один в один похожи. P.S. Совет уже не нужен. В начало и конец добавлялось по пробелу которые не видны в ShowMessage. Функция Trim помогла.
Какой ты помощи ждёшь? Я тебе в первом посте привёл функцию для парсинга и задал вопрос, но ты его проигнорировал. Ты хочешь, чтобы тебе готовый код прислали? Ага
token нормально парсится? Снифер в руки и вперёд! Сверяй что шлёт браузер и твой софт. Старайся закосить под браузер.