-
Notifications
You must be signed in to change notification settings - Fork 0
/
8fff7543.45696da0.js
1 lines (1 loc) · 13.5 KB
/
8fff7543.45696da0.js
1
(window.webpackJsonp=window.webpackJsonp||[]).push([[77],{177:function(e,a,t){"use strict";t.r(a),t.d(a,"frontMatter",(function(){return i})),t.d(a,"metadata",(function(){return s})),t.d(a,"rightToc",(function(){return c})),t.d(a,"default",(function(){return d}));var o=t(2),r=t(6),n=(t(0),t(229)),i={id:"InterpretandoErros",title:"Interpretando Erros na API",hide_title:!0,sidebar_label:"Interpretando Erros na API"},s={id:"VisaoGeral/InterpretandoErros",isDocsHomePage:!1,title:"Interpretando Erros na API",description:"Interpretando Erros na API",source:"@site/docs\\VisaoGeral\\InterpretandoErros.md",permalink:"/docs/VisaoGeral/InterpretandoErros",sidebar_label:"Interpretando Erros na API",sidebar:"someSidebar",previous:{title:"Tipos de Integra\xe7\xf5es",permalink:"/docs/VisaoGeral/tiposIntegracao"},next:{title:"Limites de Consumo",permalink:"/docs/VisaoGeral/LimitesConsumo"}},c=[{value:"Aprendendo a utilizar o "Hist\xf3rico de Requisi\xe7\xf5es" da API Gerencianet",id:"aprendendo-a-utilizar-o-hist\xf3rico-de-requisi\xe7\xf5es-da-api-gerencianet",children:[]},{value:"Exemplo 1 - Criar transa\xe7\xe3o/cobran\xe7a",id:"exemplo-1---criar-transa\xe7\xe3ocobran\xe7a",children:[]},{value:"Exemplo 2 - Associar \xe0 forma de pagamento",id:"exemplo-2---associar-\xe0-forma-de-pagamento",children:[]},{value:"Exemplo 3 - Criar carn\xea",id:"exemplo-3---criar-carn\xea",children:[]},{value:"(+) C\xf3digos de status HTTP (2xx, 3xx, 4xx e 5xx)",id:"-c\xf3digos-de-status-http-2xx-3xx-4xx-e-5xx",children:[]},{value:"(+) Aba "Hist\xf3rico de Notifica\xe7\xf5es"",id:"-aba-hist\xf3rico-de-notifica\xe7\xf5es",children:[]}],l={rightToc:c};function d(e){var a=e.components,t=Object(r.a)(e,["components"]);return Object(n.b)("wrapper",Object(o.a)({},l,t,{components:a,mdxType:"MDXLayout"}),Object(n.b)("h1",{className:"titulo"},"Interpretando Erros na API"),Object(n.b)("div",{className:"subtitulo"},Object(n.b)("p",null,'Esta p\xe1gina tem como objetivo apresentar o "Hist\xf3rico de Requisi\xe7\xf5es", que permite ao integrador visualizar todas as requisi\xe7\xf5es realizadas por sua aplica\xe7\xe3o \xe0 API Gerencianet. Assim, voc\xea vai aprender a interpretar os retornos da API e, claro, corrigir poss\xedveis erros de valida\xe7\xe3o de dados ou outros similares e identificar consumos/requisi\xe7\xf5es realizadas por sua aplica\xe7\xe3o aos nossos ',Object(n.b)("em",{parentName:"p"},"webservices"),"."),Object(n.b)("br",null),Object(n.b)("h3",{id:"aprendendo-a-utilizar-o-hist\xf3rico-de-requisi\xe7\xf5es-da-api-gerencianet"},'Aprendendo a utilizar o "Hist\xf3rico de Requisi\xe7\xf5es" da API Gerencianet'),Object(n.b)("p",null,"A API efetua valida\xe7\xf5es dos dados contidos na requisi\xe7\xe3o que o sistema integrado envia a nossos ",Object(n.b)("em",{parentName:"p"},"webservices.")," Dessa forma, conforme o endpoint que seu sistema est\xe1 tentando consumir, podem ser retornados erros em determinadas situa\xe7\xf5es. Isso tamb\xe9m se aplica se voc\xea utiliza um ",Object(n.b)("a",{href:"https://gerencianet.com.br/artigo/sistemas-integrados/",target:"_blank"},"sistema ou m\xf3dulo")," que tenha integra\xe7\xe3o com a Gerencianet."),Object(n.b)("p",null,'Para acessar o "Hist\xf3rico de Requisi\xe7\xf5es", siga os passos:'),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("a",{href:"https://gerencianet.com.br/#login",target:"_blank",title:"Link Externo"},"Efetue login")," em sua conta Gerencianet;"),Object(n.b)("li",{parentName:"ul"},"Acesse ",Object(n.b)("code",null,"API > Minhas Aplica\xe7\xf5es > Sua Aplica\xe7\xe3o"),";"),Object(n.b)("li",{parentName:"ul"},"Escolha o ambiente utilizado (produ\xe7\xe3o ou desenvolvimento) e clique em ",Object(n.b)("code",null,"Hist\xf3rico de Requisi\xe7\xf5es")," (",Object(n.b)("a",{href:"https://s3-sa-east-1.amazonaws.com/pe85007/portal/wp-content/uploads/2018/08/14133035/Historico-Requisicoes-API-Gerencianet.png",target:"_blank"},"veja onde"),").")),Object(n.b)("p",null,'Confira o v\xeddeo em que ensinamos a utilizar o "Hist\xf3rico de Requisi\xe7\xf5es" da API:'),Object(n.b)("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/ad0SYoeGAZs",frameborder:"0",allowfullscreen:!0}),Object(n.b)("p",null,"A seguir, alguns exemplos comuns de erros retornados pela API devido a algum dado n\xe3o estar no formato correto."),Object(n.b)("div",{className:"admonition admonition-important alert alert--info"},Object(n.b)("div",Object(o.a)({parentName:"div"},{className:"admonition-heading"}),Object(n.b)("h5",{parentName:"div"},Object(n.b)("span",Object(o.a)({parentName:"h5"},{className:"admonition-icon"}),Object(n.b)("svg",Object(o.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(n.b)("path",Object(o.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"Importante")),Object(n.b)("div",Object(o.a)({parentName:"div"},{className:"admonition-content"}),Object(n.b)("p",{parentName:"div"},"Os exemplos a seguir tamb\xe9m s\xe3o aplic\xe1veis se voc\xea estiver utilizando um ",Object(n.b)("a",{href:"https://gerencianet.com.br/artigo/sistemas-integrados/",target:"_blank"},"sistema ou m\xf3dulo"),' que j\xe1 esteja integrado com a Gerencianet, afinal, \xe9 a API que est\xe1 "por tr\xe1s" cuidando das requisi\xe7\xf5es.'))),Object(n.b)("br",null),Object(n.b)("h2",{id:"exemplo-1---criar-transa\xe7\xe3ocobran\xe7a"},"Exemplo 1 - Criar transa\xe7\xe3o/cobran\xe7a"),Object(n.b)("p",null,"Ao enviar um ",Object(n.b)("code",null,"POST")," para a rota ",Object(n.b)("code",null,"/v1/charge"),', o integrador estar\xe1 criando uma cobran\xe7a (ou "transa\xe7\xe3o") com o status ',Object(n.b)("code",null,"new"),", ou seja, a cobran\xe7a foi gerada e est\xe1 aguardando a defini\xe7\xe3o da forma de pagamento."),Object(n.b)("p",null,"Ao criar uma transa\xe7\xe3o, podem ser definidos, por exemplo: nome do item, valor, se \xe9 item de marketplace, se tem frete, informar uma URL de notifica\xe7\xe3o, etc."),Object(n.b)("p",null,"Para este exemplo, vamos tentar criar uma cobran\xe7a cujo valor total seja inferior a R$ 5,00:"),Object(n.b)("p",null,Object(n.b)("img",Object(o.a)({parentName:"p"},{src:"/img/exemplo1.png",alt:"alt text",title:"Criar_Cobran\xe7a"}))),Object(n.b)("p",null,'Agora, ap\xf3s o envio do c\xf3digo acima, vamos atrav\xe9s da aba "Hist\xf3rico de Requisi\xe7\xf5es" conferir qual foi a resposta fornecida pela API:'),Object(n.b)("p",null,Object(n.b)("img",Object(o.a)({parentName:"p"},{src:"/img/exemplo2.png",alt:"alt text",title:"Falha"}))),Object(n.b)("p",null,"Conforme pode observar na imagem acima, a resposta possui ",Object(n.b)("code",null,"code")," diferente de ",Object(n.b)("code",null,"200"),", ou seja, o consumo n\xe3o teve sucesso. Neste caso, a API exige que o valor m\xednimo de uma cobran\xe7a seja de R$ 5,00 - portanto, neste caso, voc\xea deve fornecer ",Object(n.b)("code",null,"500"),", sem pontos nem v\xedrgulas (lembrando que ",Object(n.b)("code",null,"500")," equivale a R$ 5,00)."),Object(n.b)("br",null),Object(n.b)("h2",{id:"exemplo-2---associar-\xe0-forma-de-pagamento"},"Exemplo 2 - Associar \xe0 forma de pagamento"),Object(n.b)("p",null,"Ao enviar um ",Object(n.b)("code",null,"POST")," para a rota ",Object(n.b)("code",null,"/v1/charge/:id/pay"),", onde ",Object(n.b)("code",null,":id")," \xe9 o ",Object(n.b)("code",null,"charge_id")," da transa\xe7\xe3o desejada, o integrador estar\xe1 associando a cobran\xe7a \xe0 uma forma de pagamento."),Object(n.b)("p",null,"Neste momento, podem ser definidos, por exemplo: dados do cliente final, endere\xe7o, data de vencimento (em caso de boleto), se h\xe1 desconto, se h\xe1 cobran\xe7a de multa/juros ap\xf3s o vencimento, etc."),Object(n.b)("p",null,'Para este exemplo, vamos tentar associar uma cobran\xe7a \xe0 forma de pagamento "boleto banc\xe1rio" e com uma data de vencimento em um formato n\xe3o aceito pela API:'),Object(n.b)("p",null,Object(n.b)("img",Object(o.a)({parentName:"p"},{src:"/img/exemplo3.png",alt:"alt text",title:"Associar_Pagamento"}))),Object(n.b)("p",null,'Agora, ap\xf3s o envio do c\xf3digo acima, vamos atrav\xe9s da aba "Hist\xf3rico de Requisi\xe7\xf5es" conferir qual foi a resposta fornecida pela API:'),Object(n.b)("p",null,Object(n.b)("img",Object(o.a)({parentName:"p"},{src:"/img/exemplo4.png",alt:"alt text",title:"Falha"}))),Object(n.b)("p",null,"Conforme pode observar na imagem acima, a resposta possui ",Object(n.b)("code",null,"code")," diferente de ",Object(n.b)("code",null,"200"),", ou seja, o consumo n\xe3o teve sucesso. Neste caso, o carn\xea deve possuir no m\xe1ximo 12 (doze) parcelas."),Object(n.b)("br",null),Object(n.b)("h2",{id:"exemplo-3---criar-carn\xea"},"Exemplo 3 - Criar carn\xea"),Object(n.b)("p",null,"Ao enviar um ",Object(n.b)("code",null,"POST")," para a rota ",Object(n.b)("code",null,"/v1/carnet"),", o integrador estar\xe1 criando um carn\xea com as configura\xe7\xf5es que definiu."),Object(n.b)("p",null,"Neste momento, podem ser definidos, por exemplo: nome do item, valor, quantidade, dados do cliente, endere\xe7o, quantidade de parcelas, data de vencimento, etc."),Object(n.b)("p",null,"Para este exemplo, vamos tentar criar um carn\xea de 20 parcelas:"),Object(n.b)("p",null,Object(n.b)("img",Object(o.a)({parentName:"p"},{src:"/img/exemplo5.png",alt:"alt text",title:"Criar_Carn\xea"}))),Object(n.b)("p",null,"Agora, ap\xf3s o envio do c\xf3digo acima, vamos atrav\xe9s da aba ",Object(n.b)("em",{parentName:"p"},'"Hist\xf3rico de Requisi\xe7\xf5es"')," conferir qual foi a resposta fornecida pela API:"),Object(n.b)("p",null,Object(n.b)("img",Object(o.a)({parentName:"p"},{src:"/img/exemplo6.png",alt:"alt text",title:"Falha"}))),Object(n.b)("p",null,"Conforme pode observar na imagem acima, a resposta possui ",Object(n.b)("code",null,"code")," diferente de ",Object(n.b)("code",null,"200"),", ou seja, o consumo n\xe3o teve sucesso. Neste caso, o carn\xea deve possuir no m\xe1ximo 12 (doze) parcelas."),Object(n.b)("br",null),Object(n.b)("h2",{id:"-c\xf3digos-de-status-http-2xx-3xx-4xx-e-5xx"},"(+) C\xf3digos de status HTTP (2xx, 3xx, 4xx e 5xx)"),Object(n.b)("p",null,"A Gerencianet utiliza respostas HTTP para indicar sucesso ou falha nas requisi\xe7\xf5es. Comumente, quando retornamos respostas com status ",Object(n.b)("code",null,"2xx")," significa que houve sucesso na requisi\xe7\xe3o; status ",Object(n.b)("code",null,"3xx")," indicam redirecionamento; status ",Object(n.b)("code",null,"4xx")," indicam falhas no envio de dados por parte do cliente; status ",Object(n.b)("code",null,"5xx")," indicam erros internos de servidor."),Object(n.b)("p",null,"Caso queira, confira ",Object(n.b)("a",Object(o.a)({parentName:"p"},{href:"../Notificacoes/FluxoNotificacoes#c%C3%B3digos-de-status-http-2xx-3xx-4xx-e-5xx"}),"neste link")," uma tabela apresentando os c\xf3digos HTTP das respostas mais comuns, bem como suas explica\xe7\xf5es e solu\xe7\xf5es."),Object(n.b)("br",null),Object(n.b)("h2",{id:"-aba-hist\xf3rico-de-notifica\xe7\xf5es"},'(+) Aba "Hist\xf3rico de Notifica\xe7\xf5es"'),Object(n.b)("p",null,"Este recurso est\xe1 dispon\xedvel na API de sua conta Gerencianet e permite visualizar os POSTs que a Gerencianet dispara para a URL de notifica\xe7\xe3o definida pelo integrador. ",Object(n.b)("a",Object(o.a)({parentName:"p"},{href:"../Notificacoes/FluxoNotificacoes"}),"Saiba mais"),".")))}d.isMDXComponent=!0},229:function(e,a,t){"use strict";t.d(a,"a",(function(){return b})),t.d(a,"b",(function(){return m}));var o=t(0),r=t.n(o);function n(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function i(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);a&&(o=o.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,o)}return t}function s(e){for(var a=1;a<arguments.length;a++){var t=null!=arguments[a]?arguments[a]:{};a%2?i(Object(t),!0).forEach((function(a){n(e,a,t[a])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(t,a))}))}return e}function c(e,a){if(null==e)return{};var t,o,r=function(e,a){if(null==e)return{};var t,o,r={},n=Object.keys(e);for(o=0;o<n.length;o++)t=n[o],a.indexOf(t)>=0||(r[t]=e[t]);return r}(e,a);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o<n.length;o++)t=n[o],a.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var l=r.a.createContext({}),d=function(e){var a=r.a.useContext(l),t=a;return e&&(t="function"==typeof e?e(a):s(s({},a),e)),t},b=function(e){var a=d(e.components);return r.a.createElement(l.Provider,{value:a},e.children)},u={inlineCode:"code",wrapper:function(e){var a=e.children;return r.a.createElement(r.a.Fragment,{},a)}},p=r.a.forwardRef((function(e,a){var t=e.components,o=e.mdxType,n=e.originalType,i=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),b=d(t),p=o,m=b["".concat(i,".").concat(p)]||b[p]||u[p]||n;return t?r.a.createElement(m,s(s({ref:a},l),{},{components:t})):r.a.createElement(m,s({ref:a},l))}));function m(e,a){var t=arguments,o=a&&a.mdxType;if("string"==typeof e||o){var n=t.length,i=new Array(n);i[0]=p;var s={};for(var c in a)hasOwnProperty.call(a,c)&&(s[c]=a[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var l=2;l<n;l++)i[l]=t[l];return r.a.createElement.apply(null,i)}return r.a.createElement.apply(null,t)}p.displayName="MDXCreateElement"}}]);