Как сделать запрос на доставку в хронопост используя мыло и nodejs - PullRequest
0 голосов
/ 05 июля 2018

У меня были проблемы с тем, чтобы сделать простой запрос с помощью мыла api node-soap и chronopost (платформа доставки).

Первым делом я последовал базовому примеру мыла-узла, но он просто с треском проваливается без какой-либо реальной ПОЛЕЗНОЙ ошибки хронопоста.

Мыло и ява ... Ненавижу.

Вот что я получил:

const soap = require('soap')

const client = await soap.createClientAsync(
  'https://ws.chronopost.fr/shipping-cxf/ShippingServiceWS?wsdl'
)

client.shippingV6(...somedata, (err, result) => {
  if (err) {
    return handleErr(); // it always fails
  }
  handleResult();
})

1 Ответ

0 голосов
/ 05 июля 2018

После нескольких попыток кажется, что chronopost api использует специальные корневые атрибуты (кто знает почему), и вам нужно создать параметры для мыла-узла, которые действительно соответствуют их потребностям (ууу ..)

Вот что у меня работает

const createClientShippingServiceWS = async () => {
  const wsdlOptions = {
    envelopeKey: 'soapenv',
    overrideRootElement: {
      namespace: 'cxf',
      xmlnsAttributes: [
        {
          name: 'xmlns:cxf',
          value: 'http://cxf.shipping.soap.chronopost.fr/'
        }
      ]
    }
  }

  return await soap.createClientAsync(
    'https://ws.chronopost.fr/shipping-cxf/ShippingServiceWS?wsdl',
    wsdlOptions
  )
}

Кроме того, какой смысл получать wsdl, если узел-мыло не может определить событие, как сделать ответ ??

Спасибо хронопосту за то, что он застрял в 2008

...