Ruby novice. Первый пост так извините за недостатки любого коммуникационного протокола :)отправить xml данные через гнездо с сообщением (VLI) Ruby
Этот сайт был большой помощью и «ОГРОМНЫМ !!!». крик благодарности всем.
Мне нужно подключить свое приложение для рельсов к поставщикам электроэнергии, чтобы я мог продавать электроэнергию своим веб-клиентам. Я нуждающихся в помощи, чтобы просто получить первоначальный запрос, отправленный на API
IP: 41.204.194.188 Порт: 8945
Первый блок: Что такое сообщение индикаторная переменная длина (ВЛИ)?
«2 байта предшествует каждому сообщению, отправленному в/из BizSwitch. 2 байта называются индикаторами переменной длины. Байты 1-2 указывают количество байтов в сообщении (исключая первые 2 байта). байты представляют собой 16-битное целое число без знака в сетевом байтовом порядке. Обратите внимание, что если отправляется сжатое сообщение, сообщение должно быть сначала сжато для определения его длины перед отправкой ».
Игнорировать сжатие.
ссылка апи документ: https://dl.dropboxusercontent.com/u/3815995/Ipay-prepaidElecTransactionSpec.pdf
Простой пример Венд Запрос:
<ipayMsg client="ipay" term="1" seqNum="0" time="2002-05-16 10:55:30 +0200">
<elecMsg ver="2.37">
<vendReq>
<ref>136105500001</ref>
<amt cur="ZAR">11400</amt>
<numTokens>1</numTokens>
<meter>A12C3456789</meter>
<payType>cash</payType>
</vendReq >
</elecMsg>
</ipayMsg>
Простой Венд Response Пример
<ipayMsg client="ipay" term="1" seqNum="0" time="2002-05-16 10:55:35 +0200">
<elecMsg ver="2.37"
<vendRes> <ref>136105500001</ref>
<res code="elec000">OK</res>
<util addr="Megawatt Park, Contact Centre tel 086-003-7566" taxRef="4740101508" distId="6004708001509">Eskom Online</util>
<stdToken units="346.34" rctNum="12345678" amt="10000" tax="1400">123456789</stdToken>
<rtlrMsg>060000 Warning: This meter is not configured for FBE.</rtlrMsg>
<customerMsg>Meter not registered for Free Basic Electricity. Please apply at your local office.</customerMsg>
</vendRes>
</elecMsg>
</ipayMsg>
Я получил это далеко, и я, кажется, связан, но как Я действительно отправляю и получаю ответы? Я пробовал поиск в Google, но еще не нашел, как отправить XML-пакет, а затем получить ответ.
#!/usr/bin/env ruby
require 'socket'
begin
socket = TCPSocket.new('41.204.194.188', 8945)
rescue => e
puts "error: #{e}"
else
puts "connected"
end
socket.close
Поблагодарили бы за помощь или подталкивание в правильном направлении.
С наилучшими пожеланиями,
Джейми