Versão atual:

Token + JWT + ADVPL (#docusign)

Bom dia,

Estou tentando efetuar a integração com os envelopes da Docusign, porem não estou conseguindo gerar o token para fazer a autenticação, criando assertion pela pagina JWT.io funciona e gera o token normalmente, porem levando para o ADVPL o header e payload ficam corretos, mais a assinatura fica totalmente diferente do gerado pela pagina, retornando a seguinte mensagem

"{"error":"invalid_grant","error_description":"no_valid_keys_or_signatures"}"

Código utilizado

_jwtPl["iss"]   := _appId
_jwtPl["sub"]   := _userI
_jwtPl["iat"]   := _nCria
_jwtPl["exp"]   := _nExpi
_jwtPl["aud"]   := 'account-d.docusign.com'
_jwtPl["scope"] := 'signature'

cjwtPl := _jwtPl:ToJSON()

cjwtPl := STRTRAN(STRTRAN(STRTRAN(Encode64(cjwtPl), '+', '-'), '/', '_'),'=','')

casss := STRTRAN(STRTRAN(STRTRAN(Encode64(EVPPrivSign(_prvKey, (_jwtHe+'.'+cjwtPl), 5, "", @cErro)), '+', '-'), '/', '_'),'=','')//Encode64(EVPPrivSign( _prvKey, cAssinar, 5, "",@cErro ))

cJsonAutJwt := _jwtHe +"."+ cjwtPl +"."+ cAsss 

cJsonAutJwt := StrTran( cJsonAutJwt, "==", "" )

oRestclient := FWRest():New('https://account-d.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=' + (cJsonAutJwt))

O que posso fazer para gerar corretamente o assertion do bloco de assinatura?

Grato, Erich Buttner

Versões (2):

Ver a versão formatada

Token + JWT + ADVPL (#docusign)

Comentário

new question