{"id":35,"date":"2026-11-02T14:36:50","date_gmt":"2026-11-02T14:36:50","guid":{"rendered":"https:\/\/asx.dev.br\/?p=35"},"modified":"2026-11-02T14:58:16","modified_gmt":"2026-11-02T14:58:16","slug":"guia-pratico-de-utilizacao-do-wadll","status":"publish","type":"post","link":"https:\/\/asx.dev.br\/?p=35","title":{"rendered":"Guia pr\u00e1tico de utiliza\u00e7\u00e3o do WaDLL"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\" style=\"font-size:30px\"><em>1 <strong>Apresenta\u00e7\u00e3o da DLL<\/strong><\/em><br><br>O que \u00e9 a WaDLL?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A <strong>WaDLL<\/strong> \u00e9 uma biblioteca de classes desenvolvida em C# (.NET) que permite que o seu sistema ERP ou aplica\u00e7\u00e3o envie mensagens de WhatsApp (textos, imagens e documentos) de forma simples, automatizada e segura.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" style=\"font-size:20px\">Qual problema ela resolve?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Integrar diretamente com o WhatsApp Web ou com a API oficial da Meta exige lidar com protocolos complexos, tokens, configura\u00e7\u00f5es de servidores e filas de mensagens. A WaDLL resolve isso abstraindo toda essa complexidade em apenas <strong>um m\u00e9todo de envio<\/strong>. Voc\u00ea passa o n\u00famero e o texto, e a DLL cuida do resto.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" style=\"font-size:20px\">Como funciona a Arquitetura<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A comunica\u00e7\u00e3o n\u00e3o \u00e9 feita &#8220;computador do cliente para o WhatsApp&#8221; diretamente. Ela passa por uma infraestrutura segura:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1. <strong>O seu ERP<\/strong> chama um m\u00e9todo da WaDLL (ex: EnviarTextoAsync).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2. A <strong>WaDLL<\/strong> monta uma requisi\u00e7\u00e3o HTTP e envia para um <strong>Gateway Central<\/strong> (na VPS da ASX).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3. O <strong>Gateway da ASX<\/strong> valida as credenciais (Token\/API Key) e entrega a mensagem ao destinat\u00e1rio.<br><br><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-black-color\"><strong>Responsabilidades<\/strong><br>\u2022 Sua responsabilidade: Desenvolver o c\u00f3digo no ERP que chama a DLL e configurar as credenciais fornecidas.<br>\u2022 Responsabilidade da DLL: Empacotar os dados, validar se o WhatsApp est\u00e1 online e fazer a ponte de rede de forma segura.<br>\u2022 Responsab<\/mark>ilidade da Infraestrutura (VPS): Manter a conex\u00e3o com o WhatsApp ativa, gerenciar os limites de envio e garantir a seguran\u00e7a do Gateway.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:30px\"><em>2 <strong>Arquivos fornecidos ao cliente<\/strong><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ao adquirir a solu\u00e7\u00e3o, o cliente recebe um pacote (um arquivo .zip) contendo:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Arquivo \/ Pasta<\/strong><\/td><td><strong>Finalidade<\/strong><\/td><\/tr><\/thead><tbody><tr><td>bin\/Wa.dll<\/td><td>O arquivo principal da biblioteca que deve ser referenciado no projeto.<\/td><\/tr><tr><td>bin\/asx.dll<\/td><td>Biblioteca de licenciamento da ASX. <strong>Obrigat\u00f3ria.<\/strong><\/td><\/tr><tr><td>bin\/wadll.test.exe<\/td><td>Aplicativo visual de testes para validar a conex\u00e3o antes de programar.<\/td><\/tr><tr><td>source-exemplo\/<\/td><td>C\u00f3digo-fonte do app de testes (exemplo pr\u00e1tico de uso da DLL).<\/td><\/tr><tr><td>docs\/<\/td><td>Documenta\u00e7\u00e3o t\u00e9cnica adicional.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:30px\"><em>3 <strong>Requisitos para utiliza\u00e7\u00e3o<\/strong><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para que a DLL funcione, os seguintes requisitos devem ser atendidos:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>No sistema onde a DLL ser\u00e1 instalada:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Sistema Operacional:<\/strong> Windows 10 ou superior.<\/li>\n\n\n\n<li><strong>Framework:<\/strong> .NET 8.0 ou superior.<\/li>\n\n\n\n<li><strong>Arquitetura de Compila\u00e7\u00e3o:<\/strong> A DLL <strong>deve<\/strong> ser usada em processos compilados como <strong>x86 (32 bits)<\/strong>. Isso ocorre porque a biblioteca de licenciamento nativa (asx.dll) \u00e9 32-bit.<\/li>\n\n\n\n<li><strong>Conex\u00e3o com a Internet:<\/strong> Necess\u00e1ria para se comunicar com a VPS.<\/li>\n\n\n\n<li><strong>Inst\u00e2ncia Conectada:<\/strong> O WhatsApp precisa estar pareado e ativo na VPS (essa etapa \u00e9 feita uma \u00fanica vez pelo administrador).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Fora do sistema do cliente (administrado pela ASX):<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Endere\u00e7o da API (URL do Gateway).<\/li>\n\n\n\n<li>Credenciais de acesso (API Key).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><em>4 Configura\u00e7\u00e3o da conex\u00e3o com a API<\/em><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A DLL armazena as configura\u00e7\u00f5es no Registro do Windows, por\u00e9m, isso pode ser feito programaticamente por voc\u00ea.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>O que deve ser configurado:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>GatewayUrl:<\/strong> O endere\u00e7o HTTPS do servidor fornecido pela ASX.<\/li>\n\n\n\n<li><strong>ApiKey:<\/strong> A chave de acesso fornecida pela ASX.<\/li>\n\n\n\n<li><strong>InstanceName:<\/strong> O nome da inst\u00e2ncia (Ex: minha-empresa)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Como obter as credenciais<\/strong>:<br><br>O administrador da VPS (ASX) fornecer\u00e1 a GatewayUrl e a ApiKey exclusiva para o seu ERP.<br><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><em>5 Primeiro teste de funcionamento<\/em><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">1. Prepara\u00e7\u00e3o do ambiente<\/mark><\/strong><br><br>Localize a chave de par\u00e2metros &#8220;param-wa.reg&#8221; que est\u00e1 no pacote &#8220;WaDLL&#8221; e importe-a no regedit, bastando dar 2 cliques para isto. <br><br>Uma vez importado voc\u00ea precisar\u00e1 configurar com os dados corretos. Preencha os seguintes valores (entregues pela pr\u00f3pria ASX) nas chaves em destaque:<br><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"590\" src=\"https:\/\/asx.dev.br\/wp-content\/uploads\/2026\/11\/Editor-do-Registro-com-Dados-Ocultos-1024x590.png\" alt=\"\" class=\"wp-image-40\" style=\"aspect-ratio:1.7356492542132111;width:541px;height:auto\" srcset=\"https:\/\/asx.dev.br\/wp-content\/uploads\/2026\/11\/Editor-do-Registro-com-Dados-Ocultos-1024x590.png 1024w, https:\/\/asx.dev.br\/wp-content\/uploads\/2026\/11\/Editor-do-Registro-com-Dados-Ocultos-300x173.png 300w, https:\/\/asx.dev.br\/wp-content\/uploads\/2026\/11\/Editor-do-Registro-com-Dados-Ocultos-767x442.png 767w, https:\/\/asx.dev.br\/wp-content\/uploads\/2026\/11\/Editor-do-Registro-com-Dados-Ocultos-1536x885.png 1536w, https:\/\/asx.dev.br\/wp-content\/uploads\/2026\/11\/Editor-do-Registro-com-Dados-Ocultos.png 1652w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Com os pr\u00e9-requisitos atendidos, abra o ambiente de desenvolvimento e crie um novo projeto de aplica\u00e7\u00e3o. Esse projeto ser\u00e1 respons\u00e1vel por estabelecer a comunica\u00e7\u00e3o com a WaDLL e realizar o teste de envio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">2. Inicializa\u00e7\u00e3o do servi\u00e7o<\/mark><\/strong><br><br><br>O primeiro passo dentro do projeto consiste em inicializar o servi\u00e7o da WaDLL. Para isso, o sistema dever\u00e1 recuperar automaticamente as configura\u00e7\u00f5es armazenadas no Registro do Windows. <\/p>\n\n\n<div class=\"wp-block-image wp-duotone-unset-1\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"904\" height=\"487\" src=\"https:\/\/asx.dev.br\/wp-content\/uploads\/2026\/11\/Captura-de-tela-2026-11-01-084310.png\" alt=\"\" class=\"wp-image-37\" style=\"aspect-ratio:1.8562894927661338;width:531px;height:auto\" srcset=\"https:\/\/asx.dev.br\/wp-content\/uploads\/2026\/11\/Captura-de-tela-2026-11-01-084310.png 904w, https:\/\/asx.dev.br\/wp-content\/uploads\/2026\/11\/Captura-de-tela-2026-11-01-084310-300x162.png 300w, https:\/\/asx.dev.br\/wp-content\/uploads\/2026\/11\/Captura-de-tela-2026-11-01-084310-767x413.png 767w\" sizes=\"auto, (max-width: 904px) 100vw, 904px\" \/><\/figure>\n<\/div>\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex\">\n<p class=\"wp-block-paragraph\"><br><br>Dessa maneira, n\u00e3o ser\u00e1 necess\u00e1rio informar novamente os par\u00e2metros de conex\u00e3o, desde que tenham sido preenchidos corretamente durante a configura\u00e7\u00e3o inicial.<\/p>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">3. Envio da mensagem<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Coloque o n\u00famero do destinat\u00e1rio, o nome da sua inst\u00e2ncia e elabore sua mensagem. Com a estrutura completa e ap\u00f3s enviar a mensagem, o sistema executar\u00e1 a opera\u00e7\u00e3o de envio por meio do servi\u00e7o da WaDLL.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"910\" height=\"582\" src=\"https:\/\/asx.dev.br\/wp-content\/uploads\/2026\/11\/Captura-de-tela-2026-11-01-093400.png\" alt=\"\" class=\"wp-image-38\" style=\"aspect-ratio:1.5636088651038333;width:509px;height:auto\" srcset=\"https:\/\/asx.dev.br\/wp-content\/uploads\/2026\/11\/Captura-de-tela-2026-11-01-093400.png 910w, https:\/\/asx.dev.br\/wp-content\/uploads\/2026\/11\/Captura-de-tela-2026-11-01-093400-300x192.png 300w, https:\/\/asx.dev.br\/wp-content\/uploads\/2026\/11\/Captura-de-tela-2026-11-01-093400-768x491.png 768w\" sizes=\"auto, (max-width: 910px) 100vw, 910px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Nesse momento, a aplica\u00e7\u00e3o aguardar\u00e1 uma resposta do servidor, que indicar\u00e1 se a solicita\u00e7\u00e3o foi recebida e processada corretamente ou se ocorreu alguma falha durante a opera\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"><strong>4. <\/strong><\/mark><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Interpreta\u00e7\u00e3o do resultado<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ap\u00f3s a tentativa de envio, existem dois resultados principais.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Caso a opera\u00e7\u00e3o seja bem-sucedida, o console informar\u00e1 que a mensagem foi aceita pelo servidor e apresentar\u00e1 o identificador correspondente ao envio. A partir da\u00ed, basta aguardar a chegada da mensagem ao celular destinat\u00e1rio.<br><br>Por outro lado, se houver alguma falha, o sistema apresentar\u00e1 o c\u00f3digo HTTP recebido e uma descri\u00e7\u00e3o do erro. Isso permite identificar poss\u00edveis problemas de comunica\u00e7\u00e3o ou configura\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tamb\u00e9m podem ocorrer exce\u00e7\u00f5es durante a execu\u00e7\u00e3o. Uma situa\u00e7\u00e3o comum \u00e9 a desconex\u00e3o do WhatsApp ou a aus\u00eancia de alguma configura\u00e7\u00e3o necess\u00e1ria. Nesses casos, a aplica\u00e7\u00e3o apresentar\u00e1 uma mensagem de aten\u00e7\u00e3o com a descri\u00e7\u00e3o do problema. Outros erros inesperados tamb\u00e9m ser\u00e3o capturados e exibidos no console.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"><em>Aten\u00e7\u00e3o:<\/em> <em>quando o sistema informa que a mensagem foi aceita, isso significa apenas que o servidor recebeu a solicita\u00e7\u00e3o de envio. N\u00e3o significa necessariamente que ela j\u00e1 foi entregue ao destinat\u00e1rio. Se o celular estiver sem conex\u00e3o com a internet ou se o n\u00famero estiver bloqueado, por exemplo, a entrega poder\u00e1 n\u00e3o acontecer, mesmo que a API n\u00e3o apresente um erro imediato.<\/em><\/mark><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ao finalizar o teste, o console solicitar\u00e1 que voc\u00ea pressione qualquer tecla para encerrar o programa.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><br><em>6 Exemplos pr\u00e1ticos de integra\u00e7\u00e3o com um ERP<\/em><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Cen\u00e1rio 1<\/strong> <strong>(Cobran\u00e7a Autom\u00e1tica de Faturas)<\/strong>: Ao finalizar as opera\u00e7\u00f5es do dia, o sistema ERP identifica os clientes que possuem faturas em aberto e envia automaticamente uma mensagem de lembrete pelo WhatsApp.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O servi\u00e7o utiliza as configura\u00e7\u00f5es previamente armazenadas no Registro do Windows para realizar o envio. A mensagem informa ao cliente que sua fatura vencer\u00e1 no dia seguinte, incentivando o pagamento dentro do prazo para evitar a cobran\u00e7a de juros.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aten\u00e7\u00e3o: Caso o sistema precise enviar mensagens para v\u00e1rios clientes em sequ\u00eancia, recomenda-se estabelecer um intervalo de dois segundos entre cada envio. Essa pausa ajuda a evitar o envio excessivo de mensagens em um curto per\u00edodo, reduzindo o risco de bloqueios por comportamento semelhante a spam.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Cen\u00e1rio 2<\/strong> <strong>(Envio de Boleto)<\/strong>: Um cliente solicita a segunda via de seu boleto diretamente pelo sistema ERP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nesse caso, o sistema localiza o arquivo PDF correspondente ao boleto e prepara o documento para envio pelo WhatsApp.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Antes do envio, s\u00e3o definidas tr\u00eas informa\u00e7\u00f5es importantes: o caminho onde o arquivo est\u00e1 armazenado no computador, o nome que ser\u00e1 apresentado ao destinat\u00e1rio e uma legenda explicativa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ap\u00f3s essa configura\u00e7\u00e3o, o sistema encaminha o documento ao n\u00famero de WhatsApp do cliente, acompanhado de uma mensagem informando que aquele \u00e9 o boleto atualizado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Cen\u00e1rio 3<\/strong> <strong>(Notifica\u00e7\u00e3o de Pedido Pronto)<\/strong>: O sistema ERP identifica que determinado pedido est\u00e1 dispon\u00edvel para retirada e precisa notificar o cliente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para isso, o sistema localiza a fotografia da etiqueta correspondente ao pedido e prepara a imagem para envio pelo WhatsApp.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Assim como no envio de documentos, \u00e9 necess\u00e1rio informar o caminho do arquivo armazenado no computador. Tamb\u00e9m \u00e9 poss\u00edvel adicionar uma legenda \u00e0 imagem, que, neste caso, informa ao cliente que seu pedido est\u00e1 pronto para retirada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Depois de configuradas essas informa\u00e7\u00f5es, o sistema envia a imagem diretamente ao WhatsApp do destinat\u00e1rio.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><em>7 Suporte e atualiza\u00e7<\/em>\u00f5es<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Acesse o painel do desenvolvedor para obter suporte. <\/p>\n\n\n\n\n\n<p class=\"wp-block-paragraph\"><strong>ASX <\/strong>\u00a9 2009 &#8211; 2026<br><a href=\"https:\/\/ticket.asx.dev.br\/tickets.php\">ServiceDesk <\/a>| <a href=\"https:\/\/wa.me\/551148620001\">WhatsApp<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1 Apresenta\u00e7\u00e3o da DLL O que \u00e9 a WaDLL? A WaDLL \u00e9 uma biblioteca de classes desenvolvida em C# (.NET) que permite que o seu sistema ERP ou aplica\u00e7\u00e3o envie mensagens de WhatsApp (textos, imagens e documentos) de forma simples, automatizada e segura. Qual problema ela resolve? Integrar diretamente com o WhatsApp Web ou com [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":46,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"categories":[4],"tags":[],"class_list":["post-35","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wadll"],"_links":{"self":[{"href":"https:\/\/asx.dev.br\/index.php?rest_route=\/wp\/v2\/posts\/35","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/asx.dev.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/asx.dev.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/asx.dev.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/asx.dev.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=35"}],"version-history":[{"count":4,"href":"https:\/\/asx.dev.br\/index.php?rest_route=\/wp\/v2\/posts\/35\/revisions"}],"predecessor-version":[{"id":47,"href":"https:\/\/asx.dev.br\/index.php?rest_route=\/wp\/v2\/posts\/35\/revisions\/47"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/asx.dev.br\/index.php?rest_route=\/wp\/v2\/media\/46"}],"wp:attachment":[{"href":"https:\/\/asx.dev.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=35"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/asx.dev.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=35"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/asx.dev.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=35"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}