2013-10-02 2 views
-1

Что я должен делать, чтобы предотвратить недопустимые теги XML в функции обратного вызова пользовательского getaway?Неверные теги XML

$h = fopen("banks/Mybank/log.txt", 'a'); 
     fwrite($h, 'ConfirmRequest: '.print_r($_REQUEST['ConfirmRequest'],true)."\n"); 
     fclose($h); 

выход:

ConfirmRequest: <ConfirmRequest><TransactionId> Cool Attitude #89</TransactionId><PaymentId>327600020200</PaymentId><PaymentDate>02.10.2013 23:41:26</PaymentDate><Amount>7000</Amount><CardType>VISA!472291******9871</CardType><Status>N</Status><Reason>Declined by merchant</Reason></ConfirmRequest> 

результат же на

$_REQUEST['ConfirmRequest']; 

и

$this->resuest->request['ConfirmRequest']; 

============ ==============

огромное спасибо gloomy.penguin! скажите, пожалуйста, что я сделал здесь неправильно?

if(
     !openssl_verify(
         'ConfirmRequest='.$ConfirmRequest, 
         base64_decode($signature), 
         openssl_get_publickey($cert) 
         ) 
      ) 
      die("signature error"); 




    $parser = xml_parser_create(''); 
     xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, "UTF-8"); 
     xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); 
      xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); 
     xml_parse_into_struct($parser, $ConfirmRequest, $vals); 
     xml_parser_free($parser); 


      foreach ($vals as $data) 
        { 
        if ($data['tag']=='STATUS') 
        $Status=$data['value']; 
        if ($data['tag']=='PAYMENTID') 
        $PaymentId=$data['value']; 
        if ($data['tag']=='PAYMENTDATE') 
        $PaymentDate=$data['value']; 
        if ($data['tag']=='TRANSACTIONID') 
        $TransactionId=$data['value']; 
        if ($data['tag']=='AMOUNT') 
        $Amount=$data['value']; 
        if ($data['tag']=='REASON') 
        $Reason=$data['value']; 
       if ($data['tag']=='CARDTYPE') 
        $CardType=$data['value']; 

        } 


      $sta = fopen("banks/MyBank/status.txt", 'a'); 
      fwrite($sta, .print_r($data)."\n"); 
      fclose($sta); 

выходное значение «1» ...

+1

['html_entity_decode()'] (http://php.net/manual/en/function.html-entity-decode.php) –

+0

Спасибо gloomy.penguin !! не могли бы вы мне помочь, пожалуйста? я отредактировал мое сообщение – vkatsitadze

+0

, вы должны поместить '$ sta = fopen (...' перед 'foreach' и поместить' fwrite (... 'внутри' foreach' и оставить 'fclose', где это –

ответ

0

это ответ на исходной задачи: html_entity_decode()

Поскольку у вас есть новая проблема, которая не связана с вашей первоначальной эмиссии, Я предлагаю закрыть этот вопрос (выбирая ответ на свой вопрос) и создать совершенно новую должность с новой проблемой. Включите код, который вы используете, и то, что находится в переменных, чтобы люди могли вам помочь.

+0

благодарит за внимание. вы можете увидеть код PLS ?? http://pastebin.com/MCEN8pA5 – vkatsitadze

Смежные вопросы