Prezados,
Preciso fazer a integração ADVPL com as API's do DOCUSIGN para controle de assinaturas dos documentos.
Alguém já fez essa integração ou teria algum fonte para me ajudar nessa integração.
Agradeço muito.
Cmkas
Prezados,
Preciso fazer a integração ADVPL com as API's do DOCUSIGN para controle de assinaturas dos documentos.
Alguém já fez essa integração ou teria algum fonte para me ajudar nessa integração.
Agradeço muito.
Cmkas
Bom Dia,
Desenvolvi esta integração para nossos processos aqui. O fonte eu não posso compartilhar, mas qual seria a sua dúvida?
====== Login
Local _jwtHe := Encode64('{"alg":"RS256","typ":"JWT"}')
//-- Faz replace dos carateres que um Base64URL faria
Local _jwtPl := STRTRAN(STRTRAN(STRTRAN(Encode64('{"iss":"' + _appId + '","sub":"' + _userI + '","iat":'+Str(_nCria)+','+;
'"exp":'+ Str(_nExpi) + ',"aud":"account.docusign.com","scope":"signature impersonation"}'), '+', '-'), '/', '_'),'=','')
//-- Faz replace dos carateres que um Base64URL faria
cSignature := STRTRAN(STRTRAN(STRTRAN(Encode64(EVPPrivSign(CurDir() + _prvKey, (_jwtHe+'.'+_jwtPl), 5, "", @cErro)), '+', '-'), '/', '_'),'=','')
oRestclient := FWRest():New('https://account.docusign.com')
oRestClient:setPath('/oauth/token')
aadd(aHeader,'Content-Type: application/x-www-form-urlencoded')
oRestClient:setPostParams('grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion=' + (_jwtHe+'.'+_jwtPl+'.'+cSignature))
Envio de DOC
oRestclient := FWRest():New(_appUrl)
oRestClient:setPath('/v2.1/accounts/' + _appUId + '/envelopes')
aadd(aHeader,'Authorization: Bearer ' + cToken)
aadd(aHeader,'Content-Type: application/json')
JSON do envio do documento.
aDocs[1]['documentBase64'] := Encode64(cBuffer)
aDocs[1]['name'] := 'Documento'
aDocs[1]['fileExtension'] := cExt
aDocs[1]['documentId'] := '1'
oJson['documents'] := aDocs
oJson['recipients'] := JsonObject():New()
aSign[_i]['email'] := AllTrim(cEmail)
aSign[_i]['name'] := AllTrim(cNomAs)
aSign[_i]['recipientId'] := AllTrim(Str(_iOrdem))
aSign[_i]['routingOrder']:= AllTrim(Str(_iOrdem))
Mauricio, entendi.
Mais pode apenas descrever como montar o Json para envio e também o retorno. URL, Autenticação, e o que mais puder me descrever.
Obrigado
— INOVA 24 de Nov de 2021Boa Tarde @INOVA infelizmente só vi agora que respondeu. Meio complicado descrever cada um destes processos por aqui, mas vou editar a resposta com o que eu posso compartilhar.
— mauricio sipmann 12 de Jan de 2022