[QUOTE]scifi пишет:
Проблема была такой же? Подскажите, пожалуйста, что в нем было битого?
И как в итоге настраивали, через компонент битрикса или через файл робокассы? Куда вел result_url?[/QUOTE]Как минимум:
[CODE]
>cat result_rec.php
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();?><?
$inv_id = IntVal($_REQUEST["inv_id"]);
if(IntVal($inv_id)>0)
{
$bCorrectPayment = True;
$inv_id = IntVal($_REQUEST["inv_id"]);
$out_summ = $_REQUEST["OutSum"];
$crc = $_REQUEST["SignatureValue"];
if (!($arOrder = CSaleOrder::GetByID(IntVal($inv_id))))
$bCorrectPayment = False;
if ($bCorrectPayment)
CSalePaySystemAction::InitParamArrays($arOrder, $arOrder["ID"]);
$mrh_pass2 = CSalePaySystemAction::GetParamValue("ShopPassword2");
$strCheck = md5($out_summ.":".$inv_id.":".$mrh_pass2);
if ($bCorrectPayment && strtoupper($CHECKSUM) != strtoupper($strCheck))
$bCorrectPayment = False;
if($bCorrectPayment)
{
$arFields = array(
X PS_STATUS" => "Y",
X PS_STATUS_CODE" => "-",
X PS_STATUS_DESCRIPTION" => $strPS_STATUS_DESCRIPTION,
X PS_STATUS_MESSAGE" => $strPS_STATUS_MESSAGE,
X PS_SUM" => $out_summ,
X PS_CURRENCY" => "",
X PS_RESPONSE_DATE" => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", LANG))),
);
// You can comment this code if you want PAYED flag not to be set automatically
if ($arOrder["PRICE"] == $out_summ)
{
CSaleOrder::PayOrder($arOrder["ID"], "Y");
}
if(CSaleOrder::Update($arOrder["ID"], $arFields))
echo "OK"+$inv_id;
}
}
?> [/CODE]
переменная $CHECKSUM нигде не объявлена и вместо нее нужно использовать $crc. Кроме того, поставьте какой-нить трейс в этот файл и при запросе из Робокассы смотрите, что приходит и сравнивайте с тем, что должно приходить и как это обрабатывается.