Ответы пользователя по тегу PHP
  • Эквайринг TWPG, кто имел дело?

    @floog Автор вопроса
    Разобрался ...

    // корневой сертификат банка
      $caFile = dirname(__FILE__) . '/bank.crt';
    
      // сертификат торговца
      $certFile =  dirname(__FILE__) .  '/user.crt';
    
      // ключ сертификата
      $keyFile =  dirname(__FILE__) .  '/user.key';
    
      // пароль ключа (если есть)
      $privateCertPass = 'password';
    
      $serverURI = 'https://192.168.0.0:5555/Exec';
      
      // исходящее xml_сообщение
      $xml = '<?xml version="1.0" encoding="UTF-8"?>';
      $xml .= '<TKKPG>';
      $xml .= '<Request>';
      $xml .= '<Operation>CreateOrder</Operation>';
      $xml .= '<Language>RU</Language>';
      $xml .= '<Order>';
      $xml .= '<OrderType>Purchase</OrderType>';
      $xml .= '<Merchant>2000001</Merchant>';
      $xml .= '<Amount>15000</Amount>';
      $xml .= '<Currency>810</Currency>';
      $xml .= '<Description>Test</Description>';
      $xml .= '<ApproveURL>http://192.168.0.1:81/test_stores/test/get_result_post.php</ApproveURL>';
      $xml .= '<CancelURL>http://192.168.0.1:81/test_stores/test/get_result_post.php</CancelURL>';
      $xml .= '<DeclineURL>http://192.168.0.1:81/test_stores/test/get_result_post.php</DeclineURL>';
      $xml .= '</Order>';
      $xml .= '</Request>';
      $xml .= '</TKKPG>';
      
      $ch = curl_init($serverURI);
      curl_setopt($ch, CURLOPT_POST, 1);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
      
      curl_setopt($ch, CURLOPT_POST, 1);
      curl_setopt($ch, CURLOPT_SSLCERT, $certFile);
      curl_setopt($ch, CURLOPT_CAINFO, $caFile);
      
      curl_setopt($ch, CURLOPT_SSLKEY, $keyFile);
      curl_setopt($ch, CURLOPT_SSLCERTPASSWD, $privateCertPass);
      curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_VERBOSE, 1);
      
      // ответ TWPG
      $xmlResponse = curl_exec($ch);
      
      // 0 - успешное выполнение запроса
      echo 'CURL status: ' . curl_errno($ch) . '<br>';
        echo 'CURL status description: ' . curl_error($ch);
    Ответ написан
    Комментировать