Описание заказа попадает в информационную систему банка Авангард в неверной кодировке

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
  • Тема закрыта
#1 Надежда Свиридова
  • Группа: Клиент
  • Сообщений: 33
  • Регистрация: 08.07.2013

23.10.2013 08:17

От банка пришел ответ со следующими комментариями:
Поля, которые заполнены кириллицей приходят в битой кодировке. Необходимо, чтобы поле order_description и xml-файл имели одинаковую кодировку. Образец запроса во вложении.

Прикрепленные изображения

  • Прикрепленное изображение: image006.png

Прикрепленные файлы



#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8885
  • Регистрация: 20.02.2010

03.11.2013 18:55

Исправлено в версии 2.22.5.

#3 Надежда Свиридова
  • Группа: Клиент
  • Сообщений: 33
  • Регистрация: 08.07.2013

06.11.2013 10:23

Описание заказа после успешного рещения задачи 4060 (http://magento-forum.ru/topic/4060/) по-прежнему приходит в неверной кодировке.
Сотрудник банка утверждает, что задача не была решена корректно.
Предложение от банка: «Кодировка осталась битой».

Прикрепленные изображения

  • Прикрепленное изображение: avangard.png


#4 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8885
  • Регистрация: 20.02.2010

06.11.2013 10:25

Российская сборка Magento отсылает запрос системе банка Авангард в верной кодировке и в соответствии с документацией:
<?xml version="1.0" encoding="utf-8"?>
<new_order>
    <shop_id>4326</shop_id>
    <shop_passwd>111111</shop_passwd>
    <amount>1252700</amount>
    <order_number>110000065</order_number>
    <order_description>Оплата заказа №110000065 в магазине localhost.com.</order_description>
    <language>RU</language>
    <back_url>http://localhost.com:699/df-avangard/customerReturn/?magentoOrderIncrementId=110000065</back_url>
    <client_name>Петров Иван</client_name>
    <client_address>Красная Площадь, дом 1</client_address>
    <client_phone>111111</client_phone>
    <client_email>demo-shopper@dfediuk.com</client_email>
    <client_ip>127.0.0.1</client_ip>
</new_order>

Неверная обработка символов кириллицы происходит именно на стороне системы эквайринга банка Авангард.

#5 Надежда Свиридова
  • Группа: Клиент
  • Сообщений: 33
  • Регистрация: 08.07.2013

07.11.2013 15:48

В ответ на последнее сообщение, банк ответил, что получает от нас следующее:
Первый пример
06-11-2013 10:56:23
[37.140.192.106, 192.168.109.101] Входящий H2H запрос.RegistrationOrderRequest{shopId=4326, orderNumber='100000018', amount=595, backUrl='http://pelle-volare.ru/df-avangard/customerReturn/?___SID=U', backUrlOk='null', backUrlFail='null', isAuthOnly='null', orderDescription='?????»?°???° ?·?°???°?·?° ???100000018 ?? ???°???°?·?????µ pelle-volare.ru.', language='RU', shopPassword='ххх', clientName='?????·???µ?????? ???°????????', clientAddress='???µ????, 1, 1', clientPhone='7377373', clientEmail='kuznetsowm@avangard.ru', clientIp='unknown, 193.222.109.136'}

Второй пример
06-11-2013 10:57:05
[37.140.192.106, 192.168.109.101] Входящий H2H запрос.RegistrationOrderRequest{shopId=4326, orderNumber='100000019', amount=595, backUrl='http://pelle-volare.ru/df-avangard/customerReturn/?___SID=U', backUrlOk='null', backUrlFail='null', isAuthOnly='null', orderDescription='?????»?°???° ?·?°???°?·?° ???100000019 ?? ???°???°?·?????µ pelle-volare.ru.', language='RU', shopPassword='ххх', clientName='?????·???µ?????? ???°????????', clientAddress='???µ????, 1, 1', clientPhone='7377373', clientEmail='kuznetsowm@avangard.ru', clientIp='unknown, 193.222.109.136'}


И предполагает, что происходит несовпадение кодировки http-запроса и кодировки указанной в xml-документе с информацией о заказе.

Предлагают попробовать следующий код:
header("Content-type: text/html; charset=utf-8");
 
$data = '<?xml version="1.0" encoding="utf-8"?>
<NEW_ORDER>
    <SHOP_ID>XXX</SHOP_ID>
    <SHOP_PASSWD>XXXXXX</SHOP_PASSWD>
    <AMOUNT>1000.00</AMOUNT>
    <ORDER_NUMBER>666</ORDER_NUMBER>
    <ORDER_DESCRIPTION>Тестовый заказ</ORDER_DESCRIPTION>
    <LANGUAGE>RU</LANGUAGE>   
    <BACK_URL>http://www.test.ru/personal/order/avangard/</BACK_URL>   
    <CLIENT_NAME>Иванов Иван Иванович</CLIENT_NAME>
    <CLIENT_ADDRESS>г. Москва, ул. Садовническая 12</CLIENT_ADDRESS>
    <CLIENT_EMAIL>vm@test.ru</CLIENT_EMAIL>
    <CLIENT_PHONE>+74951234567</CLIENT_PHONE>
    <CLIENT_IP>'.$_SERVER["REMOTE_ADDR"].'</CLIENT_IP>
</NEW_ORDER>';
 
 
$headers = array
(
    'Content-type: application/x-www-form-urlencoded;charset=utf-8',
    'Expect:'
);


#6 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8885
  • Регистрация: 20.02.2010

07.11.2013 16:45

А у Вас есть доступ к той информационной системе, снимки экранов с неверной кодировкой которой Вы приводите? Пришлите доступы, я тогда проверю этот пример кода.

#7 Надежда Свиридова
  • Группа: Клиент
  • Сообщений: 33
  • Регистрация: 08.07.2013

07.11.2013 20:55

К сожалению, нет. Это прислал известный господин. К тому же, он сказал, что ему самому нужно запрашивать логи по транзакциям.
Я не предполагала, что возникнет нерешаемая проблема. Может мне проще сменить банк на Альфу?

#8 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8885
  • Регистрация: 20.02.2010

09.11.2013 11:40

Попробуйте версию 2.22.7.
Добавил к запросам дополнительный заголовок
Content-type: application/x-www-form-urlencoded; charset=utf-8


#9 Надежда Свиридова
  • Группа: Клиент
  • Сообщений: 33
  • Регистрация: 08.07.2013

11.11.2013 13:28

Все Ok. Последнее изменение решило проблему. Спасибо за помощь.

Поделиться темой: