1. Разработка на Виндовс машине (Apache 2.2.2 + PHP Version 5.3.28 - Windows 8.1 x64)
2. Продакшн на Убунту-сервере (Apache 2.2.2 + PHP Version 5.3.10 - Ubuntu Server 12)
3. Доступа к удалённому серверу нет - партнёрский.
4. Данные передаются через CURL + HTTPS.
Запускаем код приведённый ниже :
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://remoteServer/remotePath');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($curl, CURLOPT_CAINFO, '/etc/ssl/certs/cert.crt');
$data_string = "{\"system\":\"abc\",\"fields\":{\"agreement_Number\":\"123\",\"inn\":\"1234567890\",\"passport_seria\":\"AB123456\",\"amount\":\"123.85\"}}";
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string)));
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
curl_exec($curl);
?>
С девелоперской Вин-машины - всё ОК.
С продакшн сервера, отправляемая строка, дополнительно "экранируется" кавычками, что приводит к невосприниманию строки удалённым сервером.
Если кто-то догадывается, в чём дело - помогите, пожалуйтса.