Сообщение arpscan » 2010-11-19 4:37:12
Добрый день!
Пробую создать счет через API, но что-то не получается. Регистрация, изменение учеток - все ок, а вот с созданием счета затык. Код по той же схеме, что и в других (работающих) случаях (например регистрация через /API/UserRegister).
Сначала регистрирую юзера через API, затем логинюсь опять через API, так что сессия создается и живет. Затем пытаюсь от имени этого пользователя создать себе новый счет:
Код: Выделить всё
function make_invoice($contractid, $summ) {
$Args = Array(
'ContractID' => $contractid,
'XMLHttpRequest' => 'yes',
'PaymentSystemID' => $_POST['PSystem'],
'Summ' => $summ
);
$Query = Http_Build_Query($Args);
$Answer = @File_Get_Contents("http://testtest.com/API/InvoiceMake?".$Query."");
if(!$Answer)
return('Request error');
#-------------------------------------------------------------------------------
$Answer = @JSON_Decode($Answer,TRUE);
if(!$Answer)
return('Bad answer');
#-------------------------------------------------------------------------------
switch($Answer['Status']){
case 'Error':
#---------------------------------------------------------------------------
$Error = $Answer['Error'];
#---------------------------------------------------------------------------
return($Error['String']);
case 'Exception':
#---------------------------------------------------------------------------
$Exception = $Answer['Exception'];
#---------------------------------------------------------------------------
return($Exception['String']);
case 'Ok':
#---------------------------------------------------------------------------
return "ok";
#---------------------------------------------------------------------------
default:
return('Wrong status');
}
}
echo make_invoice($contractid, $summ);
Запрос уходит как надо:
127.0.1.1 - - [19/Nov/2010:01:10:36 +0100] "GET /API/InvoiceMake?ContractID=8&XMLHttpRequest=yes&PaymentSystemID=WebMoney+WMR&Summ=500.00 HTTP/1.0" 200 6992 "-" "-"
Что имеем в итоге? Что бы я не послал в InvoiceMake - ответ всегда приходит Status = "Ok", а InvoiceID пустой. => счет не создается, в логи ничего по этому поводу не пишется. Не могу понять почему.
В случае с UserRegister, например, если посылаю какой-то параметр криво или не посылаю, то получаю ошибку в ответ. А InvoiceMake вообще не замечает этого и шлет "Ok"...
Заранее спасибо за помощь)
Добрый день!
Пробую создать счет через API, но что-то не получается. Регистрация, изменение учеток - все ок, а вот с созданием счета затык. Код по той же схеме, что и в других (работающих) случаях (например регистрация через /API/UserRegister).
Сначала регистрирую юзера через API, затем логинюсь опять через API, так что сессия создается и живет. Затем пытаюсь от имени этого пользователя создать себе новый счет:
[code]function make_invoice($contractid, $summ) {
$Args = Array(
'ContractID' => $contractid,
'XMLHttpRequest' => 'yes',
'PaymentSystemID' => $_POST['PSystem'],
'Summ' => $summ
);
$Query = Http_Build_Query($Args);
$Answer = @File_Get_Contents("http://testtest.com/API/InvoiceMake?".$Query."");
if(!$Answer)
return('Request error');
#-------------------------------------------------------------------------------
$Answer = @JSON_Decode($Answer,TRUE);
if(!$Answer)
return('Bad answer');
#-------------------------------------------------------------------------------
switch($Answer['Status']){
case 'Error':
#---------------------------------------------------------------------------
$Error = $Answer['Error'];
#---------------------------------------------------------------------------
return($Error['String']);
case 'Exception':
#---------------------------------------------------------------------------
$Exception = $Answer['Exception'];
#---------------------------------------------------------------------------
return($Exception['String']);
case 'Ok':
#---------------------------------------------------------------------------
return "ok";
#---------------------------------------------------------------------------
default:
return('Wrong status');
}
}
echo make_invoice($contractid, $summ);
[/code]
Запрос уходит как надо:
[quote]127.0.1.1 - - [19/Nov/2010:01:10:36 +0100] "GET /API/InvoiceMake?ContractID=8&XMLHttpRequest=yes&PaymentSystemID=WebMoney+WMR&Summ=500.00 HTTP/1.0" 200 6992 "-" "-"
[/quote]
Что имеем в итоге? Что бы я не послал в InvoiceMake - ответ всегда приходит Status = "Ok", а InvoiceID пустой. => счет не создается, в логи ничего по этому поводу не пишется. Не могу понять почему.
В случае с UserRegister, например, если посылаю какой-то параметр криво или не посылаю, то получаю ошибку в ответ. А InvoiceMake вообще не замечает этого и шлет "Ok"...
Заранее спасибо за помощь)