Ошибка: Unknown Content-Encoding - PHP тратя WSDL с SoapClient

У меня есть эта проблема после того, как стараюсь тратить Веб service wsdl:

Unknown Content-Encoding

Я обработал информацию сжимая это в GZIP посылая ему charset, но в момент выполнения он дает мне вышеупомянутую ошибку.

Код в php для этого потребления - следующий:

$usuario="user1";
$location_URL = "https://www.txstestrbm.com/GlobalPayServicios/GlobalPayServicioDePago";
$pass="abc123";
$wsdl="https://www.pagosrbm.com/GlobalPayServicios/GlobalPayServicioDePago/GlobalPayServicioDePago.wsdl";
$mode = array (
    'soap_version'  => 'SOAP_1_1', // use soap 1.1 client
    'keep_alive'    => true,
    'trace'         => 1,
    'encoding'      => utf-8,
    'compression'   => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
    'Content-Encoding'=> 'UTF-8',
    'exceptions'    => true,
    'cache_wsdl'    => WSDL_CACHE_NONE,
);
$options = array(
    'trace'=>true,
    'location' => $location_URL,
    'credenciales' => array(
        'idUsuario'    => $usuario,
        'clave' => $pass
    ),
    'cabeceraSolicitud' =>array(
        'infoPuntoInteraccion'=> array(
            'tipoTerminal'=> 'GlobalPay',
            'idTerminal'=>'ESB10457',
            'idAdquiriente'=>'0014591978',
            'idTransaccionTerminal'=>'0101'
        )
    ),
    'infoCompra' => array(
        'numeroFactura' => '',
        'montoTotal' => '',
        'infoImpuestos' => array(
            'tipoImpuesto'=>'iva',   
            'monto' =>'0'
        ),
        'montoDetallado' => array(
           'tipoMontoDetallado'=>'precio',
           'monto'=> '10000'
        ),
    ),
);

try {
    $soap = new SoapClient($wsdl, $mode);  
    $data = $soap->IniciarTransaccionDeCompra($options);
} catch(Exception $e) {
    die($e->getMessage());
}
var_dump($data);
die;

Они могут консультировать страницу здесь. Он был бы благодарен кому-то, если он может помогать мне с этой ошибкой.

2
задан 13.09.2016, 20:58
2 ответа

Проблема находится в, в котором ты не присоединяешься в TLSv1.2, и не используешь удостоверения файлы .cert, что были должны давать тебе, чтобы называть услугу. Ты подпираешь, этот url не та, которую ты должен использовать для доказательств, использует файл wsdl, ты должен пересылать это в сервер и помещать это рядом. Это завершает хорошо заголовок сообщения soap 'local_cert' => 'www.txstestrbm.com.cer', он больше важно, потом ты должен делать 10 случаев использования и посылать их для того, чтобы они дали тебе первоначальные удостоверения. Я думаю, что ты должен общаться с людьми кнопки или это тестировать из-за soap UI, и функционирует ли оно, потом ты посылаешь payload, и заношу в список.

1
ответ дан 24.11.2019, 14:53

Encoding должен идти внутри кавычек:

  'encoding'      => utf-8,

Меняется в:

  'encoding'      =>'UTF-8',

Поэтому razГіn не обнаруживает encoding.

  • Заверяет tambiГ©n в том, что конфигурирует внутри тебя php.ini:

zlib.output_compression = On

0
ответ дан 24.11.2019, 14:53
  • 1
    Большое спасибо из-за того, что отвечает и доставать твоего времени. уже я это изменил, но он продолжает меня производя ту же ошибку –  diego alejandro franco osorio 15.02.2016, 22:55
  • 2
    Диего, реализует доказательство и #250; nicamente с: " compression" = > SOAP_COMPRESSION_ACCEPT) и скажи мне, что произошедшее у тебя есть. –  Jorgesys♦ 15.02.2016, 23:45
  • 3
    Большое спасибо, снова из-за того, что я отвечаю, я показываю это, $soap = new SoapClient ($wsdl, array (" compression" = > SOAP_COMPRESSION_ACCEPT)); Меня возвращает тот же результат. –  diego alejandro franco osorio 16.02.2016, 00:03
  • 4
    ; soap extension=php_soap.dll; zip zlib.output_compression = данный возможность Он Эста выбор –  diego alejandro franco osorio 16.02.2016, 01:01

Теги

Похожие вопросы