Jump to content

Recommended Posts

Olá Pessoal!

 

 

Para auxilio de outros desenvolvedores que estão iniciando com WEBHOOK, segue algumas dicas que obtive desenvolvendo um webhook.

 

Webhook de forma resumida:

 

- Webhooks permitem criar integrações que comunicam eventos ocorridos nos documentos da plataforma da Clicksign. Quando um evento ocorre, a Clicksign notifica a sua aplicação imediatamente, através de uma requisição HTTP POST para a URL previamente cadastrada.

 

Eventos dentro do webhook

- Quando ocorrerem eventos nos documentos, uma requisição HTTP POST será disparada para a URL previamente cadastrada nas configurações da conta. 

 

Aqui que vem a dica:

O servidor cliente faz uma requisição, e aguarda uma resposta da sua aplicação, informando se você recebeu a requisição:

- Responda a requisição do Webhook com uma resposta HTTP 200 OK. Qualquer resposta fora do intervalo 2XX informará que você não recebeu seu webhook.

 

exemplo em  ASP :

 

Response.ContentType = "application/json"
Response.Status="HTTP/1.1 200 OK"

 

Depois é só alegria, tratar dados recebidos.

exemplo:

 

ATRAVES DO SERVERVARIABLES CONSIGO OBERTER O RESULTADO DA REQUISIÇÃO


cabecalho_completo = Request.ServerVariables("ALL_HTTP") 
content_type = Request.ServerVariables("CONTENT_TYPE")

...etc...

 

 

Pra voce conseguir pegar o json, isso em ASP,  será necessario converte - lo em Tipo Byte, depois em String para você se quiser obter alguma tag do JSON para algum tratamento.

exemplo:

 

Dim lngBytesCount

lngBytesCount = Request.TotalBytes
jsonstring = BytesToStr(Request.BinaryRead(lngBytesCount))


Function BytesToStr(bytes)
    Dim Stream
    Set Stream = Server.CreateObject("Adodb.Stream")
    Stream.Type = 1 'tipo de dados binarios
        Stream.Open
        Stream.Write bytes
        Stream.Position = 0
    Stream.Type = 2 'tipo de dados texto
        Stream.Charset = "iso-8859-1"
        BytesToStr = Stream.ReadText
        Stream.Close
    Set Stream = Nothing
End Function


'Instancio o obejto JSON'
Set oJSON = New aspJSON
'Carrego a String JSON
oJSON.loadJSON(jsonstring)

'Obter valor simples
nome_tag = oJSON.data("tagJSON").item("tagJSON")

 

 

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By thiago009
      Fiz um site simples, contém um formulário de contato com o objetivo de salvar os dados preenchidos num banco do access, como estou aprendendo falaram que era melhor começar criando um banco no access, mas não consegui fazer com que o formulário salve lá.
      Criei um código ASP para salvar os dados do formulário mas preciso de ajuda para conseguir 
      Coloquei o print dos códigos.
      Alguém pode me ajudar a resolver esse problema?
       
      <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="utf-8"> <meta charset="iso-8859-1" /> <link rel="stylesheet" type="text/css" href="css/estiloscontato.css"> <title>História da Informática</title> </head> <div class="menu"> <div class="collapse navbar-collapse navbar-right" id="myNavbar"> <ul class="nav navbar-nav"> <a href="index.html" target="principal">Home</a> <a href="historia.html" target="principal">História</a> <a href="evolucao.html" target="principal">Evolução</a> <a href="desvantagens.html" target="principal">Desvantagens</a> <a href="educacao.html" target="principal">Na educação</a> <a href="contato.html" target="principal">Contato</a> </ul> </div> </div> <div class="texto"> <body class="bg-color"> <!-- Estilos específicos de Seção --> <div id="conteudo" class="grupo" align=center> <p id="negrito"> <h1>Contato</h1> </p> <br> <p id="negrito">Entre em contato preenchendo o formulário abaixo:</p> <p name="contato"> <form name="f1" action="Contato" method="post"> <br> <fieldset> <br> <div class="campo"> <label for="nome">Nome</label> <input type="text" name="nome" id="nome"> </div> <br> <div class="campo"> <label for="email">E-mail</label> <input type="text" name="email" id="email"> <div> <br> <br><br> <!-- A PARTIR DESSA LINHA SÃO OS ""RADIO BUTTON"" --> <label>Departamento:</label> &nbsp; <label class="radio"> <input type="radio" name="departamento" value="suporte"> Suporte </label> <label class="radio"> <input type="radio" name="departamento" value="comercial"> Comercial </label> <label class="radio"> <input type="radio" name="departamento" value="conteudo"> Conteúdo </label> <div class="campo"> <p id="negrito"> </p> </div> <br> <!-- A PARTIR DESSA LINHA É O ""COMBO BOX"" --> <div class="assunto"> <p id="negrito"> <label for="assunto">Assunto<abbr title=!preenchimento obrigatório">*</abbr></label> <br> <select name="assunto"> <option>-- Selecione -- </option> <option value="duvidas">Dúvidas</option> <option value="solicitacoes">Solicitações</option> <option value="informacoes">Informações</option> <option value="outros">Outros</option> </select> </p> </div> <br><br> <!-- A PARTIR DESSA LINHA É O ""TEXTAREA"" --> <!-- <p id="negrito"> --> <div class="mensagem"> <p id="negrito"> <label id= "texto">Mensagem<abbr title=!preenchimento obrigatório">*</abbr></label> </p> <textarea name= "mensagem" rows="15" cols="80"></textarea> </div> <br> <br> <div class="botao"> <INPUT TYPE=SUBMIT VALUE="Enviar" align="center">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE=RESET VALUE="Apagar" align="center"> </div> </div> </p> </form> </body> <div class="bg-color"> </div> <br> </fieldset> </form> <footer class="rodape"> <small>Copyright © 2020</small> </footer> </body> </html> ESSE É O CÓDIGO ASP <% Dim objConn, strCaminho, nome, email, departamento, assunto, mensagem nome = Request.Form("nome") email = Request.Form("email") departamento = Request.Form("departamento") assunto = Request.Form("assunto") mensagem = Request.Form("mensagem") strCaminho = Server.MapPath("banco.mdb") Set objConn = Server.CreateObject("ADODB.Connection") objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strCaminho & ";" objConn.execute("Insert Into contato (nome, email, departamento, assunto, mensagem) Values ('"&nome, email, departamento, assunto, mensagem&"')") response.Write("Cadastrado com sucesso") objConn.Close %>  

    • By marcelocardoso
      olá colegas.

      depois de tanto quebrar a cabeça com o RECAPTCHA do google, v3.
      não estou conseguindo resgatar o ID do INPUT hidden que guarda o TOKEN!!!!

      Segue código
      HTML
       
      <!DOCTYPE html> <html lang="pt_BR"> <head> <meta charset="utf-8"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="ie=edge" http-equiv="X-UA-Compatible"> <title>Google Recaptcha - v3</title> <!-- STYLES CSS --> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/css/bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/inputmask@3.3.11/css/inputmask.min.css"> <!-- STYLES CSS --> <!-- SCRIPTS JS --> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery-form@4.2.2/dist/jquery.form.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery-validation@1.19.1/dist/jquery.validate.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery-validation@1.19.1/dist/localization/messages_pt_BR.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery-validation@1.19.1/dist/additional-methods.min.js"></script> <!-- SCRIPTS JS --> <!-- SCRIPTS RECAPTCHA - SITE KEY --> <script src="https://www.google.com/recaptcha/api.js?render=6LesQewUAAAAAIWQKRKk19yob6G8hx3LEoYXybIC"></script> <!-- SCRIPTS RECAPTCHA - SITE KEY --> <style type="text/css"> *:focus { outline: none !important; } html, body { height: 100%; width: 100%; } body { color: darkgrey; margin: 60px 0px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* google captcha - hidden na tela */ .grecaptcha-badge { display: none !important; } .valid-class { color: #006400; padding-left: 12px; padding-top: 3px; font-size: 15px; display: block; } .error-class { color: #e33d00; padding-left: 12px; padding-top: 3px; font-size: 15px; display: block; } .loading { position: fixed; left: 0px; top: 0px; margin: 0px; width: 100%; height: 100%; display: block; z-index: 999999; opacity: 0.92; -moz-opacity: 0.92; filter: alpha(opacity=98); background-color: #00224b; background-image: url("img/loading.gif"); background-repeat: no-repeat; background-position: 50% 50%; text-align: center; overflow: hidden; font-weight: bold; font-size: 25px; color: white; padding-top: 25%; } </style> </head> <body> <!-- code | formulario --> <section class="container-fluid"> <h1 class="text-center">RECAPTCHA</h1> <h4 class="text-center">GOOGLE v3</h4> <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-xs-12"> <form id="frm_form_contato" method="post" action="inc/google-form.asp"> <div class="form-group"> <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-xs-12 mb-2"> <label class="control-label" for="campo_nome">Nome</label> <input type="text" id="campo_nome" name="campo_nome" class="form-control" autocomplete="name" placeholder="Digite seu nome"> </div> <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-xs-12 mb-2"> <label class="control-label" for="campo_email">Email</label> <input type="text" id="campo_email" name="campo_email" class="form-control" autocomplete="email" placeholder="Digite seu e-mail"> </div> <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-xs-12 mb-2"> <label class="control-label" for="campo_mensagem">Mensagem</label> <textarea type="text" id="campo_mensagem" name="campo_mensagem" class="form-control" placeholder="Descreva sua mensagem"></textarea> </div> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 mt-4"> <div id="contato_retorno"></div> <button id="btn-form" type="submit" class="btn btn-block btn-md btn-success">ENVIAR</button> </div> </div> <input type="hidden" id="token"> </form> </div> <div id="contato_carregando"></div> </section> <!-- code | formulario --> <!-- GOOGLE reCAPTCHA --> <script type="text/javascript"> "use strict"; //formulario de validacao $("#frm_form_contato").validate({ errorClass: "error-class", validClass: "valid-class", onkeyup: function (element) { this.element(element); }, onfocusout: function (element) { this.element(element); }, rules: { campo_nome: { required: true, minlength: 5, maxlength: 50 }, campo_email: { required: true, minlength: 5, email: true }, campo_mensagem: { required: true, minlength: 5, maxlength: 5000 } }, submitHandler: function (form) { grecaptcha.ready(function () { grecaptcha.execute('6LesQewUAAAAAIWQKRKk19yob6G8hx3LEoYXybIC', { action: 'homepage' }).then(function (token) { $("input#token").attr({ "value": "" + token + "" }); }); }); // A) resgatar variaveis (uma por uma) var form_url = $(this).attr("action"); var form_method = $(this).attr("method"); var form_token = $(this).find('input[name="token"]').val(); var form_nome = $(this).find('input[name="campo_nome"]').val(); var form_email = $(this).find('input[name="campo_email"]').val(); var form_telefone = $(this).find('input[name="campo_telefone"]').val(); var form_mensagem = $(this).find('input[name="campo_mensagem"]').val(); // B) resgatar variaveis (tudo de uma vez) // var form_data = $("#frm_form_contato").serializeArray(); var form_data = { 'campo_nome': $("#campo_nome").val(), 'campo_email': $("#campo_email").val(), 'campo_mensagem': $("#campo_mensagem").val(), 'campo_token': $("#token").val(), }; // ENVIAR FORM com POST // $("form").submit(function (e) { // e.preventDefault(); // var $form = $(this); // $.post($form.attr("action"), $form.serialize()).then(function () {}); // }); //ENVIAR FORM com AJAX $.ajax({ url: $("#frm_form_contato").attr("action"), type: $("#frm_form_contato").attr("method"), data: JSON.stringify(form_data), dataType: 'json', contentType: 'application/json; utf-8', //loading antes do sucesso e do envio beforeSend: function () { $("#btn-form").prop("disabled", false).text('Enviando ...').fadeIn(); $("#contato_carregando").html("<div class='loading'></div>").fadeIn(500); }, //se houver sucesso success: function (response) { setTimeout(function () { $("#contato_carregando").fadeOut(250); }, 3950); setTimeout(function () { $("#contato_retorno").html("<div class='valida_a_certo'>" + response + "</div>").fadeIn(500); }, 4000); setTimeout(function () { $("#contato_retorno").fadeOut(500); $("#btn-form").prop("disabled", false).text('Enviado'); $(form)[0].reset(); }, 10000); }, //se houver sucesso, finaliza complete: function (response) { $('body').fadeTo(4000, '1'); }, //se houver erro error: function (response) { setTimeout(function () { $("#contato_retorno").html("<div class='valida_a_erro'>" + response + "</div>").fadeIn(500); }, 4000); setTimeout(function () { $("#contato_retorno").fadeOut(500); $(form)[0].reset(); }, 10000); }, }); return false; } }); </script> <!-- SCRIPTS RODAPE --> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/js/bootstrap.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/inputmask@3.3.11/dist/jquery.inputmask.bundle.js"></script> <!-- SCRIPTS RODAPE --> </body> </html> BACKEND - ASP
      não estou conseguindo repassar o TOKEN para cá, já tentei de várias formas... 
      mas não consigo nem com REQUEST.QUERYSTRING, REQUEST e nem REQUEST.FORM.

       
      <% Response.LCID = 1033 'USA LCID IF Request.ServerVariables("SERVER_NAME") <> Request.ServerVariables("SERVER_NAME") THEN Response.Write "ACESSO RESTRITO!" ELSE G_TOKEN = Request.Form("campo_token") 'google token G_KEY_URL = "https://www.google.com/recaptcha/api/siteverify?secret=" 'google url G_KEY_SITE = "" 'google chave do site G_KEY_SECRET = "" 'google chave secreta IF Request.ServerVariables("REQUEST_METHOD") = "POST" THEN SET objXML = Server.CreateObject("MSXML2.ServerXMLHTTP") objXML.Open "GET", ""& G_KEY_URL & G_KEY_SECRET &"&response=" & G_TOKEN & "", false objXML.Send IF InStr(objXML.ResponseText, "TRUE") THEN campo_nome = Request.Form("campo_nome") campo_email = Request.Form("campo_email") campo_mensagem = Replace(Request.Form("campo_mensagem"), Chr(13), "<br>") cdoSERVER = "mail.teste.com.br" cdoORIGEM = "teste@teste.com.br" cdoPASS = "senha" cdoPORT = 587 cdoTIMEOUT = 120 cdoUSING = 2 cdoAUT = 1 cdoSSL = 0 cdoDE = campo_nome &" <"& campo_email &">" cdoPARA = "teste@teste.com.br" cdoASSUNTO = "teste - contato" cdoTEXT = "Envio de mensagem usando CDOSYS" SET objCDOSYSmail = Server.CreateObject("cdo.message") SET objCDOSYScon = Server.CreateObject("cdo.configuration") objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = cdoPORT objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoUSING objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoAUT objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = cdoTIMEOUT objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = cdoSSL objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = cdoSERVER objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = cdoORIGEM objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = cdoPASS objCDOSYScon.Fields.Update SET objCDOSYSmail.Configuration = objCDOSYScon objCDOSYSmail.From = cdoORIGEM objCDOSYSmail.To = cdoPARA objCDOSYSmail.Subject = cdoASSUNTO objCDOSYSmail.TextBody = cdoTEXT ON ERROR RESUME NEXT IF objCDOSYSmail.SEND = "" THEN Response.Write "Mensagem enviada com sucesso!" ELSE IF NOT ERR.NUMBER = "0" THEN Response.Write "Não foi possível enviar a mensagem!" Response.Write "OCORREU UM ERRO: " & Err.Number & " | " & Err.Description Err.Clear() END IF END IF ON ERROR GOTO 0 SET objCDOSYSmail = Nothing SET objCDOSYScon = Nothing ELSE Response.Write "recaptcha errado!" END IF SET objXML = Nothing END IF END IF %> Quem tiver tempo, e quiser dar uma olhada, só falta isso para finalizar o código, PASSAR o bendito parametro que não consigo do input para o ASP.
      No demais, agradeço.
      Até....
       
    • By camisavp
      Boa tarde.
       
      Estou com umas boas dificuldades aqui. Preciso que, em um formulário grande, eu ao digitar o numero do prontuário, caso já exista ele cadastrado, me retorne alguns campos preenchidos automaticamente.
       
      Estou tentando montar um formulário da seguinte maneira:
       
      form:
       
      input 1: - vai buscar a informação no banco de dados. se possível, com um autopreenchimento durante a digitação
       
      input 2: - caso já exista um prontuário, popular o input com os dados retirados do banco de dados
       
      input 3: - será preenchido manualmente
       
      input 4: - caso já exista um prontuário, popular o input com os dados retirados do banco de dados
       
      input 5: - caso já exista um prontuário, popular o input com os dados retirados do banco de dados
       
      input 6: - será preenchido manualmente
       
      input 7: - será preenchido manualmente
       
      ... mais uma série de inputs preenchidos manualmente
       
      /form.
       
      Não sou um estudioso e nem estou na minha área, pois sou engenheiro, haja visto que a aplicação é residencial e ainda em asp clássico com banco de dados access. kkkkkkkkkk
       
      Faço isso como hobby.
       
      Passei duas semanas já tentando achar uma solução, porém sem sucesso.
       
      Agradeço a ajuda de quem puder colaborar.
       
      Grato
       
      Marcelo Camisa
       
    • By s3c0
      Fala galera,
       
      boa tarde. Estou precisar criar uma página para recuperar algumas informações do PC.
       
      Achei um script, porém a informação não é visualizado na página.
       
      Segue script
      <% Set objShell = server.CreateObject("WScript.Shell") Set objExec = objShell.Exec("cmd /c powershell wmic cpu get loadpercentage") Set objStdOut = objExec.StdOut response.write "CPU:<BR>" While Not objStdOut.AtEndOfStream Response.write objStdOut.ReadLine &"<BR>" Wend objExec.StdIn.Close() %> Alguém tem alguma ideia do que está errado?
       
      Agradeço a atenção de todos!
    • By portallweb
      Bom dia, pessoal.
       
      A questão é que eu consigo acessar um endereço "dominio.com/modulo/id/titulo" e ele reescrever para "dominio.com/default.asp?link=artigo&id=123&titulo=teste", mas minha dúvida é se consigo fazer o processo reverso, ou seja, acessar "dominio.com/default.asp?link=artigo&id=123&titulo=teste" e ele alterar para "dominio.com/modulo/id/titulo".
       
      Códigos:
       
      WEB.CONFIG
       
      <?xml version="1.0" encoding="UTF-8"?> <system.webServer>     <rewrite>         <rules>             <rule name="artigo" stopProcessing="true">                 <match url="^artigo/?([a-zA-Z0-9_-]+)?/?([a-zA-Z0-9_-]+)?/?([a-zA-Z0-9_-]+)?$" />                 <conditions>                      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />                      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />                  </conditions>                 <action type="Rewrite" url="default.asp?link={R:0}&id={R:1}&teste={R:2}" />             </rule>         </rules>     </rewrite> </system.webServer>  
      ASP
       
      <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="utf-8"/> <title>Teste Isapi Rewrite</title> </head> <body> <p> Teste!<br> link: <%=request("link")%><br> id: <%=request("id")%><br> teste: <%=request("teste")%><br> </p> </body> </html>  
      Desde já agradeço!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.