Эквайринг в MODX

Всем добра!
Дали задание привязать в MODX эквайринг. Ну думаю дело не хитрое, хоть я и не курю, пошел курить api процессингова центра.

Ну все понятно. Делаю тестовую форму
<form action="[[~352]]" method="post">
    <span>Сумма оплаты (Amount and Total)</span>
    <input type="text" name="Amount" value="100">
    <span>Название платежа (Product)</span>
    <input type="text" name="Product" value="Тест">
    <input type="submit" value="Оплатить">
</form>
Пишу снипет:

<?php
//Указываем кодировку (без нее тоже самое)
header("Content-type: text/html; charset=utf-8"); 
//получаем и подготавливаем данные формы
$t = trim($_POST['Amount']);
$a = $t*100;
$p = trim($_POST['Product']);
//генерим уникальный ключ
$orderid = md5(time());
//сформировали строку инициализации
$url = "https://sandbox.payture.com/apim/Init?Key=MerchantFoodfox&Data=SessionType%3DPay%3BOrderId%3D".$orderid."%3BAmount%3D".$a."%3BProduct%3D".$p."%3BTotal%3D".$t; 
//Получаем ответ на этот запрос
$data = file_get_contents($url);
//Разобрали и забрали сессию из ответа
$search = array('<Init ', ' />', '"');
$data = str_replace($search, "", $data);
$data = explode('=', $data);
//Сформировали строку отправки на процессинговый центр
$redirect = "https://sandbox.payture.com/apim/Pay?SessionId=".$data[4];
//И соответственно редиректим по этой строке
return $modx->sendRedirect($redirect, array('responseCode' => 'HTTP/1.1 301 Moved Permanently')); //
Вроде все нормально, сумма (100) и название продукта (Тест) отправляются, но вот беда, на стороне процессингова центра вместо слова «Тест» отображается ????????.. Техподдержка отбивается общими фразами, а я уже всю голову сломал.

Если будет интересно, могу дать ссылку на мою тестовую страничку.
PS: Перепробовал много чего. Латиница проходит нормально. Есть подозрение, что на каком-то этапе происходит двойная перекодировка.
Если строку «генерить» руками, то все нормально, но это как говорится не по фэншую…
Евгений
28 декабря 2015, 08:24
modx.pro
1
1 698
0

Комментарии: 2

Сергей Скат
28 декабря 2015, 13:18
0
уверен что кодировка в БД нормальная? если нет, насильно переведи строку в нужную кодировку руками
    Евгений
    28 декабря 2015, 13:29
    0
    На моей стороне не используется бд, на стороне ПЦ не знаю, пробовал переводить насильно и в utf-8 и в windows-1251, и различные варианты с content type, и принудительно указывал кодировку в форме… итд. Сейчас написал развернутое письмо в ТП, жду ответа.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2