Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: КриптоПРО CSP, ЭЦП, xml, post-запрос
Форумы портала PHP.SU » » XML и его обработка » КриптоПРО CSP, ЭЦП, xml, post-запрос

Страниц (1): [1]
 

1. Santer063 - 22 Ноября, 2013 - 08:12:43 - перейти к сообщению
Здравствуйте!Имеется следующее: криптопро CSP, сертификат удостоверяющего центра, личный сертификат
Необходимо отправить на сервер post-запрос, содержащий данные в формате XML, подписав его ЭЦП.
Формат PKCS#7, затем всё это кодируется base64 и отправляется. В ответ приходит аналогичный пакет, который нужно
раскодировать, снять ЭЦП, и вытащить данные из xml-ответа. Всё это делается на PHP
Вопрос: как к сформированному xml-запросу прицепить ЭЦП, ну и соответственно снять ЭЦП с ответа, имея вот такие исходные данные?
Скрипт:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. //Функция отправки xml запроса
  3. function PostXML($link, $xml) {  
  4.    $chx = curl_init();//инициализация курл
  5.    curl_setopt($chx, CURLOPT_URL, $link);//адрес запроса
  6.    curl_setopt($chx, CURLOPT_RETURNTRANSFER, 1);// Ожидание ответа сервера
  7.    curl_setopt($chx, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
  8.    curl_setopt($chx, CURLOPT_POST, 1);
  9.    curl_setopt($chx, CURLOPT_POSTFIELDS, $xml);
  10.    //curl_setopt($chx, CURLOPT_NOPROGRESS, 0);
  11.    $result = curl_exec($chx);
  12.    curl_close($chx);
  13.    return $result;        
  14.  }
  15. $reply = '<?xml version="1.0" encoding="windows-1251"?>
  16. <Fms>
  17.  <Request>
  18.    <Id>2013</Id>
  19.    <Auth>
  20.      <MemberCode>###</MemberCode>
  21.      <User>###</User>
  22.      <Password>###</Password>
  23.    </Auth>
  24.    <Contents>
  25.      <Surname>###</Surname>
  26.      <Firstname>###</Firstname>
  27.      <Middlename>###</Middlename>
  28.      <DateOfBirth>###</DateOfBirth>
  29.    </Contents>
  30.  </Request>
  31. </Fms>';
  32. $respons = PostXML('http://URL', $reply);//ответ сервера
  33. ?>
  34.  
2. dXdYdZ - 22 Ноября, 2013 - 23:21:22 - перейти к сообщению
потёрто

 

Powered by ExBB FM 1.0 RC1