Цитата |
---|
scifi пишет: Проблема была такой же? Подскажите, пожалуйста, что в нем было битого? И как в итоге настраивали, через компонент битрикса или через файл робокассы? Куда вел result_url? |
Код |
---|
>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; } } ?> |
переменная $CHECKSUM нигде не объявлена и вместо нее нужно использовать $crc. Кроме того, поставьте какой-нить трейс в этот файл и при запросе из Робокассы смотрите, что приходит и сравнивайте с тем, что должно приходить и как это обрабатывается.