Utilização de API FeedV3

Eu criei um Client para usar o FeedV3 e capturar os dados do pedido pelo OrderId porém quando eu testo a rota pelo Postman eu recebo um erro de status 400 “Only https scheme is accepted” conforme imagem:
image
@georgebrindeiro pode nos ajudar com isso?

3 Likes

Segurança em primeiro lugar

Oi Deyvison, em primeiro lugar uma dica de segurança: nunca compartilhe suas chaves de aplicação (app key/app token) na internet, nem deixe visível em código-fonte.

Como na imagem que você publicou as chaves estavam visíveis, retirei da postagem e recomendo que você desative esta chave de aplicação e crie outra.

O erro “Only https scheme is allowed”

Quanto ao erro, acredito que o problema esteja na configuração do hook. No parâmetro url da linha 8 você não colocou https, por isso a mensagem.

O uso do Hook v3

A propósito, notei que você está tentando configurar o Hook v3 para disparar o endpoint Get Order. Não acho que seja por aí… Pensa bem, a resposta desse request vai para onde? Você vai conseguir processar esse dado depois?

O ideal seria configurar um endpoint disponibilizado pelo seu backend, como forma de sinalizar a necessidade de início do processamento. Seu backend é que vai pegar o order ID compartilhado pelo Hook v3 e então fazer o request para Get Order.

3 Likes

Boa tarde @georgebrindeiro , tive um erro do tipo 400 tentando configurar o hook: “One or more validation errors occurred.” sendo que coloquei os headers conforme solicitado:

headers: {
      'Accept': 'application/json',
      'Content-Type': 'application/json',
      'X-VTEX-API-AppKey': {appkey},
      'X-VTEX-API-AppToken': {appToken}
    }

Saberia dizer o que pode ocasionar isso?

Não acho que sejam os headers, provavelmente é o request body que tá com alguma regra mal formada. Você pode compartilhar a configuração que está tentando fazer?

Posso sim! Eu já ajustei, na verdade não estava com o hook devidamente explicitado. Agora aparece outro erro: Status 412 - Wait the current configuration is applying. Abaixo o código:

axios.post('https://examplestore--dreamscape.myvtex.com/api/orders/hook/config', {
    headers: {
      'Accept': 'application/json',
      'Content-Type': 'application/json',
      'X-VTEX-API-AppKey': {AppKey}
      'X-VTEX-API-AppToken': {AppToken}
    },
    "filter": {
      "type": "FromWorkflow",
      "status": ["payment-approved"]
    },
    "hook": {
      "url": "https://nes6120zw5.execute-api.sa-east-1.amazonaws.com/atualizarsaldo/999998/10",
       "headers": { 
        "Content-type": "application/json"
     }
  }
  }).then((response) => {
    console.log(JSON.stringify(response.data))
  }).catch((error) => {
    console.error("O ERRO E ESSE:",error);
  });

Acho que é só esperar, como o próprio erro 412 diz. O que você vai precisar validar agora é se o hook de fato tá sendo chamado, fechando um pedido teste na loja.

Beleza! Nesse caso aí basta configurar no backend então, não é isso?

No caso se ele estiver devidamente configurado, quando eu realizo uma compra devo ver um retorno no meu console não é? Ou só no endpoint?

O hook vai chamar o endpoint que você configurou. Todos efeitos disso são responsabilidade do backend que implementa esse endpoint. O esperado é que o retorno aconteça só no endpoint, a não ser que esse serviço de backend faça alguma coisa para aparecer no seu console.

Minha dúvida é: qual a url de onde os dados do hook estão chegando?

Como isso afeta sua aplicação? O importante não é de onde vem o request, mas para onde vai: para a URL que você configurou. No caso:

https://nes6120zw5.execute-api.sa-east-1.amazonaws.com/atualizarsaldo/999998/10