Código de error Invalid_Userid al intentar recuperar la vista del destinatario usando API de descanso

StackOverflow https://stackoverflow.com//questions/23015042

  •  21-12-2019
  •  | 
  •  

Pregunta

Estoy tratando de recuperar la vista del destinatario para obtener un sobre usando la API de reposo, y estoy obteniendo el código de error Invalid_UserID en mi respuesta.

Solicitud:

POST https://demo.docusign.net/restapi/v2/accounts/<redacted>/envelopes/<redacted>/views/recipient HTTP/1.1
Authorization: bearer <redacted>
Content-Type: application/json
Host: demo.docusign.net
Content-Length: 124
Expect: 100-continue

{"authenticationMethod":"userId","clientUserId":"2","returnUrl":"<redacted>","userId":"1"}

Respuesta:

HTTP/1.1 400 Bad Request
Cache-Control: no-cache
Content-Length: 70
Content-Type: application/json; charset=utf-8
Date: Fri, 11 Apr 2014 13:48:42 GMT
Strict-Transport-Security: max-age=7776000; includeSubDomains

{
  "errorCode": "INVALID_USERID",
  "message": "Invalid UserId."
}

Como puede ver, estoy tratando de autenticar la solicitud de vista del destinatario usando la opción para proporcionar al ClientUserID y UserID (ya que son un firmante incorporado) enviado en la publicación original para crear el sobre en lugar de usar el correo electrónico / nombre de usuario método. La documentación de la API no indica qué valor de autenticación debe usar para indicar que estoy haciendo esto; Solo enumera que "correo electrónico" se debe utilizar para el método de correo electrónico / nombre de usuario. Por lo tanto, estoy haciendo mi mejor conjetura y uso "UserID" para ese valor.

He verificado que el ClienteRid y UserID (destinatario de la solicitud de la envoltura) coinciden con lo que estoy enviando aquí.

Solicitud de envolvente:

POST https://demo.docusign.net/restapi/v2/accounts/<redacted>/envelopes HTTP/1.1
Authorization: bearer <redacted>
Content-Type: multipart/form-data; boundary="AAA"
Host: demo.docusign.net
Content-Length: 309312
Expect: 100-continue
Connection: Keep-Alive

--AAA
Content-Type: application/json; charset=utf-8
Content-Disposition: form-data

{"documents":[{"name":"EOS.pdf","documentId":"1","order":1}],"emailBlurb":null,"emailSubject":"Subject","recipients":{"signers":[{**"clientUserId":"2"**,"email":"asdf@asdf.com",**"recipientId":"1"**,"Name":"John Doe","Tabs":{"signHereTabs":[{"anchorString":"Anchor","anchorIgnoreIfNotPresent":true,"anchorUnits":null,"anchorXOffset":-10,"anchorYOffset":-15}]}}]},"status":"sent"}
--AAA
Content-Type: application/pdf
Content-Disposition: file; filename=EOS.pdf; documentid=1

<snip>

--AAA--

¿Hay algo que necesito hacer con la solicitud para que se envíe correctamente?

¿Fue útil?

Solución

Basado en la solicitud de "Crear sobre" que publicó, el cuerpo válido de solicitud "POST DESECTOR DESECTORIO" (para recuperar la URL para iniciar la sesión de firma de DocuSign del destinatario) sería:

{
    "authenticationMethod": "Email",
    "clientUserId": "2", 
    "userName": "John Doe",
    "email": "asdf@asdf.com"
    "returnUrl": "<redacted>",
}

En otras palabras, debe realizar los siguientes cambios en el organismo de solicitud "POST POST DESECTOR VIEW" que publicó en su pregunta:

  1. Set autenticationMethod = correo electrónico
  2. Eliminar la propiedad userid
  3. Agregar el correo electrónico propiedad
  4. Agregar el nombre de usuario
  5. Especificación de una autenticationMethod de "correo electrónico" Simplemente significa que no se requiere una forma avanzada de autenticación del destinatario (es decir, no está utilizando la verificación de ID, autenticación de teléfono, código de acceso, etc., etc. , etc.).

    --- actualización (en respuesta al primer comentario) ---

    Si no está utilizando ninguna forma avanzada de autenticación del destinatario (como su solicitud "Crear Sobre" muestra que no), entonces la autenticationMethod necesita ser configurada para "correo electrónico". Esto es cierto si usa userid para identificar al destinatario, o una combinación de nombre de usuario y / para identificar al destinatario.

    Nunca he intentado personalmente usar userid en la solicitud de visualización del destinatario postal para identificar al destinatario (siempre he usado correo electrónico y nombre de usuario ), pero de acuerdo con la documentación debe ser válida para especificar userid en la solicitud de vista del destinatario posterior (y no correo electrónico o nombre de usuario ). Sin embargo, si insiste en usar userid en la solicitud de vista del destinatario postal para identificar al destinatario, entonces debe configurarlo en el valor correcto. es decir, (de la documentación):

    If userId is used and a clientUserId is provided, the userId must match a recipientId (which can be retrieved with a GET recipients call) for the envelope. 
    

    Lo importante que debe darse cuenta aquí es que el valor de userid en la solicitud de vista del destinatario posterior no es lo mismo que el valor de destinatario en su solicitud de envolvente. En su lugar, el valor de userid será un GUID, uno que solo puede recuperar emitiendo una solicitud de recuperación de los destinatarios. es decir,

    GET https://{{env}}.docusign.net/restapi/{{version}}/accounts/{{acctId}}/envelopes/{{envelopeId}}/recipients?include_tabs=false
    

    Esta solicitud devolverá una colección de destinatarios: de acuerdo con la documentación, es el valor de propiedad receptiviatid que deberá especificar en su solicitud de vista de destinatarios posteriores (como "ID de usuario"). Por ejemplo, aquí hay una respuesta de los destinatarios para uno de mis sobres:

    {
        "signers": [
            {
                "name": "Bob Adams",
                "email": "bobsemail@outlook.com",
                "recipientId": "d1b33cf7-d630-4fcb-a7fb-ff6f3d946d81",
                "recipientIdGuid": "d1b33cf7-d630-4fcb-a7fb-ff6f3d946d81",
                "requireIdLookup": "false",
                "userId": "46d0615d-0ed2-4def-9918-9dc14fa82f70",
                "routingOrder": "1",
                "status": "sent"
            }
        ],
        "agents": [],
        "editors": [],
        "intermediaries": [],
        "carbonCopies": [],
        "certifiedDeliveries": [],
        "inPersonSigners": [],
        "recipientCount": "1"
    }
    

    BTW: si usa el valor de destinationid de la respuesta de Obtener destinatarios como el valor de userid en la solicitud de vista del destinatario poste no funciona (a pesar de que La documentación dice que debería), entonces, probablemente, en su lugar, intentaría usar el valor de userid de la respuesta de Obtener destinatarios como el valor de userid en la solicitud de vista del destinatario postal. < / p>

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top