-
Create=== (17.01.13 11:29) [0]Здравствуйте.
Вот так отправляю POST запрос:
procedure TForm1.Button1Click(Sender: TObject);
var
s : TstringList;
str : string;
begin
s:=TStringList.Create;
s.Add('<?xml version=\"1.0\"?>');
s.Add('<merchant.request>');
s.Add('<wmid>150109397038</wmid>');
s.Add('<lmi_payee_purse>Z333305805011</lmi_payee_purse>');
s.Add('<lmi_payment_no>0</lmi_payment_no>');
s.Add('<lmi_payment_no_type>0</lmi_payment_no_type>');
s.Add('<secret_key>44324568433345WWD</secret_key>');
s.Add('</merchant.request>');
// вобщем добавляем свои параметры
str:=idHttp1.Post('https://merchant.webmoney.ru/conf/xml/XMLTransGet.asp',s);
memo1.Text:=str;
end;
в ответ получаю:
<?xml version="1.0"?><merchant.response>
<retval>-100</retval>
<retdesc>общая ошибка при разборе запроса step=1</retdesc>
</merchant.response>
<retval>-100</retval>
означает: общая ошибка при разборе запроса
У МЕНЯ DELPHI XE -
Create=== (17.01.13 11:31) [1]То же самое делаю:<?php
$url="//merchant.webmoney.ru/conf/xml/XMLTransGet.asp" "="">https://merchant.webmoney.ru/conf/xml/XMLTransGet.asp" ;
//set up variables
$xmlData = '<merchant.request>
<wmid>150109397038</wmid>
<lmi_payee_purse>Z333305805011</lmi_payee_purse>
<lmi_payment_no>0</lmi_payment_no>
<lmi_payment_no_type>0</lmi_payment_no_type>
<sign>44324568433345WWD</sign>
<md5></md5>
<secret_key></secret_key>
</merchant.request>';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: application/xml"));
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $xmlData);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec ($curl);
curl_close ($curl);
echo "<pre>"; print_r($response); echo "</pre>";
?>
Выдает:HTTP/1.1 200 OK
Date: Wed, 09 Jan 2013 07:06:07 GMT
Server: Microsoft-IIS/6.0
P3P: CP="CAO PSA OUR"
X-Powered-By: ASP.NET
Content-Length: 156
Content-Type: text/xml
Expires: Wed, 09 Jan 2013 07:06:07 GMT
Set-Cookie: ASPSESSIONIDQCBQASSD=ALKKMDMBOCOHONBHLBBDBPMJ; path=/
Cache-control: private
-7
sign not right:150109397038Z3333058050110 step=8
ПОЧЕМУ КОД, ВЫПОЛНЕННЫЙ НА DELPHI XE. НЕВЕРНО ОТПРАВЛЯЕТ POST ЗАПРОС? И КАК ИСПРАВИТЬ???? -
brother © (17.01.13 12:01) [2]ты всеж решил реализовывать работу с кошельком веб мани сам?
-
brother © (17.01.13 12:03) [3]и в пхп ты не тоже отправляешь:
> s.Add('<?xml version="1.0"?>');
этого в пхп нет... -
Create=== (17.01.13 12:21) [4]s.Add('<?xml version="1.0"?>');
убрал.
а ответ на запрос все тот же -
brother © (17.01.13 12:23) [5]тогда пользуй снифер и смтри что отправляется...
-
Create=== (17.01.13 12:52) [6]<merchant.request>&<wmid>150109397038</wmid>&<lmi_payee_purse>Z333305805011</lmi_payee_purse>&<lmi_payment_no>0</lmi_payment_no>&<lmi_payment_no_type>0</lmi_payment_no_type>&<sign>44324568433345WWD</sign>&<md5></md5>&<secret_key>44324568433345WWD</secret_key>&</merchant.request>
так сниффер показал.
Но сервер то почему то не понимает -
Create=== (17.01.13 13:02) [7]Заработало!
Нужно было:
ss:=TStringStream.Create(s.Text, TEncoding.UTF8);
// вобщем добавляем свои параметры
str:=idHttp1.Post('https://merchant.webmoney.ru/conf/xml/XMLTransGet.asp', ss);